我的 /etc/resolv.conf 使用 8.8.8.8 并且下面所有 3 个答案都没有 A 记录
dig some_unregistred_adress.se
dig @8.8.8.8 some_unregistred_adress.se
dig @127.0.0.1 some_unregistred_adress.se
但是如果我 ping some_unregistred_adress.se,我最终会 ping 我的服务器,它甚至不在与这台计算机相同的 ISP 上,我唯一知道的连接是这台计算机的主机名是我的服务器的一个子域。
ping 和其他软件在哪里获取未注册域名的 IP 地址?
一些相关的输出:
puggan@rito ~ $ uname -a
Linux rito.work.puggan.se 2.6.38-gentoo-r6 #2 SMP Thu Jul 14 14:36:14 CEST 2011 i686 AMD Athlon(tm) II X2 245 Processor AuthenticAMD GNU/Linux
puggan@rito ~ $ dig @127.0.0.1 some_unregistred_adress.se
; <<>> DiG 9.7.3 <<>> @127.0.0.1 some_unregistred_adress.se
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 8080
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;some_unregistred_adress.se. IN A
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Dec 2 15:51:31 2011
;; MSG SIZE rcvd: 44
puggan@rito ~ $ ping -c 1 some_unregistred_adress.se
PING puggan.se (83.248.176.173) 56(84) bytes of data.
64 bytes from c83-248-176-173.bredband.comhem.se (83.248.176.173): icmp_req=1 ttl=52 time=34.4 ms
--- puggan.se ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 34.406/34.406/34.406/0.000 ms
puggan@rito ~ $ egrep "^(#|$)" -v /etc/resolv.conf
nameserver 8.8.8.8
nameserver 130.244.127.162
nameserver 130.244.127.170
nameserver 192.168.1.32
答案1
- 你是不是使用完全限定的域名;
- 用于将名称转换为 FQDN 的域搜索路径包括
puggan.se.
;并且 - 有一个通配符
*.puggan.se
匹配some_unregistred_adress.se.puggan.se.
并且 具有cname
指向 的资源记录集puggan.se
。
如果您不想使用在 DNS 客户端库中配置的搜索路径行为,请使用完全限定域名。
进一步阅读
- 完全限定域名. 男人和老鼠。2009 年。
- 乔纳森·德·博因·波拉德(2003年)。 为什么的结果
nslookup
与操作不同ping
. 常见问题答案。
答案2
一些 ISP 会拦截 DNS 请求并将其重定向到他们自己的请求,并提供错误的答案(例如他们自己的垃圾广告网站),希望从不存在/输入错误的域名中赚取几分钱。
此外,运行 .se TLD 的任何人都可以使用通配符 *.se DNS 条目来捕获所有不存在的 .se 域查找。对于 .se,这似乎是“one.com”:
$ nslookup -type=soa blahblah.se
Server: access.usask.ca
Address: 128.233.3.1
Non-authoritative answer:
blahblah.se
primary name server = ns01.one.com
responsible mail addr = hostmaster.one.com
serial = 2004000000
refresh = 10800 (3 hours)
retry = 1800 (30 mins)
expire = 1209600 (14 days)
default TTL = 900 (15 mins)
blahblah.se nameserver = ns01.one.com
blahblah.se nameserver = ns02.one.com
ns01.one.com internet address = 195.47.247.5
ns02.one.com internet address = 91.198.169.5</strike>
好的...应该为这个特定的测试选择一个更加随机/不存在的域。nslookup asdfasdfasdfasdfasdfadsf.se 确实返回 no-such-host。
答案3
再次遇到同样的问题,上次忘记写下我的解决方案了。
为了关闭搜索域,我search .
在 /etc/dhcpcd.conf (gentoo) 中添加了