DNS是在网络中将计算机名转换成IP的一个服务,在LINUX中可以很轻松的搭建一台DNS服务器,我们需要在LINUX系统中安装DNS服务(安装包名:bind)为了安全我们通常用一起安装bind-chroot为DNS的牢目录、根目录。为了放便还可以安装DNS配置文件的模板包(caching-nameserver).安装完后,我们需要对DNS进行配置我们要监听的IP、端口、解析的域名,配置好后我们重启服务就好了,然后我们可以找别一台,本机也可以,指定DNS地址然后进行测试。
下面是我们的一个搭建过程
拓扑:
DNS Slave
-----DNS Master(vmnet1)----------(vmnet1)
Win7 Client
实验一:搭建主DNS服务器
www.192.168.10.253
bbs. 192.168.10.100
blog是bbs别名
1、安装软件包
[root@localhost ~]# yum -y install bind bind-chroot caching- nameserver
2、修改主配置文件
[root@localhost ~]# cd /var/named/chroot/etc/ //牢目录/var/named/chroot [root@localhostetc]# cp -p named.caching-nameserver.confnamed.conf //拷贝模板成为主配置文件 [root@localhostetc]# vimnamed.conf ... 15 listen-on port 53 { 192.168.10.253; }; //监听本机端口 16 // listen-on-v6 port 53 { ::1; }; //IPV6模式 ... 27 allow-query { any; }; //访问权限 28 allow-query-cache { any; }; ... 37 match-clients { any; }; 38 match-destinations { any; }; [root@localhostetc]# vim named.rfc1912.zones ... 51 zone "" IN { //解析的域名 52 type master; //类型 主 53 file ".zone"; // 解析数据库文件 54 }; 55 56 zone "10.168.192.in-addr.arpa" IN { //解析的IP地址段(反向解析) 57 type master; 58 file ".arpa"; 59 }; |
[root@localhostetc]# named-checkconfnamed.conf 检验配置文件语法
3、修改数据库文件
[root@localhostetc]# cd /var/named/chroot/var/named/ //进入数据库文件目录 [root@localhost named]# cp -p named.local.zone // 建立两个文件(与主配置文件中设置同名) [root@localhost named]# cp -p named.local.arpa [root@localhost named]# vim .zone //编辑文件,写入信息 $TTL 86400 @ IN SOA localhost. root.localhost. ( 2014061701 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS dns01.. dns01 IN A 192.168.10.253 www IN A 192.168.10.253 bbs IN A 192.168.10.100 blog IN CNAME bbs [root@localhost named]# cat.arpa $TTL 86400 @ IN SOA localhost. root.localhost. ( 2014061701; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS dns01.. 253 IN PTR dns01.. 253 IN PTR www.. 100 IN PTR bbs.. 100 IN PTR blog.. [root@localhost named]# named-checkzone .zone //检验解析库语法 zone /IN: loaded serial 1997022700 OK [root@localhost named]# named-checkzone .arpa //检验解析库语法 zone /IN: loaded serial 1997022700 OK |
4、启动服务
[root@localhost named]# service named restart
[root@localhost named]# chkconfig named on
5、测试
取消之前hosts文件定义
把DNS指向服务器
host www.
nslookup
实验二:DNS高级应用
实现DNS负载均衡,当用户访问www.的时候,2/3用户访问10.253,1/3用户访问10.100
确保用户访问的时候仍然可以访问www. 的网站
实现用户在访问的时候只要域名正确就可以访问www. 的网站
[root@localhost ~]# cd /var/named/chroot/var/named/ [root@localhost named]# cat .zone ... www IN A 192.168.10.253 www IN A 192.168.10.253 www IN A 192.168.10.100 . IN A 192.168.10.253 $GENERATE 20-50 station$ IN A 192.168.10.$ * IN A 192.168.10.253 |
实验三:搭建从DNS服务器
给上面的主DNS搭建一个辅助DNS
1、安装软件包
[root@localhost ~]# yum -y install bind bind-chroot caching- nameserver
2、修改从DNS的主配置文件
[root@localhost ~]# cd /var/named/chroot/etc/ [root@localhostetc]# cp -p named.caching-nameserver.confnamed.conf [root@localhostetc]# vimnamed.conf 15 listen-on port 53 { 192.168.10.100; }; ... 27 allow-query { any; }; 28 allow-query-cache { any; }; ... 37 match-clients { any; }; 38 match-destinations { any; }; //编辑主配置连接文件,这个文件包含域名,域库文件的相关设置,解析方式。 [root@ser2 etc]# vim named.rfc1912.zones ... 51 zone "" IN { //需要解析的域名 52 type slave; //从DNS服务器 53 file "slaves/.zone"; //更新来的库文件存放位置 54 masters { 192.168.10.253; }; //从192.168.10.253处更新 55 }; 56 57 zone "10.168.192.in-addr.arpa" IN { 58 type slave; 59 file "slaves/.arpa"; 60 masters { 192.168.10.253; }; 61 }; [root@ser2 etc]# named-checkconfnamed.conf |
3、修改主DNS的主配置文件,添加授权信息
[root@localhost ~]# cd /var/named/chroot/etc/ [root@localhostetc]# vim named.conf //添加21行内容
21 allow-transfer { 192.168.10.100; }; //只允许192.168.10.100更新库文件 ... [root@localhostetc]# cd /var/named/chroot/var/named/ 下面是正向解析文件 [root@localhost named]# cat .zone $TTL 86400 @ IN SOA . root.. ( 2014041802 ; Serial //序列号加1 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS dns01.. IN NS dns02.. //添加从DNS服务器 IN A 192.168.10.253 dns01 IN A 192.168.10.253 dns02 IN A 192.168.10.100 //为从DNS正向解析 www IN A 192.168.10.253 www IN A 192.168.10.253 www IN A 192.168.10.100 bbs IN A 192.168.10.100 blog IN CNAME bbs $GENERATE 20-50 station$ IN A 192.168.10.$ //定义变量 * IN A 192.168.10.101
下面是反向解析文件
[root@localhost named]# cat .arpa $TTL 86400 @ IN SOA . root.. ( 2014041802 ; Serial //序列号加1 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS dns01.. IN NS dns02.. //添加从DNS服务器 253 IN PTR dns01.. 100 IN PTR dns02.. //为从DNS反向解析 253 IN PTR www.. 100 IN PTR bbs.. [root@localhostetc]# service named restart
|
4、启动从DNS服务器并验证
[root@localhostetc]# service named restart [root@localhostetc]# chkconfig named on [root@localhostetc]# ls /var/named/chroot/var/named/slaves/ .zone.arpa |
【DNS子域授权配置】
使子域同样具有DNS解析的能力。只需要在子域中以子域为域名来建立DNS服务器
例:总部:
分部:sh.
分部DNS服务器:www.sh.
【DNS子域授权配置】
kvm_node2(子域)上面操作:
进到目录
[root@dns2 ~]# cd /var/named/chroot/etc/
编辑配置文件
[root@dns2 etc]# vim named.rfc1912.zones
[root@dns2 etc]# cd /var/named/chroot/var/named/ kvm_node1(父域)上面操作: //标记子域DNS服务器 |
[root@dns1 named]# service named restart //重启服务
测试:
[root@localhost ~]# host www.sh. 192.168.100.10
反过来客户端dns指向子域,解析父域条目
[root@dns2 named]# vim /var/named/chroot/etc/named.conf |
测试:
[root@localhost ~]# host www. 192.168.100.20 www. has address 192.168.100.1 //成功解析到了域名 |
【DNS分离解析/视图】
判断不同的来源地址访问相同域名给解析不同结果,这样我们需要不同的配置文件,在主配置文件中进行判断,判断后指向不同的配置文件,来查找不同的解析库文件
| [root@dns1 ~]# cd /var/named/chroot/etc/ [root@dns1 etc]# vim named.conf ... 15 listen-on port 53 { 192.168.100.10; }; 16 // listen-on-v6 port 53 { ::1; }; ... 27 allow-query { any; }; 28 allow-query-cache { any; }; ... 36 view lt { 37 match-clients { 192.168.100.20; }; //判断依据 38 match-destinations { any; }; 39 recursion yes; 40 include "/etc/named.rfc1912.zones"; //执行的文件 41 }; 42 43 view yd { 44 match-clients { any; }; 45 match-destinations { any; }; 46 recursion yes; 47 include "/etc/named.rfc1913.zones"; 48 }; [root@dns1 etc]# cp -p named.rfc1912.zones named.rfc1913.zones [root@dns1 etc]# vim named.rfc1912.zones ... 51 zone "" IN { 52 type master; 53 file "lt..zone"; 54 allow-transfer { none; }; 55 }; [root@dns1 etc]# vim named.rfc1913.zones 51 zone "" IN { 52 type master; 53 file "yd..zone"; 54 allow-transfer { none; }; 55 }; |
| [root@dns1 etc]# cd /var/named/chroot/var/named/ [root@dns1 named]# cp -p named.zero lt..zone [root@dns1 named]# cp -p named.zero yd..zone [root@dns1 named]# cat lt..zone $TTL 86400 @ IN SOA dns1.. root.. ( 2014062401 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS dns1.. dns1 IN A 192.168.100.10 www IN A 1.1.1.1 [root@dns1 named]# cat yd..zone $TTL 86400 @ IN SOA dns1.. root.. ( 2014062401 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS dns1.. dns1 IN A 192.168.100.10 www IN A 2.2.2.2 |
[root@dns1 named]# service named restart // 重启服务器
测试:
用192.168.100.20和其他客户机分别测试
















