1. 程式人生 > >Bind支援帶下劃線域名的解析

Bind支援帶下劃線域名的解析

公司內部使用的一臺使用Linux Bind做的DNS伺服器,上面跑著一個域名(abc.com),一直執行的好好的。今天又要新增一個域名,不就是把配置檔案複製一份,然後在主配置檔案中新增一個域就好了。配置如下:

one    "def.com" {
    type    master;
    file    "/etc/bind/def.com.hosts";
};
$ttl 38400                                                                                                                                        
@       IN      SOA     ns.def.com.   admin.def.com. (
                        1243951711
                        10800
                        3600
                        604800
                        38400 )
@               IN  NS  ns
ns              IN  A   172.16.17.10
file            IN  A   172.16.20.12
live-mng        IN  A   172.16.20.13
photo_mng       IN  A   172.16.20.14

然後進行語法檢查也沒有報錯,然後重啟服務也是成功的。

但是進行dig的時候,def.com下的域名都無法解析,但是abc.com下的域名都正常執行。難道是不支援多域名解析,顯然不是這樣的。

反正經過一段時間的折騰,發現竟然是photo_mng.def.com這個域名導致的無法解析,注意看了,photo_mng.def.com這個域名使用了下劃線,Bind預設是不支援下劃線域名解析的(支援-線),但是比較坑爹的是它沒有任何提示資訊,也不會報錯,就是無法解析,媽蛋。

當然了,解決辦法也是有的,那就是如果一定要用下劃線,可以取消check-names。

有兩種方法:

一、在/etc/resolv.conf加入options no-check-names

二、主配置域中新增check-names ignore引數

zone    "def.com" {
    type    master;
    file    "/etc/bind/def.com.hosts";
    check-names ignore;
};