“dig +trace fqdn”和“dig fqdn”在具有 Windows DNS 伺服器的 LAN 上不會給出相同的結果,為什麼?
在我的公司區域網路中,我有一個Ubuntu 14.04 伺服器在 Windows 7(主機)上的 Virtualbox(作為來賓)中執行,網路介面橋接(因此 Ubuntu 伺服器屬於區域網路,其 ip: 192.168.1.85)。我在這台伺服器上有一個網站:mywebsite.com
LAN 到 Internet 的網關是192.168.1.1 (Cisco 1841) –> 188.188.188.254作為公共 IP。
區域網路中有一台 Windows 2008 伺服器充當DNS伺服器和DHCP伺服器。我添加了一個帶有A 記錄 -> 192.168.1.85的轉發區域“mywebsite.com” 。
在 LAN 之外,mywebsite.com有指向 Cisco 1841 公共 IP (188.188.188.254) 的公共 Dns 記錄
現在,當我從區域網路ping mywebsite.com 時,我很快就得到了192.168.1.85。
但是當我通過客戶端上的瀏覽器連接時,它並不總是很快。所以我想知道:
我的請求是真的/直接解析並轉發到 192.168.1.85 ,還是****從 LAN發送出去,然後轉發回 CISCO 公共 188.188.188.254:80 和 NAT 到 Ubuntu 伺服器,然後再提供服務**???**
為了嘗試回答這個問題,我在 LAN 上尋找跟踪來自我的 linux 客戶端的 DNS 請求:
v@v-ss9:~$ dig mywebsite.com ; <<>> DiG 9.9.5-3-Ubuntu <<>> mywebsite.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24850 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;mywebsite.com. IN A ;; ANSWER SECTION: mywebsite.com. 3600 IN A 192.168.1.85 ;; Query time: 1 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Fri Aug 22 09:50:16 CST 2014 ;; MSG SIZE rcvd: 66
這個答案看起來正確:192.168.1.85。但再看看這個:
v@v-ss9:~$ dig +trace mywebsite.com ; <<>> DiG 9.9.5-3-Ubuntu <<>> +trace mywebsite.com ;; global options: +cmd . 12955 IN NS h.gtld-servers.net. . 12955 IN NS g.gtld-servers.net. . 12955 IN NS m.gtld-servers.net. . 12955 IN NS i.gtld-servers.net. . 12955 IN NS l.gtld-servers.net. . 12955 IN NS k.gtld-servers.net. . 12955 IN NS j.gtld-servers.net. . 12955 IN NS d.gtld-servers.net. . 12955 IN NS b.gtld-servers.net. . 12955 IN NS c.gtld-servers.net. . 12955 IN NS a.gtld-servers.net. . 12955 IN NS e.gtld-servers.net. . 12955 IN NS f.gtld-servers.net. ;; Received 516 bytes from 127.0.1.1#53(127.0.1.1) in 18 ms mywebsite.com. 172800 IN NS ns3.rmi.fr. mywebsite.com. 172800 IN NS ns4.rmi.fr. CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0QFMDQRCSRU0651QLVA1JQB21IF7UR NS SOA RRSIG DNSKEY NSEC3PARAM CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20140825045016 20140818034016 6122 com. Imq8K9xlvFXlB4IjUkdxOc5YHoTEhqSQUlRSJ9QCIhd9wzGpWJ54AfVf WJ0SUKThalpzqS0cXdLGtNmuYgqLfwUMjpUlT4c+zJyx7I4QMPLImQZh Ov0xy3mUr7dLlymAJYGs9dLI2IaheLvpKTBwaV1gAvo8QEkU8VRiJ7gW 9dk= U0PIA23FHMVPTKSDHC9PJ1BEA9SIB65R.com. 86400 IN NSEC3 1 1 0 - U0PL33R61V6TCCPBS1171PROP57ASRD9 NS DS RRSIG U0PIA23FHMVPTKSDHC9PJ1BEA9SIB65R.com. 86400 IN RRSIG NSEC3 8 2 86400 20140825043502 20140818032502 6122 com. qsC5sJbwklao+OedCHpcYo56aQaY0N+7peKmPu8szvjAQoJFRWyuDfAh Nw/gvHXEMzG7tYLriQGVfsiK8GZdPXyG4Ghe1MNN4jOZnSahkT5LjlqL 5QyGC0QiClRMPDAYjUOFGQDkjOJcJYvTNkEyXC2BEpfLI5SwCbYqwqg3 RkE= ;; Received 585 bytes from 192.41.162.30#53(l.gtld-servers.net) in 297 ms mywebsite.com. 86400 IN A 188.188.188.254 mywebsite.com. 86400 IN NS ns3.rmi.fr. mywebsite.com. 86400 IN NS ns4.rmi.fr. ;; Received 204 bytes from 212.51.161.18#53(ns3.rmi.fr) in 310 ms
在這裡,我得到了我的 CISCO 公共 IP 188.188.188.254!!!
- 正常嗎?
- 使用 mywebsite.com 時,如何知道我的瀏覽器(來自 LAN)是否真的與 192.168.1.85 直接通信?
感謝您的幫助。
**這是正常的嗎?**是的!
dig +trace 遞歸解析域。它首先查詢根伺服器,依此類推。與任何解析器預設的方式相同,
由於該站點託管在您的 LAN 中,因此您可以跳過遞歸併直接從您的 LAN 的 DNS 伺服器提供該區域 - 您正在這樣做。此外,您可以指定一個本地 IP 地址(這在公共網際網路上不起作用) - 您正在這樣做。當您僅使用
dig
LAN 的 DNS 伺服器查詢域時,將直接查詢 - 因此回復中的本地 IP 地址。另一方面,
dig +trace
忽略您的預設解析器。dig 充當它自己的解析器,並模擬網際網路上的解析器會做什麼。由於無法從外部訪問本地 IP 地址,因此您需要返回公共 IP 作為答案。這正是你所看到的……**您在 LAN 上的瀏覽器是否使用本地 IP 訪問網站?**大概!
dig
返回本地 IP。這表明您的 DNS 伺服器實際上將本地 IP 返回給 LAN 客戶端,並且您的電腦實際上已配置為使用 LAN DNS 伺服器。所以,除非發生奇怪的事情,是的。你怎麼能確定? 伺服器的日誌是你的朋友。
如果 Web 伺服器日誌中的源 IP 與您路由器的外部公共 IP 匹配,則說明本地 IP 未被使用。
另一方面,如果源 IP 與您的瀏覽器的本地 IP 地址匹配,是的,正在使用本地 IP。
你怎麼能真的很確定?
線鯊。在瀏覽時進行數據包擷取。看看什麼流量去哪裡。