SlideShare 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
DNS报文体
DNS报文体 
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!

More Related Content

What's hot

2009-02 Sharetech MS6X20
2009-02 Sharetech MS6X202009-02 Sharetech MS6X20
2009-02 Sharetech MS6X20
peter
 
Shell奇技淫巧
Shell奇技淫巧Shell奇技淫巧
Shell奇技淫巧David Xie
 
Ext4 Bigalloc report public
Ext4 Bigalloc report publicExt4 Bigalloc report public
Ext4 Bigalloc report publicHao(Robin) Dong
 
Linux常用命令
Linux常用命令Linux常用命令
Linux常用命令Tony Deng
 
Linux基础
Linux基础Linux基础
Linux基础
zhuqling
 
Linux command tutorial
Linux command tutorialLinux command tutorial
Linux command tutorial朋 陈
 
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
Ryan Tseng
 
深入Docker的资源管理
深入Docker的资源管理深入Docker的资源管理
深入Docker的资源管理
SpeedyCloud
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
rewinx
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践Frank Cai
 
Tcpdump的使用简介
Tcpdump的使用简介Tcpdump的使用简介
Tcpdump的使用简介
lifeibo
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Alex Lau
 
Nae client(using Node.js to create shell cmd)
Nae client(using Node.js to create shell cmd)Nae client(using Node.js to create shell cmd)
Nae client(using Node.js to create shell cmd)
fisher zheng
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
zhaolinjnu
 
Voldemort Intro Tangfl
Voldemort Intro TangflVoldemort Intro Tangfl
Voldemort Intro Tangfl
fulin tang
 
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用redhat9
 
Type
TypeType
Typehpsh
 

What's hot (18)

2009-02 Sharetech MS6X20
2009-02 Sharetech MS6X202009-02 Sharetech MS6X20
2009-02 Sharetech MS6X20
 
Windbg入门
Windbg入门Windbg入门
Windbg入门
 
Shell奇技淫巧
Shell奇技淫巧Shell奇技淫巧
Shell奇技淫巧
 
Ext4 Bigalloc report public
Ext4 Bigalloc report publicExt4 Bigalloc report public
Ext4 Bigalloc report public
 
Linux常用命令
Linux常用命令Linux常用命令
Linux常用命令
 
Linux基础
Linux基础Linux基础
Linux基础
 
Linux command tutorial
Linux command tutorialLinux command tutorial
Linux command tutorial
 
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
改造你的 Terminal 讓它變得風騷又實用 (Posh Git + oh-my-posh)
 
深入Docker的资源管理
深入Docker的资源管理深入Docker的资源管理
深入Docker的资源管理
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
 
Tcpdump的使用简介
Tcpdump的使用简介Tcpdump的使用简介
Tcpdump的使用简介
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
 
Nae client(using Node.js to create shell cmd)
Nae client(using Node.js to create shell cmd)Nae client(using Node.js to create shell cmd)
Nae client(using Node.js to create shell cmd)
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 
Voldemort Intro Tangfl
Voldemort Intro TangflVoldemort Intro Tangfl
Voldemort Intro Tangfl
 
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
 
Type
TypeType
Type
 

Similar to 打造你自己的DNS服务器

SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
HanLing Shen
 
網址管理與 DNS 託管全攻略
網址管理與 DNS 託管全攻略網址管理與 DNS 託管全攻略
網址管理與 DNS 託管全攻略
Chih-cheng Wang
 
域名系统简介
域名系统简介域名系统简介
域名系统简介lurga
 
选型指南:Cdn系统中dns的设计与研发
选型指南:Cdn系统中dns的设计与研发选型指南:Cdn系统中dns的设计与研发
选型指南:Cdn系统中dns的设计与研发
SpeedyCloud
 
93 dn 2
93 dn 293 dn 2
93 dn 2
best0806
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
Chuanying Du
 
網路之根-基礎建設與標準化 (Kenny Huang, ph.D.)
網路之根-基礎建設與標準化 (Kenny Huang, ph.D.)網路之根-基礎建設與標準化 (Kenny Huang, ph.D.)
網路之根-基礎建設與標準化 (Kenny Huang, ph.D.)
tahr1984
 
計算機概論
計算機概論計算機概論
計算機概論育哲 陳
 
一次详细的渗透Wordpress教程
一次详细的渗透Wordpress教程一次详细的渗透Wordpress教程
一次详细的渗透Wordpress教程WASecurity
 
