我不明白为什么最后会收到“错误的目标地址”。
DNS 工作原理:
root@pc:~# nslookup foo.bar.local
Server: 127.0.1.1
Address: 127.0.1.1#53
Name: foo.bar.local
Address: 10.100.71.28
跟踪路由到 IP 的工作原理:
root@pc:~# tcptraceroute 10.100.71.28 443
Selected device eth1, address 172.17.6.82, port 34878 for outgoing packets
Tracing some path to 10.100.71.28 on TCP port 443 (https), 30 hops max
1 172.17.6.254 0.401 ms 0.510 ms 0.402 ms
2 10.130.4.2 0.941 ms 0.893 ms 0.800 ms
3 * * *
4 * * *
5 10.100.63.11 17.915 ms 20.109 ms 17.054 ms
6 10.100.71.28 [open] 22.654 ms 17.680 ms 21.081 ms
Tcptraceroute 到主机名不起作用???
root@pc:~# tcptraceroute foo.bar.local 443
Bad destination address: foo.bar.local
更新
其他命令(例如 ping 或 traceroute)也无法访问 foo.bar.local。
我没有得到任何输出:
getent hosts foo.bar.local
答案1
问题中的命令表明 DNS 正在运行并且 IP 网络正在运行。
怎么了? :-)
您的操作系统不像 nslookup 那样直接连接到 DNS。
名称服务交换机在操作系统向 DNS 询问该命令是否tcptraceroute foo.bar.local
运行之前确实会发生这种情况。
我这样修复了它:
diff -r /var/tmp/etc-saved/nsswitch.conf /etc/nsswitch.conf
11c11
< hosts: files mdns4_minimal [NOTFOUND=return] dns
---
> hosts: files dns