狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點(diǎn)晴永久免費(fèi)OA]對內(nèi)網(wǎng)不能用外網(wǎng)地址訪問內(nèi)部服務(wù)器

admin
2013年10月24日 18:11 本文熱度 10857
hi大家好,今天我們來討論一個(gè)很多人都找不到答案得問題:究竟為什么內(nèi)網(wǎng)不能用公網(wǎng)地址訪問內(nèi)網(wǎng)服務(wù)器。不是任何設(shè)備都存在此問題,拿cisco的設(shè)備來說,不同版本的ios,有的就沒有這個(gè)問題,而有的版本就有問題,netscreen的防火墻也沒有這個(gè)問題,關(guān)鍵是開發(fā)者有沒有意識到這個(gè)問題,通過修改ios,完全可以避免。對于這個(gè)問題,解決方法是有,比如內(nèi)網(wǎng)dns欺騙、pix上得alias等等,但是究竟為什么有些設(shè)備不支持呢?今天我斗膽發(fā)個(gè)貼,因?yàn)橛行┙Y(jié)論純粹靠想,也沒有設(shè)備進(jìn)行試驗(yàn),所以希望大家跟貼討論,達(dá)到拋磚引玉的目的,謝謝了先!

以下所有內(nèi)容均針對出口是以太網(wǎng)的情況,對于串口接入,不會(huì)出現(xiàn)這種問題。

如圖,這個(gè)圖是本貼的初始圖,大圈是本地路由器,和他相連的是isp路由器,和isp相連的是internet上隨便一個(gè)路由器。

本地出口地址是5.5.5.1,isp對端是5.5.5.2(掩碼沒寫,稍后會(huì)分別討論)。 1.1.1.1和1.1.1.2是內(nèi)網(wǎng)兩臺(tái)服務(wù)器的內(nèi)網(wǎng)地址,被靜態(tài)映射到公網(wǎng)上的5.5.5.4和5.5.5.5。內(nèi)網(wǎng)的pc全部被pat到出口上,本地路由器一條缺省路由到isp對端。

我想這個(gè)拓?fù)鋺?yīng)該是非常普遍的了,我認(rèn)為就是因?yàn)檫@個(gè)非常普遍的拓?fù)洌斐闪撕芏嗳怂磻?yīng)的“內(nèi)網(wǎng)不能通過公網(wǎng)地址訪問內(nèi)網(wǎng)服務(wù)器”這個(gè)問題。我認(rèn)為這個(gè)問題的關(guān)鍵原因就在于掩碼,就是在3層上做文章。

第一節(jié)

先來看看一般情況下,這個(gè)環(huán)境的掩碼的規(guī)劃。假設(shè)isp分配一段8地址子網(wǎng)給本地,這樣isp路由器接口和本地路由器接口共占用2個(gè),網(wǎng)絡(luò)地址、廣播地址共占用2個(gè),可用的一共4個(gè),掩碼是248。對于圖示的拓?fù)洌僭O(shè)本地路由器出口掩碼是248(內(nèi)網(wǎng)pc的pat地址相應(yīng)的也就是掩碼為248),被映射的兩個(gè)地址掩碼也是248,這個(gè)最普遍的掩碼規(guī)劃,結(jié)果是:服務(wù)器、內(nèi)網(wǎng)pc的pat地址、本地出口地址全部處于同一個(gè)網(wǎng)段。我們分析一個(gè)包的來龍去脈,來看看到底內(nèi)網(wǎng)pc通過公網(wǎng)地址可否訪問到內(nèi)網(wǎng)服務(wù)器。

假設(shè)內(nèi)網(wǎng)一臺(tái)pc1.1.1.111發(fā)出ping 5.5.5.4(服務(wù)器的公網(wǎng)地址)請求,包源地址1.1.1.111,目的地址5.5.5.4,路由器收到這個(gè)包后,檢查路由表,發(fā)現(xiàn)5.5.5.4就位于自己的出口網(wǎng)段(假設(shè)出口為以太口),所以直接通過arp廣播請求5.5.5.4的mac地址,問題出現(xiàn)了,誰會(huì)應(yīng)答這個(gè)請求呢?沒有人,所以,這種情況下(所有公網(wǎng)地址在同網(wǎng)段)當(dāng)然不會(huì)通。不但內(nèi)網(wǎng)訪問服務(wù)器不行,服務(wù)器之間通過公網(wǎng)地址訪問也不會(huì)通。

結(jié)論一:只要出口地址和服務(wù)器映射的公網(wǎng)地址在同網(wǎng)段,就有問題。

