DNS架设实验
-
实验拓扑
-
实验准备
-
流程
-
测试
-
总结
实验拓扑:
1.对于来自内网的DNS正反向解析,并实现view选择指定解析库解析。
2.对于来自外网的DNS正向解析,并实现view选择指定解析库解析。
3.实现主从服务器结构。
4.实现一个完成对一个子域的授权。
5.子域中的所有查询xiao.com.的信息都转向192.168.1.1解析。
1.根据view,对外网发送的解析请求转为解析为服务器对外IP。
2.根据view,对内网发送的解析请求转为解析为服务器内网IP。
实验准备
由于是虚拟机进行的实验,所以在网络架设阶段遇到了困难,最后只有妥协下折中将ns1.xiao.com这台机器增加网卡,配置两个不同网段地址,开启路由转发,当作路由器来连接两个网络。
vim /etc/sysctl.conf net.ipv4.ip_forward = 1 修改为1 reboot
流程;
1.架设xiao.com的名称服务器。
[root@xiao.comdns ~]# vim /etc/named.conf 配置named.conf文件。 acl LAN{ 192.168.1.0/24; }; 设置acl,此为内网网段的acl,表示内网网段内的所有IP。 acl WAN{ ! 192.168.1.0/24 ; any; }; 设置acl,此为外网网段的acl,表示除了内网网段外的所有IP。 options { listen-on port 53 { 192.168.1.1; 201.0.0.1; }; 监听在192.168.1.1和201.0.0.1的53端口上。 directory "/var/named"; zone文件存放目录。 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"; // allow-query { localhost; }; 注释掉查询白名单,表示循序所有主机查询。 recursion yes; 允许DNS服务器在不知道查询主机的情况下,去像其他服务器做迭代查询得到结果。 dnssec-enable no; 关闭安全审查机制。 dnssec-validation no; dnssec-lookaside no; /* Path to ISC DLV key */ // bindkeys-file "/etc/named.iscdlv.key"; 使用key来加密,注释不使用。 // managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; };
–
[root@xiao.comdns ~]# vim /etc/named.rfc1912.zones 配置区域文件 // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // view "LAN" { view LAN范围的开始,指定内网的区域设定。 match-clients { "LAN"; }; view LAN的应用对象,即指定此网段的请求都使用次范围内的解析库来解析。 zone "." IN { 根解析区域设定,一般文件自带行。 type hint; file "named.ca"; }; zone "localhost.localdomain" IN { 本地回环解析区域设定,一般文件自带行。 type master; file "named.localhost"; allow-update { none; }; }; zone "localhost" IN { 本地回环解析区域设定,一般文件自带行。 type master; file "named.localhost"; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { IPV6的本地回环区域设定,一般文件自带行。 type master; file "named.loopback"; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { 本地回环的区域解析库的反向解析设定,一般文件自带行。 type master; file "named.loopback"; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { none; }; }; zone "xiao.com" IN { 设定xiao.com的区域设定。 type master; 类型为主服务器。 file "xiao.com.zone"; 解析库文件为/var/named/xiao.com.zone }; zone "1.168.192.in-addr.arpa" IN { 设定192.168.1.0网段的反向解析区域,格式为 [NETNUMBER反写.in-addr.arpa]。 type master; 类型为主服务器。 file "192.168.1.zone"; 解析库文件为/var/named/192.168.1.zone。 }; }; view LAN的范围的结束 view "WAN" { view WAN范围的开始,指定外网的区域设定。 match-clients { "WAN"; }; view WAN的应用对象,即指定此网段的请求都使用次范围内的解析库来解析。 zone "." IN { 根解析区域设定。 type hint; 设定类型为hint,即根区域。 file "named.ca"; 设定解析库文件为named.ca }; zone "xiao.com" IN { 设定xiao.com区域。 type master; 类型为主服务器。 file "wanxiao.com.zone"; 文件为wanxiao.com.zone。 }; };
–
[root@xiao.comdns ~]# vim /var/named/xiao.com.zone 配置LAN的xiao.con.zone的解析库。 $TTL 82400 设定TTL变量,指定当前所有的默认TTL(解析缓存存活时间)的值为82400 @ IN SOA xiao.com. admin.xiao.com. ( 设定SOA 1 1H 5M 1W 1M) @ IN NS ns1.xiao.com. 当前域的name server1 @ IN NS ns2.xiao.com. 当前域的name server2 ns1 IN A 192.168.1.1 NS1的地址,注意,地址与wan区域的IP的不同。 ns2 IN A 192.168.1.2 NS2的地址!。 www IN A 192.168.1.8 www主机的地址!。 ops IN NS ns1.ops.xiao.com. 子域的name server,子域授权。 ns1.ops IN A 192.168.1.3 子域的name server地址。
–
[root@xiao.comdns ~]# vim /var/named/wanxiao.com.zone 配置WAN的xiao.con.zone的解析库。 $TTL 82400 @ IN SOA xiao.com. admin.xiao.com. ( 设定SOA 0 1H 5M 1W 1D ) IN NS ns2.xiao.com. 当前域的name server1 IN NS ns1.xiao.com. 当前域的name server2 ns1 IN A 201.0.0.1 NS1的地址,注意,地址与lan区域的IP的不同。 ns2 IN A 201.0.0.2 NS2的地址!。 www IN A 201.0.0.3 www主机的地址!。 ops IN NS ns1.ops.xiao.com. 子域的name server,子域授权。 ns1.ops IN A 192.168.1.3 子域的name server地址。
–
[root@xiao.comdns ~]# vim /var/named/192.168.1.zone 配置反向解析库文件。 $TTL 824000 @ IN SOA xiao.com. admin.xiao.com. ( 设定SOA 3 1H 5M 1W 5M ) IN NS ns1.xiao.com. IN NS ns2.xiao.com. 1 IN PTR ns1.xiao.com. PTR反向解析中的192.168.1.1的对应的域名。 2 IN PTR ns2.xiao.com. PTR反向解析中的192.168.1.2的对应的域名。 8 IN PTR www.xiao.com PTR反向解析中的192.168.1.8的对应的域名。 [root@xiao.comdns ~]# chmod 640 /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone 更改权限。 [root@xiao.comdns ~]# chown :named /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone 更改属组。
2.架设与xiao.com的从服务器。
[root@salves.dns ~]# vim /etc/named.conf 配置named.conf acl LAN{ 192.168.1.0/24; }; 设定acl acl WAN{ ! 192.168.1.0/24;any;}; 设定acl options { 与服务器设定基本一致。 listen-on port 53 { 192.168.1.2; }; 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"; allow-query { any; }; recursion yes; dnssec-enable no; dnssec-validation no; // dnssec-lookaside auto; // bindkeys-file "/etc/named.iscdlv.key"; // managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; };
–
[root@salves.dns ~]# vim /etc/named.rfc1912.zones 配置区域文件,只需在结尾加上以下内容。 view LAN{ match-clients { "LAN" ;}; view一定要和主服务器保持一致!! ... zone "xiao.com" IN { 配置正向解析xiao.com区域 type slave; 指定类型为从服务器。 masters { 192.168.1.1; }; 指定主服务器地址。 file "slaves/xiao.com.zone"; 指定同步后存放的文件路径。 }; zone "1.168.192.in-addr.arpa" IN { 配置反向解析1.168.192.in-addr.arpa的区域。 type slave; 指定类型为从服务器。 masters { 192.168.1.1; }; 指定主服务器地址。 file "slaves/192.168.1.zone"; 指定同步后存放的文件路径,不同view需要存放不同的名称。 }; }; view WAN{ view一定要和主服务器保持一致!! match-clients {"WAN"; }; zone "." IN { type hint; file "named.ca"; }; zone "wanxiao.com" IN { type slave; masters { 192.168.1.1;}; file "slaves/wanxiao.com.zone"; 指定同步后存放的文件路径,不同view需要存放不同的名称。 }; }; [root@salves.dns ~]# chmod 640 /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone 更改权限。 [root@salves.dns ~]# chown :named /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone 更改属组。
–
设定完成之后即可通过日志文件查或者指定文件路径中的/var/named/slaves中看到同步的解析库文。 [root@salves.dns ~]# ll /var/named/slaves/ 192.168.1.zone xiao.com.zone 可以看到已经同步到指定路径下了。
3.架设子域ops.xiao.com名称服务器,设定转发服务。
架设子域服务器即和普通的name server一样即可,下面简要的略过,仅对转发功能的设定做解释。 [root@ops.xiao ~]# vim /etc/named.rfc1912.zones ... zone "ops.xiao.com" IN { type master; file "ops.xiao.com.zone"; }; zone "xiao.com" IN { xiao.com区域的解析设定。 type forward; 设定为转发类型。 forward only; 设定为only,将所有xiao.com的查询都转发。 还可以设置为first,即如果指定dns不回应,则本机去迭代完成查询。 forwarders { 192.168.1.1; }; }; }; [root@ops.xiao ~]# vim /var/named/ops.xiao.com.zone $TTL 82400 @ IN SOA ops.xiao.com. admin.ops.xiao.com. ( 0 1H 5M 1W 5M ) IN NS ns1.ops.xiao.com. ns1 IN A 192.168.1.3 www IN A 192.168.1.4 [root@salves.dns ~]# chmod 640 /var/named/ops.xiao.com.zone 更改权限。 [root@salves.dns ~]# chown :named /var/named/ops.xiao.com.zone 更改属组。
其实子域就是我们的name server,比如说我们这里的父域xiao.com.其实是.com.的子域,所以如果有需要完全可以在ops.xiao.com这个域上使用其他上述的技术,view,主从等。
测试
通过192.168.1.3测试正向解析。 [root@ops.xiao ~]# host -t A www.xiao.com 192.168.1.1 正向解析测试。 Using domain server: Name: 192.168.1.1 Address: 192.168.1.1#53 Aliases: www.xiao.com has address 192.168.1.8 查询得知www.xiao.com的IP为192.168.1.8
–
通过192.168.1.3测试反向解析。 [root@ops.xiao ~]# host -t PTR 192.168.1.8 192.168.1.1 反向查询测试。 Using domain server: Name: 192.168.1.1 Address: 192.168.1.1#53 Aliases: 8.1.168.192.in-addr.arpa domain name pointer www.xiao.com.1.168.192.in-addr.arpa. 查询得知192.168.1.8的域名为www.xiao.com
–
通过192.168.1.3测试主从轮询。 [root@ops.xiao ~]# dig -t A www.xiao.com @192.168.1.1 dig命令的功能与host类型,但是能够更加清楚的显示信息,这里查看主从服务器轮询情况。 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xiao.com @192.168.1.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46131 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.xiao.com. IN A ;; ANSWER SECTION: www.xiao.com. 82400 IN A 192.168.1.8 ;; AUTHORITY SECTION: xiao.com. 82400 IN NS ns2.xiao.com. 轮询切换NS2 xiao.com. 82400 IN NS ns1.xiao.com. 轮询切换NS1 ;; ADDITIONAL SECTION: ns1.xiao.com. 82400 IN A 192.168.1.1 ns2.xiao.com. 82400 IN A 192.168.1.2 ;; Query time: 0 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: 四 4月 14 16:52:17 CST 2016 ;; MSG SIZE rcvd: 125
–
通过192.168.1.1测试子域设定。 [root@xiao.comdns ~]# host -t A www.ops.xiao.com 192.168.1.2: 子域查询测试。 Using domain server: Name: 192.168.1.2 Address: 192.168.1.2#53 Aliases: www.ops.xiao.com has address 192.168.1.4
–
通过201.0.0.10测试view [root@wan-test ~]# dig -t A www.xiao.com @201.0.0.1 view测试实现智能DNS测试。 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xiao.com @201.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7535 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.xiao.com. IN A ;; ANSWER SECTION: www.xiao.com. 82400 IN A 201.0.0.3 可以看到返回的ip为201.0.0.3 ;; AUTHORITY SECTION: xiao.com. 82400 IN NS ns1.xiao.com. xiao.com. 82400 IN NS ns2.xiao.com. ;; ADDITIONAL SECTION: ns2.xiao.com. 82400 IN A 201.0.0.2 NS1的ip 201.0.0.2 ns1.xiao.com. 82400 IN A 201.0.0.1 NS2的ip 201.0.0.1 ;; Query time: 0 msec ;; SERVER: 201.0.0.1#53(201.0.0.1) ;; WHEN: Thu Apr 14 20:05:50 CST 2016 ;; MSG SIZE rcvd: 125
–
通过192.168.1.4测试forward [root@wan-test ~]# dig -t A www.xiao.com @192.168.1.3 forward测试 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xiao.com @192.168.1.3 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40723 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.xiao.com. IN A ;; ANSWER SECTION: www.xiao.com. 71029 IN A 192.168.1.8 查询结果。 ;; AUTHORITY SECTION: xiao.com. 71029 IN NS ns2.xiao.com. 通过转发到了192.168.1.1查询 xiao.com. 71029 IN NS ns1.xiao.com. ;; ADDITIONAL SECTION: ns1.xiao.com. 71029 IN A 192.168.1.1 ns2.xiao.com. 71029 IN A 192.168.1.2 ;; Query time: 1 msec ;; SERVER: 192.168.1.3#53(192.168.1.3) 使用的DNS地址 ;; WHEN: Thu Apr 14 20:12:38 CST 2016 ;; MSG SIZE rcvd: 125
总结
问题解决:
1.在搭建中遇到了死活无法通过192.168.1.2查询到子域,先确定是由于主从同步没有进行的问题,然后发现view在从服务器上没有配置,接着发现由于是内网环境不能上网,不知道什么原因导致时间不一致,而无法同步,解决以上问题解决无法同步。
2.出现无法使用指定DNS查询,但是在DNS服务器上却可以,最后发现是因为iptables没有配置而造成的问题。
3.出现了各种错误,通过查询日志可以得到很好的线索和答案,大部分都是因为语法或者不注意而造成的。
未解决问题:
因为此实验是在虚拟机的环境下搭建的,所以基于网络架设比较不便,就将子域设为了内网下的一个子域,在做子域的view时遇到了由于是内网子域,所以导致外网访问子域下的域名主机时,无法识别,但是如果不设定,返回的只能是内网下的192.168.1.0网段的IP,很乐意有有人能帮助我解答这个疑问。
原创文章,作者:Net18_肖肖,如若转载,请注明出处:http://www.178linux.com/14854
评论列表(1条)
有实战,有总结,赞,图很专业