亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

不能用公網地址訪問內網服務器的詳解(2)
2006-08-30   賽迪網

第四節

本貼的高潮部分已經達到,至此,只剩下一種情況,就是內網pat地址、服務器公網地址、出口地址全部不在同網段。假設出口掩碼252,服務器公網地址段掩碼248,內網pc的pat地址改為5.5.5.254,這樣三種地址都不在同網段。而且isp也必須有服務器公網地址和內網pc的pat地址的路由,下一條是5.5.5.1我們再次分析一個包,內網pc1.1.1.111發出ping 5.5.5.4請求,包源地址1.1.1.111,目的地址5.5.5.4,路由器收到這個包后,檢查路由表,發現5.5.5.4不在本地的任何接口,所以走了缺省路由,將包發給了isp對端口,并在本地nat表中生成一條項目,記錄內網地址1.1.1.111被轉換成公網地址5.5.5.254加上端口號,isp接受到的包,目的地址是5.5.5.4,源地址變成了5.5.5.254,它檢查它的路由表,發現5.5.5.4路由下一條是5.5.5.1,也就是本地路由器,所以又將此包發給本地路由器,經過了一次往返后,本地收到這個包,首先接受nat引擎的過慮,發現5.5.5.4正在被靜態映射到內網的1.1.1.1的主機,所以改變目的地址為1.1.1.1,源地址還是5.5.5.254,這樣就交給了路由引擎,查看路由表,1.1.1.1的路由當然有了,通過2層直接發給1.1.1.1,至此,去程的包分析完畢。

我們再分析回程的包。服務器1.1.1.1收到包后,準備回應給5.5.5.254(加端口號),發出reply包,源地址1.1.1.1,目的地址5.5.5.254,本地路由器收到后,先給路由引擎,發現5.5.5.254不在本地任何端口下,所以走了缺省路由,發給isp,并在nat表中生成一條記錄,將1.1.1.1轉換為5.5.5.4,isp接受到包源地址變為5.5.5.4,目的地址是5.5.5.254,通過檢查路由表,發現5.5.5.254這個地址的路

由下一條應該是5.5.5.1,也就是本地路由器,所以包又被發回來了,經過一次往返,本地收到了這個包,首先提交給nat引擎,發現目的地址5.5.5.254:某個端口,在nat表中對應著內網pc1.1.1.111,所以將5.5.5.254替換成1.1.1.111,源地址不變,還是5.5.5.4,然后提交給路由引擎,路由器在2層將包發給1.1.1.111,這時,1.1.1.111這臺主機收到了從5.5.5.4返回的包,而他一開始ping請求包,就是發給5.5.5.4這個公網地址的,所以ping通了!!!!

結論四:三種地址全部不在同網段,沒有問題。

綜上所述,得到了4個結論:

結論一:只要出口地址和服務器映射的公網地址在同網段,就有問題。

結論二:只要出口地址和內網pc的pat地址同網段,同樣會有問題。

結論三:內網pc的pat地址和服務器公網地址同網段,同時和出口地址不同網段,這樣沒有問題。

結論四:三種地址全部不在同網段,沒有問題。

可以簡單的發現,前兩個是充分條件,只要滿足了其中一個,就會出現問題,而現在大多數的接入都符合前兩個情況,而幾乎沒有人“多此一舉”的去改變掩碼規劃,所以造成如此多的普遍現象:內網不能用公網地址訪問內網服務器!!!!!

出口地址只要不和其他兩種地址同網段,就可以保證不出問題。

至此,已經探討了問題的原因。此過程中我還得到了一個推論和一個待驗證的問題。

推論:如果nat池中的公網地址和出口地址不同網段,不管在內網還是公網ping nat池中未參與轉換的公網地址,會出現環路,包在本地和isp之間來回往返。

待驗證的問題:

對于第三節和第四節,如果只在本地出口變長掩碼,isp端不作任何改變,會怎么樣?以第三節的環境來說:我們再次分析一個包,內網pc1.1.1.111發出ping 5.5.5.4請求,包源地址1.1.1.111,目的地址5.5.5.4,路由器收到這個包后,檢查路由表,發現5.5.5.4不在本地的任何接口,所以走了缺省路由,將包發給了isp對端口,并在本地nat表中生成一條項目,記錄內網地址1.1.1.111被轉換成公網地址5.5.5.6加上端口號,isp接受到的包,目的地址是5.5.5.4,源地址變成了5.5.5.6,它檢查它的路由表,由于此時isp的接口掩碼沒有變長,還是248,所以,它發現5.5.5.4路由就在它自己的接口上,所以直接在接口發arp請求5.5.5.4的mac地址,此時,按理說,沒人會應答(除非本地開了代理arp),但是有一次偶爾發現在路由器上show arp,會發現有些奇怪的條目,ip地址都是nat池中的地址,mac地址不管ip多少,都是本地出口的mac地址,這樣的話,即使arp請求的地址不和出口同段,一樣會得到應答,不知道這個對不對。

對這個問題的解決方法,在ios層面,一般是利用修改dns回包中的payload實現的,將dns返回的公網地址,修改成內網地址,這樣直接通過內網通信,就不會有問題了。對于直接用公網ip訪問的包,會在路由器內部先nat,然后調頭,不走出口,直接再回到內網,以支持用公網地址訪問。

熱詞搜索:

上一篇:不能用公網地址訪問內網服務器的詳解(1)
下一篇:Windows下換網卡時IP地址占用的處理方法

分享到: 收藏