狠狠撸

狠狠撸Share a Scribd company logo
打造你自己的DNS服 
务器 
屌丝玩开源(系列?) 
黄亿华 
http://codecraft.us
OUTLINE 
对于BlackHoleJ 
DNS协议基础 
打造DNS服务器 
对于Hostd
对于BlackHoleJ 
起因:邮件测试 
维护了半年时间,6个大版本 
47star,27fork in github 
稳定运行半年@192.168.9.106 ... 
50,000 qps(BIND 40,000)
实用工具 
nslookup 
nslookup domain [dns] 
dig 
dig domain [@dns] 
[queryperf] 
压力测试
DNS协议基础 
域名-互联网的门牌号 
www.dianping.com. 
根域名、N级域名... 
中文域名(Puny Code) 
黄亿华.diandian.com
怎么实现?DNS协议 
简单协议 
request=>response 
Over UDP/TCP 
DDNNSS 
UUDDPP//TTCCPP 
IIPP
顿狈厂报文体
顿狈厂报文体 
RR(Resource Record) 资源记录 
A记录 IP地址 
CNAME 别名 
PTR DNS反解 
NS 继续查询 
MX 邮件地址
域名管理 
根服务器 
etc. a.root-servers.net. 
授权服务器 
ns1.dpfile.com. 
缓存服务器 
8.8.8.8
递归查询
安全 
DNS劫持 
内网域名 
DNS污染 
www.facebook.com
DNS“ 花招” 
DNS轮询 
负载均衡的第一站 
智能DNS 
dnspod
常见DNS服务器 
bind/unbound 
dnsmasq 
dnspod-sr
打造自己的DNS服务 
器 
流程 
解析query 
逻辑处理 
产生answer
DNS报文解析 
很复杂! 
开源库: 
dnsjava
逻辑处理 
正则表达式! 
外部可配置 
hosts风格 
本地没有,怎么办? 
代理 
NS记录
性能 
IO模型 
多线程 
NIO 
异步模型
缓存 
ConcurrentHashMap 
ehcache 
缓存UDP报文 
ttl
多路代理 
多IP同时forward 
单线程receive 
对应和响应
反DNS污染 
收集污染特征 
向不存在的ip进行dns查询 
记录响应IP 
丢弃污染报文
What’s next 
Hostd 
为每个IP维护域名列表 
Web页面进行定制 
跨平台(DNS协议的通用性)
Thanks!
Ad

Recommended

Oda安装 恢复步骤
Oda安装 恢复步骤
n-lauren
?
智能顿苍蝉工作流程及配置
智能顿苍蝉工作流程及配置
Yiwei Ma
?
Dns
Dns
Yiwei Ma
?
Dns easy
Dns easy
CYJ
?
DNS IPv6
DNS IPv6
csklho
?
Hdfs raid migration to hadoop 1.x
Hdfs raid migration to hadoop 1.x
Jiang Yu
?
Linux 教育訓練
Linux 教育訓練
Bo-Yi Wu
?
Dnsse cv9
Dnsse cv9
itsuki810
?
2009-02 Sharetech MS6X20
2009-02 Sharetech MS6X20
peter
?
奥颈苍诲产驳入门
奥颈苍诲产驳入门
晓锋 陈
?
厂丑别濒濒奇技淫巧
厂丑别濒濒奇技淫巧
David Xie
?
Ext4 Bigalloc report public
Ext4 Bigalloc report public
Hao(Robin) Dong
?
尝颈苍耻虫常用命令
尝颈苍耻虫常用命令
Tony Deng
?
尝颈苍耻虫基础
尝颈苍耻虫基础
zhuqling
?
Linux command tutorial
Linux command tutorial
朋 陈
?
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
Ryan Tseng
?
深入顿辞肠办别谤的资源管理
深入顿辞肠办别谤的资源管理
SpeedyCloud
?
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
rewinx
?
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
Frank Cai
?
罢肠辫诲耻尘辫的使用介绍
罢肠辫诲耻尘辫的使用介绍
lifeibo
?
应用颁别辫丑技术打造软体定义储存新局
应用颁别辫丑技术打造软体定义储存新局
Alex Lau
?
Nae client(using Node.js to create shell cmd)
Nae client(using Node.js to create shell cmd)
fisher zheng
?
搁别诲颈蝉介绍
搁别诲颈蝉介绍
zhaolinjnu
?
Voldemort Intro Tangfl
Voldemort Intro Tangfl
fulin tang
?
叠测笔补迟博客出品-高性能奥别产服务器苍驳颈苍虫及相关新技术的应用
叠测笔补迟博客出品-高性能奥别产服务器苍驳颈苍虫及相关新技术的应用
redhat9
?
Type
Type
hpsh
?

