路由跟踪为什么会有两个局域网?
問:
剛開始學習網絡,用Best Trace做了一下路由跟蹤,看了這個結果不是很明白,有幾個問題想請教一下大家,非常感謝各位大神。
1.為什么第1個記錄的ip是公網ip, 后面卻標示著‘局域網’,這個是和教育網有關嗎?
2.第4個記錄為什么又多出一個局域網,教育網也是公網ip, 為什么不直接連廣州電信,是因為教育網轉入公網的原因嗎?
3.第10個記錄的4個‘*’符號分別是什么意思,是得不到響應的意思嗎?為什么會有這種情況?
另外還有一個問題:
用瀏覽器打開http://ip.cn,上面顯示我所在的ip是183.6.160.232, 是廣州電信的,但用Best Trace對http://ip.cn作路由跟蹤,所得到的記錄里面卻沒有這個ip。
答:
作者:北極
鏈接:https://www.zhihu.com/question/287956997/answer/458835550
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
?
我對這個trace的結果有一些不同的看法,從實際網絡部署的角度上看,我覺得其它回答說的都不完全正確:
1.為什么第1個記錄的ip是公網ip, 后面卻標示著‘局域網’,這個是和教育網有關嗎?高度懷疑是你工具的bug,這個IP地址的歸屬,建議到APNIC上查一下https://wq.apnic.net/static/search.html,APNIC掌管著亞洲地區的IP地址分配,雖然不能精確到宿舍樓這種場景,但大塊地址的所有權還是很明確的。
2.第4個記錄為什么又多出一個局域網,教育網也是公網ip, 為什么不直接連廣州電信,是因為教育網轉入公網的原因嗎?這個比較有意思,首先,先說一種最常見的情況:
即使你擁有公網IP地址,你直接訪問教育網的話(注意,不是廣州電信),你使用trace工具也可能看到局域網IP地址。
trace工具的原理是設置一個較小的TTL,等到超時的時候,會收到一個中間的三層設備的TTL Expired回應。回應的報文里,會包含一個IP地址,trace工具收到這個地址以后,給你顯示出來,你就可以看到某一跳的設備地址了。
回應的報文里的IP地址,是中間節點的那個三層設備填充的,這個設備填充的IP地址,是這個設備上的地址,但一個三層設備,可能有多個IP地址。
比如下面的這個圖,如果回應的報文是三層設備B返回的,那么它實際上有兩個IP地址:IP1和IP2,報文里應該填哪個呢?
[你的PC]----[三層設備A]----(IP1)[三層設備B](IP2)------(外網...)實際情況是,它填哪個都可以。甚至,更極端的情況下,三層設備B上面連接著十幾個不同的網段,那么它返回哪個地址都是可以的。
所以,如果它的某個接口上連接著的是一個內網,它返回一個私有地址是完全有可能的。
然后就要繼續說這個有意思的事情了,題主遇到的是一種更復雜的情況:
正常情況下,教育網要訪問公網的網站,是要繞行到教育網的總出口的,我印象里總出口是在北京、上海這種地方,可能廣州也有,但應該不在華南理工大學。
所以你正常的trace應該走的是:
校園網-教育網廣州節點-教育網北京節點-北京聯通->...但實際情況不符。
那只能證明一點:你們學校自己拉了一個公網出口。
我記得我念書的時候(2003年),高校一般都嚴格禁止私自接一個公網出口,但如果不私自接的話,訪問公網又太慢了,現在管的嚴不嚴就不清楚了。
但如果學校自己拉一個公網出口,配置起來就很麻煩了,首先要解決的就是路由表的問題:如果路由直接互通,那樣會干擾整個教育網的路由,廣州的其它大學會看到你們學校整個出口,這些學校要想訪問公網是走你們這個出口呢?還是走北京的教育網總出口?真要走到你們這里的話,費用怎么算?
所以為了防止互相干擾,一種特別常見的部署方式是雙向NAT技術,用圖來說話:
(教育網至北京)| [你的PC]----(IP1)[三層設備A](IP2)---(雙向NAT網絡)---(IP3)[三層設備B](IP4)------(廣州電信)因為擔心兩邊的路由表會影響對方,所以,當兩個不同的網絡要私拉一個接口的時候,會在邊界路由器上(圖里的三層設備A/B)做兩個NAT,這樣的話,兩邊互相看不到對方的路由表,只能看到一個內網,在邊界上設置幾組靜態路由,就可以實現轉發。
根據我這個圖,可以得出一些結論:
三層設備A對應著你的圖里的第3跳,IP1是你看到的地址:222.201.129.17
三層設備B對應著你的圖里的第4跳,IP3是你看到的地址:192.168.66.250
你在網頁上看到的你的公網IP:183.6.160.232,對應著是IP4
這樣就能解釋你這個圖里的好幾個問題:
為什么中間會有一個內網地址?為什么顯示的公網地址(183.6.160.232)在你trace里找不到?為什么你能直接從校園網直接進入廣州電信?
都是因為雙向NAT的原因。
3.第10個記錄的4個‘*’符號分別是什么意思,是得不到響應的意思嗎?為什么會有這種情況?可能的情況有很多,比較常見的情況是有安全設置,禁止回應TTL超時的報文,但也不僅限于這一種,安全設置一般在網絡接入層的防火墻附近,在公網里不太常見。
我更傾向于可能是trace這個工具本身的問題:
trace對于每個節點要發三次,如果三次返回的IP地址都一樣,那么就顯示出來,但如果不一樣,就顯示一個星號“*”。
在公網上,為了負載平衡的需要,不同節點之間,尤其在骨干網上,可能存在多條等價路徑,如果trace工具在這種位置上嘗試trace,就會顯示“*”,因為每次返回的IP地址是不同的。
考慮到題主遇到“*”的位置正好是骨干網,我更傾向于這里是因為等價路由導致的。
以上是我的判斷。
-----------
對了,題主可以做一個實現,你去ping一下183.6.160.232和192.168.66.250,這兩個設備的TTL值可能是一樣的(如果能ping通的話)。
?
下面是車小胖的回答:
?
我認為比較贊同前者北極的回答,中間的那個內網地址,應該是雙向NAT搞出來的。
車小胖的提到的兩篇鏈接:
ISP路由器上是不是擁有Internet中所有路由條目?
為什么用IP查詢網查詢的自己的外網IP和用tracert命令查詢的自己的出口IP不一致?
原文鏈接:https://www.zhihu.com/question/287956997
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的路由跟踪为什么会有两个局域网?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SystemUI 人脸识别解锁后指纹消耗
- 下一篇: U盘维护系统无法启动,启动蓝屏(0xa5