BIND的进阶二:视图,日志,转发,子域的授权
实验分为4部分组成:
1:DNS的转发 2:DNS日志 3:子域的授权
4:智能DNS的简单配置根据网段来分配不同的ip地址
一:DNS的转发: 转发方式有两种:only (直接把客户端请求的内容通通的发送给转发主机,自己做任何事情) first (先转发,要是没有自己再去解析)
vim /etc/named.conf \\\\ 在从服务做转发,转发可以定义在全局或者自己定义的区域
1 options { 2 directory "/var/named"; 3 forward first; \\转发的方式,先转发给192.168.50.128 4 forwarders {192.168.50.128; }; \\要是请求的内容没有对方也没有的话,再自己一层一层的迭代 5 }; 6 7 zone "." IN { 8 type hint; 9 file "named.ca"; 10 }; 11 12 zone "iccso.com" IN { 13 type slave; 14 file "slaves/iccso.com.zone"; 15 masters {192.168.50.128; }; 16 allow-transfer {none; }; 17 }; 18 19 zone "50.168.192.in-addr.arpa" IN { 20 type slave; 21 file "slaves/192.168.50.zone"; 22 masters {192.168.50.128; }; 23 allow-transfer {none; }; 24 }; 25 26 27
二:DNS的日志
在讲述 logging 语句的语法之前,先要熟悉一些常用术语术语 含义
channel(通道) 日志输出方式,如:syslog、文本文件、标准错误输出或 /dev/null
category(类别) 日志的消息类别,如:查询消息或动态更新消息等
module(模块) 产生消息的来源模块名称
facility(设备) syslog 设备名
severity(严重性) 消息的严重性等级
channel:定义日志的格式有2种方式
一种是由系统的syslog来帮忙继续 保存文件为/var/log/message
一种是自定义的file来记录
[print-time boolean;] // 是否在消息中添加时间前缀,仅用于 file 日志
[print-severity boolean;] // 是否在消息中添加消息严重性前缀
[print-category boolean;] // 是否在消息中添加消息类别名前缀
category :规定了日志的来源有是什么,还有保存的文件名字叫什么
client 处理客户端请求。
config 配置文件分析和处理。
database 同BIND内部数据库相关的消息,用来存储区数据和缓存记录。
default 匹配所有未明确指定通道的类别。
dnssec 处理 DNSSEC 签名的响应。
general 包括所有未明确分类的 BIND 消息。
lame-servers 发现错误授权,即残缺服务器。
network 网络操作。
notify 区更新通知消息。
queries 查询日志
resolver 名字解析,包括对来自解析器的递归查询信息。
security 批准/非批准的请求。
update 动态更新事件。
xfer-in 从远程名字服务器到本地名字服务器的区传送。
xfer-out 从本地名字服务器到远程名字服务器的区传送。
severity 语句用于指定消息的严重性等级, log_severity 的取值为(按照严重性递减的顺序):
critical
error
warning
notice
info
debug [ level ]
dynamic 是一个特殊的值,它匹配服务器当前的调试级别
配置主配置文件:
vim /etc/named.conf
1 2 options { 3 directory "/var/named"; 4 notify yes; 5 querylog yes; \\要是单独只有这个选项的话会把日志自动记录在 /var/log/message 6 }; 7 8 logging { 9 channel querylog { 10 file "/var/log/named/query.log" versions 5 size 10M; 11 severity dynamic; 12 print-time yes; 13 print-severity yes;}; 14 15 category queries {querylog;}; 16 }; 17 18 zone "." IN { 19 type hint; 20 file "named.ca"; 21 }; 22 23 zone "iccso.com" IN { 24 type master; 25 file "iccso.com.zone"; 26 allow-transfer {192.168.50.228; }; 27 }; 28 29 zone "50.168.192.in-addr.arpa" IN { 30 type master; 31 file "192.168.50.zone"; 32 allow-transfer {192.168.50.228; }; 33 }; 34
1 [root@localhost ~]# dig -t A mail.iccso.com 2 3 ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 <<>> -t A mail.iccso.com 4 ;; global options: +cmd 5 ;; Got answer: 6 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9591 7 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 8 9 ;; QUESTION SECTION: 10 ;mail.iccso.com. IN A 11 12 ;; ANSWER SECTION: 13 mail.iccso.com. 6400 IN A 192.168.50.129 14 15 ;; AUTHORITY SECTION: 16 iccso.com. 6400 IN NS ns1.iccso.com. 17 iccso.com. 6400 IN NS ns2.iccso.com. 18 19 ;; ADDITIONAL SECTION: 20 ns1.iccso.com. 6400 IN A 192.168.50.128 21 ns2.iccso.com. 6400 IN A 192.168.50.228 22 23 ;; Query time: 0 msec 24 ;; SERVER: 192.168.50.128#53(192.168.50.128) 25 ;; WHEN: Wed Dec 21 22:22:56 2016 26 ;; MSG SIZE rcvd: 116 27 28 [root@localhost ~]# tail /var/log/named/query.log 29 21-Dec-2016 22:14:54.917 info: client 192.168.50.128#38518: query: 128.50.168.192.in-addr.arpa IN PTR + (192.168.50.128) 30 21-Dec-2016 22:16:53.055 info: client 192.168.50.128#39116: query: 128.50.168.192.in-addr.arpa IN PTR + (192.168.50.128) 31 21-Dec-2016 22:22:56.917 info: client 192.168.50.128#59190: query: mail.iccso.com IN A + (192.168.50.128) 32 [root@localhost ~]#
三、子域的授权
所谓的子域就是在我们申请域名下再建立一个域名 申请:iccso.com. 我们在申请的域名下:再弄出两个子域名 fin.iccso.com. mark.iccso.com.
分两个部分完成;1:先在iccso.com的数据文件 建立两条NS记录和A记录
2:在另外一台主机安装BIND并配置对应的文件
1 vim /var/named/iccso.com 2 3 $TTL 6400 4 @ IN SOA ns1 admin ( 5 2016122103 ;serial 6 2H ;refresh 7 5M ;retry 8 1W ;expire 9 3H ) ;minimum 10 IN NS ns1.iccso.com. 11 fin IN NS ns1.fin.iccso.com. \\添加NS和A记录 12 mark IN NS ns1.fin.iccso.com. 13 IN NS ns2.iccso.com. 14 IN MX 10 mail.iccso.com. 15 ns1.fin IN A 192.168.50.3 16 ns1.mark IN A 192.168.50.4 17 ns1 IN A 192.168.50.128 18 ns2 IN A 192.168.50.228 19 mail IN A 192.168.50.129 20 www IN A 192.168.50.128 21 ~
1 vim /etc/named.conf 2 3 options { 4 directory "/var/named"; 5 notify yes; 6 querylog yes; 7 allow-query {any; }; \\是否允许查询,默认是开始的,在{}里面我们可以自己定义,可以允许可以查询的网段 8 recursion yes; \\eg:allow-query {172.16.10.0/24; }; 9 }; \\recursion 是否允许给客户端递归,定义和allow-query一样 10 11 logging { 12 channel querylog { 13 file "/var/log/named/query.log" versions 5 size 10M; 14 severity dynamic; 15 print-time yes; 16 print-severity yes;}; 17 18 category queries {querylog;}; 19 }; 20 21 zone "." IN { 22 type hint; 23 file "named.ca"; 24 }; 25 26 zone "iccso.com" IN { 27 type master; 28 file "iccso.com.zone"; 29 allow-transfer {192.168.50.228; }; 30 };
在子域配置如下:子域ip:192.168.50.3
1 vim /var/named.conf 2 3 options { 4 directory "/var/named"; 5 forward first; //设置转发 这样我们就可以解析iccso.com域里面的数据了 6 forwarders {192.168.50.128; }; 7 }; 8 9 zone "." IN { 10 type hint; 11 file "named.ca"; 12 }; 13 14 zone "fin.iccso.com" IN { 15 type master; 16 file "fin.iccso.com.zone"; 17 };
1 vim /var/named/fin.iccso.com 2 3 $TTL 6400 4 @ IN SOA ns1 admin ( 5 0 ;serial 6 2H ;refresh 7 5M ;retry 8 1W ;expire 9 3H ) ;minimum 10 IN NS ns1.fin.iccso.com. 11 ns1 IN A 192.168.50.3 12 www IN A 192.168.50.3 13 ~
1 [root@localhost redhat]# dig -t NS iccso.com \\\在我们进行测试的时候可能在日志可以看见查询请求,但是就是没有显示出来 2 \\有可能是防火墙挡住 关闭防火墙:server iptables stop 3 ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 <<>> -t NS iccso.com 4 ;; global options: +cmd 5 ;; Got answer: 6 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50595 7 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 8 9 ;; QUESTION SECTION: 10 ;iccso.com. IN NS 11 12 ;; ANSWER SECTION: 13 iccso.com. 5391 IN NS ns1.iccso.com. 14 15 ;; ADDITIONAL SECTION: 16 ns1.iccso.com. 5391 IN A 192.168.50.128 17 18 ;; Query time: 0 msec 19 ;; SERVER: 192.168.50.3#53(192.168.50.3) 20 ;; WHEN: Wed Dec 21 23:26:40 2016 21 ;; MSG SIZE rcvd: 61 22 23 [root@localhost redhat]# dig -t A www.fin.iccso.com 24 25 ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 <<>> -t A www.fin.iccso.com 26 ;; global options: +cmd 27 ;; Got answer: 28 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37550 29 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 30 31 ;; QUESTION SECTION: 32 ;www.fin.iccso.com. IN A 33 34 ;; ANSWER SECTION: 35 www.fin.iccso.com. 6400 IN A 192.168.50.3 36 37 ;; AUTHORITY SECTION: 38 fin.iccso.com. 6400 IN NS ns1.fin.iccso.com. 39 40 ;; ADDITIONAL SECTION: 41 ns1.fin.iccso.com. 6400 IN A 192.168.50.3 42 43 ;; Query time: 0 msec 44 ;; SERVER: 192.168.50.3#53(192.168.50.3) 45 ;; WHEN: Wed Dec 21 23:27:01 2016 46 ;; MSG SIZE rcvd: 85
四 、智能的DNS-->eg:我们在访问淘宝的时候,淘宝的服务会自动的判断我们对应的区域,而分配一个离我们最近的服务ip地址,不同的ip地址
指向同一个域名主机:www.taobao.com
我们引入了视 1 vim /etc/named.conf 3 options {
4 directory "/var/named"; 5 querylog yes; 6 allow-query {any; }; 7 recursion yes; 8 }; 9 10 View "192.168.50-segment" { 11 match-clients {192.168.50.0/24; }; \\在192.168.50网络时是接入时自动给对应的数据文件 12 zone "." IN { 13 type hint; 14 file "named.ca"; 15 }; 16 17 zone "iccso.com" IN { 18 type master; 19 file "50.iccso.com.zone"; \\数据文件位置 20 allow-transfer {192.168.50.228
21 }; 22 }; 23 24 view "192.168.156-segment" { 25 match-clients {192.168.156.0/24; }; 26 zone "." IN { 27 type hint; 28 file "named.ca"; 29 }; 30 31 zone "iccso.com" IN { 32 type master; 33 file "iccso.com.zone"; 34 allow-transfer {192.168.50.228; }; 35 }; 36 };
1 vim /var/named/50.iccso.com.zone 2 3 $TTL 6400 4 @ IN SOA ns1 admin ( 5 2016122103 ;serial 6 2H ;refresh 7 5M ;retry 8 1W ;expire 9 3H ) ;minimum 10 IN NS ns1.iccso.com. 11 fin IN NS ns1.fin.iccso.com. 12 mark IN NS ns1.fin.iccso.com. 13 IN NS ns2.iccso.com. 14 IN MX 10 mail.iccso.com. 15 ns1.fin IN A 192.168.50.3 16 ns1.mark IN A 192.168.50.4 17 ns1 IN A 192.168.50.128 18 ns2 IN A 192.168.50.228 19 mail IN A 192.168.50.129 20 www IN A 192.168.50.128 21 ~ 22 ~ 23 ~
1 vim /var/named/iccso.com.zone 2 3 $TTL 6400 4 @ IN SOA ns1 admin ( 5 2016122103 ;serial 6 2H ;refresh 7 5M ;retry 8 1W ;expire 9 3H ) ;minimum 10 IN NS ns1.iccso.com. 11 fin IN NS ns1.fin.iccso.com. 12 mark IN NS ns1.fin.iccso.com. 13 IN NS ns2.iccso.com. 14 IN MX 10 mail.iccso.com. 15 ns1.fin IN A 192.168.50.3 16 ns1.mark IN A 192.168.50.4 17 ns1 IN A 192.168.50.128 18 ns2 IN A 192.168.50.228 19 mail IN A 192.168.50.129 20 www IN A 192.168.156.128 21 ~ 22 ~ 23 ~