本文介绍 4 种 DNS 异常情况的模拟,分别为 server fail , ICMP port unreachable , No such name , Query refused . 下面为使用 bind9 模拟出 4 种异常情况的方法,本次使用 ptb.de 这个域名来模拟各种情况。


# server fail

当 DNS server 没有根域名的时候,会回 server fail ,所以只要把根域名注释掉就可以模拟。

1. 编辑 db.ptb.de , 将 NS 记录; 注释掉

$TTL    604800
@   IN  SOA ptb.de. root.ptb.de. (
                  2     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
; A records
;@       IN      NS      localhost.
@       IN      A       192.168.100.9
;ptbtime1       IN      A       194.25.134.196
;ptbtime1       IN      AAAA    2003:2:2:140:194:25:134:196

2. 重启 bind9

sudo /etc/init.d/bind9 restart

3. 可以用 nslookup 实验一下是否实现

PS C:\Users\Administrator> nslookup.exe ptbtime1.ptb.de 192.168.100.9
服务器:  UnKnown
Address:  192.168.100.9
*** UnKnown 找不到 ptbtime1.ptb.de: Server failed

# ICMP port unreachable

1. 停止 bing9 服务

sudo /etc/init.d/bind9 stop

2. 使用 nslookup 验证一下

PS C:\Users\Administrator> nslookup.exe ptbtime1.ptb.de 192.168.100.9
服务器:  UnKnown
Address:  192.168.100.9
*** UnKnown 找不到 ptbtime1.ptb.de: No response from server

# No such name

存在 zone , 但没有对应的子域名时回复 No such name

1. 将文件 db.ptb.de 中对应的域名注释掉,然后

$TTL    604800
@   IN  SOA ptb.de. root.ptb.de. (
                  2     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
; A records
@       IN      NS      localhost.
@       IN      A       192.168.100.9
;ptbtime1       IN      A       194.25.134.196
;ptbtime1       IN      AAAA    2003:2:2:140:194:25:134:196

2. 重启 bind9

sudo /etc/init.d/bind9 restart

3. 使用 nslookup 验证一下

PS C:\Users\Administrator> nslookup.exe ptbtime1.ptb.de 192.168.100.9
服务器:  UnKnown
Address:  192.168.100.9
*** UnKnown 找不到 ptbtime1.ptb.de: Non-existent domain

# Query refused

没有对应域名的 zone 时,回复 Query refuse

1. 修改 named.conf.local , 将对应的 zone 删除或者用 // 注释

//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
//zone "ptb.de" {
//type master;
//file "/etc/bind/db.ptb.de";
//};

2. 重启 bind9

sudo /etc/init.d/bind9 restart

3. 使用 nslookup 验证一下

PS C:\Users\Administrator> nslookup.exe ptbtime1.ptb.de 192.168.100.9
服务器:  UnKnown
Address:  192.168.100.9
*** UnKnown 找不到 ptbtime1.ptb.de: Query refused
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

木 白 微信支付

微信支付

木 白 支付宝

支付宝

木 白 贝宝

贝宝