第二節(jié)
基于上面的討論,我們知道了只要出口地址和服務(wù)器映射的公網(wǎng)地址在同網(wǎng)段,就會(huì)發(fā)生“無人應(yīng)答”的必然結(jié)果,所以我們這次改變掩碼規(guī)劃,將出口掩碼變長,變?yōu)?52(isp掩碼也要相應(yīng)改變)。在這里首先聲明一個(gè)要點(diǎn),就是nat池的地址可以和出口不在同網(wǎng)段,以前有帖子也討論過,我自己一開始也迷惑,后來想明白了,只要isp路由器上有這些地址的路由就可以,下一條是本地路由器,這樣本地路由器便可以接受到這些包。

我們再次分析一個(gè)包的流程。內(nèi)網(wǎng)pc1.1.1.111發(fā)出ping 5.5.5.4請求,包源地址1.1.1.111,目的地址5.5.5.4,路由器收到這個(gè)包后,檢查路由表,這一次,發(fā)現(xiàn)5.5.5.4不在本地的任何接口,所以走了缺省路由,將包發(fā)給了isp對端口,并在本地nat表中生成一條項(xiàng)目,記錄內(nèi)網(wǎng)地址1.1.1.111被轉(zhuǎn)換成公網(wǎng)地址5.5.5.1加上端口號(假設(shè)端口號是8888),isp接受到的包,目的地址是5.5.5.4,源地址變成了5.5.5.1,它檢查它的路由表,發(fā)現(xiàn)5.5.5.4路由下一條是5.5.5.1,也就是本地路由器,所以又將此包發(fā)給本地路由器,經(jīng)過了一次往返后,本地收到這個(gè)包,首先接受nat引擎的過慮,發(fā)現(xiàn)5.5.5.4正在被靜態(tài)映射到內(nèi)網(wǎng)的1.1.1.1的主機(jī),所以改變目的地址為1.1.1.1,源地址還是5.5.5.1,這樣就交給了路由引擎,查看路由表,1.1.1.1的路由當(dāng)然有了,通過2層直接發(fā)給1.1.1.1,至此,去程的包分析完畢。

我們再分析回程的包。服務(wù)器1.1.1.1收到包后,準(zhǔn)備回應(yīng)給5.5.5.1(加端口號),發(fā)出reply包,源地址1.1.1.1,目的地址5.5.5.1:8888,本地路由器收到后,先給路由引擎,發(fā)現(xiàn)5.5.5.1就是出口地址,問題又來了,包的目的就是出口,而不是經(jīng)過出口,這時(shí)候路由器該怎么辦呢?假如是從外向內(nèi)來的包訪問5.5.5.1:8888,這時(shí)候會(huì)先提交個(gè)nat引擎,做nat轉(zhuǎn)換。但是這是從內(nèi)向外發(fā)出的包,要先提交給路由引擎,我認(rèn)為此時(shí),由于收到的包是從內(nèi)向外的,目的直接就是針對出口來的,而出口并沒有開啟什么端口,除非為了web管理,或者telnet管理開啟80或23端口,所以路由器會(huì)丟棄,因?yàn)闆]有得到應(yīng)答。

結(jié)論二:只要出口地址和內(nèi)網(wǎng)pc的pat地址同網(wǎng)段,同樣會(huì)有問題

第三節(jié)
我們再變更掩碼方案,使得內(nèi)網(wǎng)pc的pat地址和服務(wù)器映射地址同網(wǎng)段,但和出口不同網(wǎng)段。假設(shè)內(nèi)網(wǎng)pc的pat地址為5.5.5.6(和服務(wù)器地址同網(wǎng)段)

我們再次分析一個(gè)包,內(nèi)網(wǎng)pc1.1.1.111發(fā)出ping 5.5.5.4請求,包源地址1.1.1.111,目的地址5.5.5.4,路由器收到這個(gè)包后,檢查路由表,發(fā)現(xiàn)5.5.5.4不在本地的任何接口,所以走了缺省路由,將包發(fā)給了isp對端口,并在本地nat表中生成一條項(xiàng)目,記錄內(nèi)網(wǎng)地址1.1.1.111被轉(zhuǎn)換成公網(wǎng)地址5.5.5.6加上端口號,isp接受到的包,目的地址是5.5.5.4,源地址變成了5.5.5.6,它檢查它的路由表,發(fā)現(xiàn)5.5.5.4路由下一條是5.5.5.1,也就是本地路由器,所以又將此包發(fā)給本地路由器,經(jīng)過了一次往返后,本地收到這個(gè)包,首先接受nat引擎的過慮,發(fā)現(xiàn)5.5.5.4正在被靜態(tài)映射到內(nèi)網(wǎng)的1.1.1.1的主機(jī),所以改變目的地址為1.1.1.1,源地址還是5.5.5.6,這樣就交給了路由引擎,查看路由表,1.1.1.1的路由當(dāng)然有了,通過2層直接發(fā)給1.1.1.1,至此,去程的包分析完畢。