DNS协议与应用简介
DNS协议与应用简介DNS协议与应用简介
DNS协议与应用简介琛琳 饶
 
Track1dongsiying4
Track1dongsiying4Track1dongsiying4
Track1dongsiying4drewz lin
 
HDFS元数据的独立服务和 独立持久化存储 -hadoop2011-淘宝
HDFS元数据的独立服务和 独立持久化存储 -hadoop2011-淘宝HDFS元数据的独立服务和 独立持久化存储 -hadoop2011-淘宝
HDFS元数据的独立服务和 独立持久化存储 -hadoop2011-淘宝
miaojian430
 
計算機概論
計算機概論計算機概論
計算機概論育哲 陳
 
使用WF2409要怎麼設定DNS?有沒有每家ISP業者相對應的DNS列表?
使用WF2409要怎麼設定DNS?有沒有每家ISP業者相對應的DNS列表?使用WF2409要怎麼設定DNS?有沒有每家ISP業者相對應的DNS列表?
使用WF2409要怎麼設定DNS?有沒有每家ISP業者相對應的DNS列表?臺灣塔米歐
 
Sth About SSD
Sth About SSDSth About SSD
Sth About SSD
XueZhang Wu
 
Juniper ScreenOS 基于Policy的
Juniper ScreenOS 基于Policy的Juniper ScreenOS 基于Policy的
Juniper ScreenOS 基于Policy的mickchen
 
Virtualbox
VirtualboxVirtualbox
Virtualbox
fangdun cai
 
介紹有關網域名稱系統
介紹有關網域名稱系統介紹有關網域名稱系統
介紹有關網域名稱系統祐豪 余
 
網域名稱系統
網域名稱系統網域名稱系統
網域名稱系統
祐豪 余
 

Similar to 打造你自己的DNS服务器 (20)

SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
 
網址管理與 DNS 託管全攻略
網址管理與 DNS 託管全攻略網址管理與 DNS 託管全攻略
網址管理與 DNS 託管全攻略
 
域名系统简介
域名系统简介域名系统简介
域名系统简介
 
选型指南:Cdn系统中dns的设计与研发
选型指南:Cdn系统中dns的设计与研发选型指南:Cdn系统中dns的设计与研发
选型指南:Cdn系统中dns的设计与研发
 
93 dn 2
93 dn 293 dn 2
93 dn 2
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
 
網路之根-基礎建設與標準化 (Kenny Huang, ph.D.)
網路之根-基礎建設與標準化 (Kenny Huang, ph.D.)網路之根-基礎建設與標準化 (Kenny Huang, ph.D.)
網路之根-基礎建設與標準化 (Kenny Huang, ph.D.)
 
計算機概論
計算機概論計算機概論
計算機概論
 
一次详细的渗透Wordpress教程
一次详细的渗透Wordpress教程一次详细的渗透Wordpress教程
一次详细的渗透Wordpress教程
 
1 1
1 11 1
1 1
 
DNS协议与应用简介
DNS协议与应用简介DNS协议与应用简介
DNS协议与应用简介
 
Track1dongsiying4
Track1dongsiying4Track1dongsiying4
Track1dongsiying4
 
HDFS元数据的独立服务和 独立持久化存储 -hadoop2011-淘宝
HDFS元数据的独立服务和 独立持久化存储 -hadoop2011-淘宝HDFS元数据的独立服务和 独立持久化存储 -hadoop2011-淘宝
HDFS元数据的独立服务和 独立持久化存储 -hadoop2011-淘宝
 
計算機概論
計算機概論計算機概論
計算機概論
 
使用WF2409要怎麼設定DNS?有沒有每家ISP業者相對應的DNS列表?
使用WF2409要怎麼設定DNS?有沒有每家ISP業者相對應的DNS列表?使用WF2409要怎麼設定DNS?有沒有每家ISP業者相對應的DNS列表?
使用WF2409要怎麼設定DNS?有沒有每家ISP業者相對應的DNS列表?
 
Sth About SSD
Sth About SSDSth About SSD
Sth About SSD
 
Juniper ScreenOS 基于Policy的
Juniper ScreenOS 基于Policy的Juniper ScreenOS 基于Policy的
Juniper ScreenOS 基于Policy的
 
Virtualbox
VirtualboxVirtualbox
Virtualbox
 
介紹有關網域名稱系統
介紹有關網域名稱系統介紹有關網域名稱系統
介紹有關網域名稱系統
 
網域名稱系統
網域名稱系統網域名稱系統
網域名稱系統
 

打造你自己的DNS服务器