介绍
1984年,加州大学伯克利分校的几个学生完成了Unix名称服务的实现,起名叫Berkeley Internet Name Domain(BIND)。目前,它是互联网上使用最为广泛的DNS服务软件
工作原理
(1)客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步
(2)客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,不再向外发出请求,否则进行下一步,转发。
(3)将请求转发本地DNS服务器。
(4)查看域名是否本地解析,是则本地解析返回,否则进行下一步。
(5)本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。
(6)向全球13个根域服务器发起DNS请求,根域返回org域的地址列表。
(7)使用某一个org域的IP地址,发起DNS请求,org域返回kernel域服务器地址列表。
(8)使用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org 主机的IP地址,本地DNS服务收到后,返回给客户机。
注:
递归查询:压力在服务器端
迭代查询:压力在客户端(直接返回结果到客户机)
搭建DNS
准备环境:
DNS服务器:192.168.40.100
客户机:192.168.40.101
搭建步骤:
- 安装dns服务bind
- 修改主配置文件
- 修改区域配置文件
- 创建数据配置文件
- 重启bind服务
- 修改访问域名的主机dns为DNS服务器ip
- 测试
安装dns服务bind
dns服务包名为bind,安装后的服务名为named
修改主配置文件
/etc/named.conf:主配置文件用配置于DNS服务器的访问参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| vim /etc/named.conf
options { listen-on port 53 { 192.168.40.100; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; };
|
修改区域配置文件
/etc/named.rfc1912.zones:区域配置文件用于指定域名名称、配置文件名称
1 2 3 4 5 6 7 8 9 10 11
| vim /etc/named.rfc1912.zones
zone "12366xuetang.com" IN { type master; file "12366xuetang.front"; allow-update { none; }; };
|
创建数据配置文件
数据配置文件:根据区域配置文件指定的名称创建,并配置域名解析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| cd /var/named/
cp -a named.localhost 12366xuetang.front
vim 12366xuetang.front
$TTL 1D @ IN SOA 12366xuetang.com. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS js.12366xuetang.com. js A 192.168.40.100 zj A 192.168.40.101
|
重启bind服务
如果报错:请仔细查看数据配置文件设置
修改访问域名的主机dns为DNS服务器ip
注:所有使用域名访问的客户机都需要配置DNS服务器IP
1 2 3 4 5 6 7 8 9 10
| vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.40.100 NETMASK=255.255.255.0 GATEWAY=192.168.40.2 DNS1=192.168.40.100
|
测试
1 2 3 4 5 6 7 8 9 10 11 12
| yum -y install bind-utils
nslookup zj.12366xuetang.com
Server: 192.168.40.100 Address: 192.168.40.100
Name: zj.12366xuetang.com Address: 192.168.40.101
|