這是我的問題:
當連接到我的 FIOS ISP 時,沒有路由器、IE,直接連接到我的 FIOS 數據機,我得到的A
DNS 記錄與連接到不同 ISP/網路時得到的 DNS 記錄不同。
- 在我的 FIOS ISP 上,我運行:
nslookup netflix.com
- 這是沒有指定 dns 的情況,並且得到:
Non-authoritative answer:
Name: netflix.com
Addresses: 2a01:578:3::22fa:2993
2a01:578:3::3413:2893
2a01:578:3::341f:91b7
2a01:578:3::34d1:eb8d
2a01:578:3::341e:2dc6
2a01:578:3::36ab:7445
2a01:578:3::34d2:745
2a01:578:3::341f:b664
54.77.143.196
52.208.135.54
34.252.179.162
52.209.79.186
52.17.227.174
52.51.252.111
54.171.187.60
52.30.103.23
- 再次,在我的 FIOS ISP 上,我運行:
nslookup netflix.com 85.203.37.1
並85.203.37.1
指定了 DNS 解析器,然後我得到與 (1) 完全相同的結果:
Non-authoritative answer:
Name: netflix.com
Addresses: 2a01:578:3::22fa:2993
2a01:578:3::3413:2893
2a01:578:3::341f:91b7
2a01:578:3::34d1:eb8d
2a01:578:3::341e:2dc6
2a01:578:3::36ab:7445
2a01:578:3::34d2:745
2a01:578:3::341f:b664
54.77.143.196
52.208.135.54
34.252.179.162
52.209.79.186
52.17.227.174
52.51.252.111
54.171.187.60
52.30.103.23
- 然而,現在完全令我困惑的是,如果我
nslookup netflix.com 85.203.37.1
使用85.203.37.1
指定的 DNS 解析器運行,任何其他網絡,即透過 VPN,或在行動裝置上等。
Non-authoritative answer:
Name: netflix.com
Addresses: 198.255.83.3
107.182.237.252
(3) 恰好是我期望得到的回應,我不明白的是,當連接到 (2) 中的 FIOS ISP 時,幾乎就像我沒有指定 DNS 解析器一樣,即使我有,以及A
DNS 記錄如何與我的ISP 的DNS 傳回的記錄完全相同。
讓我覺得很奇怪的是,這看起來像是某種 DNS 攔截或劫持。做完之後,在谷歌上搜尋了很多關於 DNS 攔截的信息,我不清楚它是否真的發生了。
令人煩惱的是,我找不到一個始終能夠證明 DNS 請求被攔截的一致測試,我猜是因為攔截或重定向 DNS 請求的方法有很多不同。我所做的一些“測試”如下:
- https://padlock.argh.in/2019/04/28/sky-dns-interception.html
- https://superuser.com/a/1348765/450105
- https://labs.ripe.net/Members/babak_farrokhi/is-your-isp-hijacking-your-dns-traffic
在所有這些測試中,我似乎沒有得到任何攔截正在發生結果。
我試圖盡可能多地了解 DNS 攔截的細節,但它太複雜了,我不能說我理解它。但是,根據我收集的信息,我能想到的唯一解釋是我的 FIOS ISP 正在以某種方式重寫A
DNS 記錄。
這是一個合理的結論,還是我錯過了什麼?
我已經聲明我可能會發瘋,因為這個問題正在慢慢讓我發瘋。
答案1
您不會發瘋,您的 ISP 也不會篡改您的 DNS 結果。現代網路比您想像的更加複雜和虛擬化。
高流量網站使用內容交付網路 (CDN)。 CDN 的伺服器分佈在網際網路的「邊緣」各處;也就是說,靠近消費者連結網路的地方。這樣,當您從 Netflix 串流內容時,它不是來自位於美國加利福尼亞州洛斯加托斯的 Netflix 總部,而是來自連接到本地 ISP 網路基礎設施的 CDN「邊緣節點」伺服器。這樣,響應時間、頻寬和可靠性都比從遠處進行串流傳輸要好得多。
當您對 CDN 託管的網域進行 DNS 查詢時,CDN 的 DNS 伺服器會根據您的 DNS 查詢來源的 IP 位址,使用指向距離您最近的邊緣節點的 A 和 AAAA 記錄來回答您。
好的,但是大多數解析 DNS 伺服器在為您遞歸解析 DNS 查詢時不會洩漏您用戶端的 IP 位址。那為什麼你會得到不同的答案來自同一 DNS 伺服器當您從不同的網路連線?
嗯,就您的情況而言,您正在使用的DNS 伺服器(85.203.37.1) 似乎是透過「自帶IP」(BYOIP) 安排託管在IBM 雲端託管中,因此即使您到85.203.37.1 的流量實際上也會發生變化。因此,即使該 IP 位址來自分配給 falco-networks.com 的網路區塊,Falco 似乎已安排 IBM「擁有」到該網路區塊的路由,因此到該 IP 位址的流量會被路由到最近的入口點IBM 的全球網絡,然後IBM 將其路由到最近的邊緣節點。
因此,當我追蹤路由到85.203.37.1 時,它終止於我自己的美國大都會區,儘管該網路區塊是RIPE(歐洲區域網路註冊機構)IPv4 分配的一部分,而且儘管Falco 似乎是一家來自荷蘭的公司。如果沒有透過 CDN 和雲端服務進行大量網路虛擬化,我絕對不會期望追蹤路由會在歐洲以外的任何地方終止。我懷疑當你追蹤路由到它時,它會為你終止在荷蘭的某個地方(我猜你在荷蘭)。
如果您想使用您自己的追蹤路由和 whois 查詢來仔細檢查我的情況,請注意網域「networklayer.com」、「softlayer.net」和「sl-reverse.com」似乎都歸 IBM 所有,並且用作其雲端基礎設施的一部分。因此,如果您在最後一個或倒數第二個命名躍點中看到任何這些名稱,則強烈表明您的流量此時已進入 IBM 的雲端服務網路。