More Related Content

What's hot (18)

2009-02 Sharetech MS6X20
2009-02 Sharetech MS6X20
peter
?
奥颈苍诲产驳入门
奥颈苍诲产驳入门
晓锋 陈
?
厂丑别濒濒奇技淫巧
厂丑别濒濒奇技淫巧
David Xie
?
Ext4 Bigalloc report public
Ext4 Bigalloc report public
Hao(Robin) Dong
?
尝颈苍耻虫常用命令
尝颈苍耻虫常用命令
Tony Deng
?
尝颈苍耻虫基础
尝颈苍耻虫基础
zhuqling
?
Linux command tutorial
Linux command tutorial
朋 陈
?
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
Ryan Tseng
?
深入顿辞肠办别谤的资源管理
深入顿辞肠办别谤的资源管理
SpeedyCloud
?
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
rewinx
?
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
Frank Cai
?
罢肠辫诲耻尘辫的使用介绍
罢肠辫诲耻尘辫的使用介绍
lifeibo
?
应用颁别辫丑技术打造软体定义储存新局
应用颁别辫丑技术打造软体定义储存新局
Alex Lau
?
Nae client(using Node.js to create shell cmd)
Nae client(using Node.js to create shell cmd)
fisher zheng
?
搁别诲颈蝉介绍
搁别诲颈蝉介绍
zhaolinjnu
?
Voldemort Intro Tangfl
Voldemort Intro Tangfl
fulin tang
?
叠测笔补迟博客出品-高性能奥别产服务器苍驳颈苍虫及相关新技术的应用
叠测笔补迟博客出品-高性能奥别产服务器苍驳颈苍虫及相关新技术的应用
redhat9
?
Type
Type
hpsh
?
2009-02 Sharetech MS6X20
2009-02 Sharetech MS6X20
peter
?
奥颈苍诲产驳入门
奥颈苍诲产驳入门
晓锋 陈
?
厂丑别濒濒奇技淫巧
厂丑别濒濒奇技淫巧
David Xie
?
Ext4 Bigalloc report public
Ext4 Bigalloc report public
Hao(Robin) Dong
?
尝颈苍耻虫常用命令
尝颈苍耻虫常用命令
Tony Deng
?
尝颈苍耻虫基础
尝颈苍耻虫基础
zhuqling
?
Linux command tutorial
Linux command tutorial
朋 陈
?
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
Ryan Tseng
?
深入顿辞肠办别谤的资源管理
深入顿辞肠办别谤的资源管理
SpeedyCloud
?
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
rewinx
?
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
高性能奥别产服务器狈驳颈苍虫及相关新技术的应用实践
Frank Cai
?
罢肠辫诲耻尘辫的使用介绍
罢肠辫诲耻尘辫的使用介绍
lifeibo
?
应用颁别辫丑技术打造软体定义储存新局
应用颁别辫丑技术打造软体定义储存新局
Alex Lau
?
Nae client(using Node.js to create shell cmd)
Nae client(using Node.js to create shell cmd)
fisher zheng
?
搁别诲颈蝉介绍
搁别诲颈蝉介绍
zhaolinjnu
?
Voldemort Intro Tangfl
Voldemort Intro Tangfl
fulin tang
?
叠测笔补迟博客出品-高性能奥别产服务器苍驳颈苍虫及相关新技术的应用
叠测笔补迟博客出品-高性能奥别产服务器苍驳颈苍虫及相关新技术的应用
redhat9
?

打造你自己的顿狈厂服务器