Windows-Server-2008

“dig +trace fqdn”和“dig fqdn”在具有 Windows DNS 伺服器的 LAN 上不會給出相同的結果,為什麼?

  • August 22, 2014

在我的公司區域網路中,我有一個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!!!

  1. 正常嗎?
  2. 使用 mywebsite.com 時,如何知道我的瀏覽器(來自 LAN)是否真的與 192.168.1.85 直接通信?

感謝您的幫助。

**這是正常的嗎?**是的!

dig +trace 遞歸解析域。它首先查詢根伺服器,依此類推。與任何解析器預設的方式相同,

由於該站點託管在您的 LAN 中,因此您可以跳過遞歸併直接從您的 LAN 的 DNS 伺服器提供該區域 - 您正在這樣做。此外,您可以指定一個本地 IP 地址(這在公共網際網路上不起作用) - 您正在這樣做。當您僅使用digLAN 的 DNS 伺服器查詢域時,將直接查詢 - 因此回復中的本地 IP 地址。

另一方面,dig +trace忽略您的預設解析器。dig 充當它自己的解析器,並模擬網際網路上的解析器會做什麼。由於無法從外部訪問本地 IP 地址,因此您需要返回公共 IP 作為答案。這正是你所看到的……

**您在 LAN 上的瀏覽器是否使用本地 IP 訪問網站?**大概! dig返回本地 IP。這表明您的 DNS 伺服器實際上將本地 IP 返回給 LAN 客戶端,並且您的電腦實際上已配置為使用 LAN DNS 伺服器。所以,除非發生奇怪的事情,是的。

你怎麼能確定? 伺服器的日誌是你的朋友。

如果 Web 伺服器日誌中的源 IP 與您路由器的外部公共 IP 匹配,則說明本地 IP 未被使用。

另一方面,如果源 IP 與您的瀏覽器的本地 IP 地址匹配,是的,正在使用本地 IP。

你怎麼能真的很確定?

線鯊。在瀏覽時進行數據包擷取。看看什麼流量去哪裡。

引用自:https://serverfault.com/questions/623207