我們再分析回程的包。服務(wù)器1.1.1.1收到包后,準(zhǔn)備回應(yīng)給5.5.5.6(加端口號),發(fā)出reply包,源地址1.1.1.1,目的地址5.5.5.6,本地路由器收到后,先給路由引擎,發(fā)現(xiàn)5.5.5.6不在本地任何端口下,所以走了缺省路由,發(fā)給isp,并在nat表中生成一條記錄,將1.1.1.1轉(zhuǎn)換為5.5.5.4,isp接受到包源地址變?yōu)?.5.5.4,目的地址是5.5.5.6,通過檢查路由表,發(fā)現(xiàn)5.5.5.6這個(gè)地址的路由下一條應(yīng)該是5.5.5.1,也就是本地路由器,所以包又被發(fā)回來了,經(jīng)過一次往返,本地收到了這個(gè)包,首先提交給nat引擎,發(fā)現(xiàn)目的地址5.5.5.6在nat表中對應(yīng)著內(nèi)網(wǎng)pc1.1.1.111,所以將5.5.5.6替換成1.1.1.111,源地址不變,還是5.5.5.4,然后提交給路由引擎,路由器在2層將包發(fā)給1.1.1.111,這時(shí),1.1.1.111這臺(tái)主機(jī)收到了從5.5.5.4返回的包,而他一開始ping請求包,就是發(fā)給5.5.5.4這個(gè)公網(wǎng)地址
的,所以ping通了!!!!

結(jié)論三:內(nèi)網(wǎng)pc的pat地址和服務(wù)器公網(wǎng)地址同網(wǎng)段,同時(shí)和出口地址不同網(wǎng)段,這樣沒有問題。

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

我們再分析回程的包。服務(wù)器1.1.1.1收到包后,準(zhǔn)備回應(yīng)給5.5.5.254(加端口號),發(fā)出reply包,源地址1.1.1.1,目的地址5.5.5.254,本地路由器收到后,先給路由引擎,發(fā)現(xiàn)5.5.5.254不在本地任何端口下,所以走了缺省路由,發(fā)給isp,并在nat表中生成一條記錄,將1.1.1.1轉(zhuǎn)換為5.5.5.4,isp接受到包源地址變?yōu)?.5.5.4,目的地址是5.5.5.254,通過檢查路由表,發(fā)現(xiàn)5.5.5.254這個(gè)地址的路
由下一條應(yīng)該是5.5.5.1,也就是本地路由器,所以包又被發(fā)回來了,經(jīng)過一次往返,本地收到了這個(gè)包,首先提交給nat引擎,發(fā)現(xiàn)目的地址5.5.5.254:某個(gè)端口,在nat表中對應(yīng)著內(nèi)網(wǎng)pc1.1.1.111,所以將5.5.5.254替換成1.1.1.111,源地址不變,還是5.5.5.4,然后提交給路由引擎,路由器在2層將包發(fā)給1.1.1.111,這時(shí),1.1.1.111這臺(tái)主機(jī)收到了從5.5.5.4返回的包,而他一開始ping請求包,就是發(fā)給5.5.5.4這個(gè)公網(wǎng)地址的,所以ping通了!!!!

結(jié)論四:三種地址全部不在同網(wǎng)段,沒有問題。

綜上所述,得到了4個(gè)結(jié)論:

結(jié)論一:只要出口地址和服務(wù)器映射的公網(wǎng)地址在同網(wǎng)段,就有問題。
結(jié)論二:只要出口地址和內(nèi)網(wǎng)pc的pat地址同網(wǎng)段,同樣會(huì)有問題。
結(jié)論三:內(nèi)網(wǎng)pc的pat地址和服務(wù)器公網(wǎng)地址同網(wǎng)段,同時(shí)和出口地址不同網(wǎng)段,這樣沒有問題。
結(jié)論四:三種地址全部不在同網(wǎng)段,沒有問題。


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

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

至此,已經(jīng)探討了問題的原因。此過程中我還得到了一個(gè)推論和一個(gè)待驗(yàn)證的問題。

推論:如果nat池中的公網(wǎng)地址和出口地址不同網(wǎng)段,不管在內(nèi)網(wǎng)還是公網(wǎng)ping nat池中未參與轉(zhuǎn)換的公網(wǎng)地址,會(huì)出現(xiàn)環(huán)路,包在本地和isp之間來回往返。

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

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

該文章在 2022/7/13 18:52:18 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2024 ClickSun All Rights Reserved