亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網管 > 互助交流 > 正文

不能用公網地址訪問內網服務器的詳解

2020-04-18 13:00:43
字體:
來源:轉載
供稿:網友

究竟為什么內網不能用公網地址訪問內網服務器。不是任何設備都存在此問題,拿cisco的設備來說,不同版本的ios,有的就沒有這個問題,而有的版本就有問題,netscreen的防火墻也沒有這個問題,關鍵是開發者有沒有意識到這個問題,通過修改ios,完全可以避免。對于這個問題,解決方法是有,比如內網dns欺騙、pix上得alias等等,但是究竟為什么有些設備不支持呢?今天我斗膽發個貼,因為有些結論純粹靠想,也沒有設備進行試驗,所以希望大家跟貼討論,達到拋磚引玉的目的,謝謝了先!

以下所有內容均針對出口是以太網的情況,對于串口接入,不會出現這種問題。

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

我想這個拓撲應該是非常普遍的了,我認為就是因為這個非常普遍的拓撲,造成了很多人所反應的“內網不能通過公網地址訪問內網服務器”這個問題。我認為這個問題的關鍵原因就在于掩碼,就是在3層上做文章。 //本文來自武林網www.49028c.com轉載請注明

第一節

先來看看一般情況下,這個環境的掩碼的規劃。假設isp分配一段8地址子網給本地,這樣isp路由器接口和本地路由器接口共占用2個,網絡地址、廣播地址共占用2個,可用的一共4個,掩碼是248。對于圖示的拓撲,假設本地路由器出口掩碼是248(內網pc的pat地址相應的也就是掩碼為248),被映射的兩個地址掩碼也是248,這個最普遍的掩碼規劃,結果是:服務器、內網pc的 pat地址、本地出口地址全部處于同一個網段。我們分析一個包的來龍去脈,來看看到底內網pc通過公網地址可否訪問到內網服務器。

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

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

第二節

基于上面的討論,我們知道了只要出口地址和服務器映射的公網地址在同網段,就會發生 “無人應答”的必然結果,所以我們這次改變掩碼規劃,將出口掩碼變長,變為252(isp掩碼也要相應改變)。在這里首先聲明一個要點,就是nat池的地址可以和出口不在同網段,以前有帖子也討論過,我自己一開始也迷惑,后來想明白了,只要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.1加上端口號(假設端口號是8888),isp接受到的包,目的地址是5.5.5.4,源地址變成了5.5.5.1,它檢查它的路由表,發現5.5.5.4路由下一條是5.5.5.1,也就是本地路由器,所以又將此包發給本地路由器,經過了一次往返后,本地收到這個包,首先接受nat引擎的過慮,發現 5.5.5.4正在被靜態映射到內網的1.1.1.1的主機,所以改變目的地址為1.1.1.1,源地址還是5.5.5.1,這樣就交給了路由引擎,查看路由表,1.1.1.1的路由當然有了,通過2層直接發給1.1.1.1,至此,去程的包分析完畢。//本文來自武林網www.49028c.com轉載請注明

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

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

第三節

我們再變更掩碼方案,使得內網pc的pat地址和服務器映射地址同網段,但和出口不同網段。假設內網pc的pat地址為5.5.5.6(和服務器地址同網段)

我們再次分析一個包,內網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,它檢查它的路由表,發現5.5.5.4路由下一條是5.5.5.1,也就是本地路由器,所以又將此包發給本地路由器,經過了一次往返后,本地收到這個包,首先接受nat引擎的過慮,發現5.5.5.4正在被靜態映射到內網的 1.1.1.1的主機,所以改變目的地址為1.1.1.1,源地址還是5.5.5.6,這樣就交給了路由引擎,查看路由表,1.1.1.1的路由當然有了,通過2層直接發給1.1.1.1,至此,去程的包分析完畢。

我們再分析回程的包。服務器1.1.1.1收到包后,準備回應給5.5.5.6 (加端口號),發出reply包,源地址1.1.1.1,目的地址5.5.5.6,本地路由器收到后,先給路由引擎,發現5.5.5.6不在本地任何端口下,所以走了缺省路由,發給isp,并在nat表中生成一條記錄,將1.1.1.1轉換為5.5.5.4,isp接受到包源地址變為5.5.5.4,目的地址是5.5.5.6,通過檢查路由表,發現5.5.5.6這個地址的路由下一條應該是5.5.5.1,也就是本地路由器,所以包又被發回來了,經過一次往返,本地收到了這個包,首先提交給nat引擎,發現目的地址5.5.5.6在nat表中對應著內網pc1.1.1.111,所以將5.5.5.6替換成 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通了?。。?!

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

第四節

本貼的高潮部分已經達到,至此,只剩下一種情況,就是內網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,然后調頭,不走出口,直接再回到內網,以支持用公網地址訪問。 //本文來自武林網www.49028c.com轉載請注明

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品v片在线观看不卡| 久久久精品日本| 色播久久人人爽人人爽人人片视av| 国产精品久久久久久久久| 国产香蕉一区二区三区在线视频| 亚洲国产精品va在看黑人| 国产欧洲精品视频| 亚洲第一页中文字幕| 国产精品免费久久久久影院| 国产精品吴梦梦| 97精品视频在线| 欧美激情aaaa| 不卡在线观看电视剧完整版| 国产精品久久久av久久久| 亚洲黄色免费三级| 亚洲精品一区二区久| 国产日韩欧美视频| 91精品在线播放| 午夜精品久久久久久99热| 在线观看欧美视频| 国产精品网址在线| 欧美最顶级丰满的aⅴ艳星| 欧美大尺度电影在线观看| 久久久成人的性感天堂| 中文.日本.精品| 亚洲www永久成人夜色| 国产91ⅴ在线精品免费观看| 国产狼人综合免费视频| 久久久久久久97| 国产精品久久久久一区二区| 精品国产成人av| 亚洲精品资源美女情侣酒店| 精品色蜜蜜精品视频在线观看| 欧美国产精品va在线观看| 日韩av男人的天堂| 91在线高清免费观看| 亚洲欧美中文另类| 欧美肥臀大乳一区二区免费视频| 久久精品视频在线播放| 欧美性极品少妇精品网站| 91久久精品国产91性色| 欧日韩不卡在线视频| 亚洲欧美成人一区二区在线电影| 国产亚洲欧美日韩精品| 色一情一乱一区二区| 国产精品日韩欧美| 欧美精品一二区| 一区二区三区四区在线观看视频| 国产精品久久久久av免费| 538国产精品一区二区免费视频| 国产精品久久久久久久久借妻| 高清欧美电影在线| 97久久精品视频| 国产一区二区动漫| 国产成人在线一区| 久久精品国产成人| 成人性生交xxxxx网站| 日韩成人在线免费观看| 欧美一区二区大胆人体摄影专业网站| 精品久久久香蕉免费精品视频| 欧美激情视频一区二区| 在线播放日韩精品| 亚洲二区在线播放视频| 日韩成人在线视频| 国产精品露脸自拍| 成人中文字幕在线观看| 国产精品一区专区欧美日韩| 日韩小视频网址| 欧美激情videoshd| 欧美性视频网站| 亚洲免费福利视频| 欧美一区亚洲一区| 国内精品视频在线| 亚洲国产黄色片| 91av在线精品| 亚洲自拍偷拍色片视频| 精品欧美国产一区二区三区| 日本中文字幕不卡免费| 欧美黄色www| 97热在线精品视频在线观看| 亚洲精品98久久久久久中文字幕| 91精品视频在线看| 国产亚洲欧洲高清| 91成人国产在线观看| 亚洲国产精品久久久久秋霞蜜臀| 国产欧美精品va在线观看| 欧美猛交ⅹxxx乱大交视频| 国产中文字幕91| 欧美性极品xxxx做受| 97色在线观看免费视频| 亚洲欧美自拍一区| 丝袜情趣国产精品| 91久久久久久国产精品| 精品无人区乱码1区2区3区在线| 亚洲2020天天堂在线观看| 国产精品999| 亚洲网在线观看| 奇米4444一区二区三区| 精品国产福利在线| 国产精品99一区| 亚洲第一区中文99精品| 97精品国产97久久久久久免费| 2019精品视频| 成人午夜在线视频一区| 欧美精品videossex88| 亚洲精品色婷婷福利天堂| 欧美黑人性猛交| 欧美区在线播放| 国产精品第一视频| 久久精品99久久久久久久久| 色噜噜久久综合伊人一本| 欧美成人性生活| 日韩在线精品视频| 少妇高潮久久久久久潘金莲| 正在播放欧美视频| 久久久精品免费视频| 国产亚洲精品久久久久久牛牛| 日韩第一页在线| 亚洲人成电影网| 久久国产精品99国产精| 国产欧美日韩视频| 久久久国产在线视频| 欧美大片va欧美在线播放| 欧美日韩国产91| 日韩一区二区欧美| 欧美噜噜久久久xxx| 欧美大片第1页| 日韩精品极品毛片系列视频| 中文字幕av一区二区| 国产欧美久久久久久| 国产成人一区二区三区| 热久久美女精品天天吊色| 成人妇女免费播放久久久| 国产亚洲一区二区精品| 中文一区二区视频| 欧美日产国产成人免费图片| 欧美在线免费观看| 色yeye香蕉凹凸一区二区av| 成人免费网站在线观看| 欧美www在线| 欧美资源在线观看| 97在线视频一区| 亚洲va久久久噜噜噜| 中文字幕成人在线| 国产精品高潮在线| 久久精品男人天堂| 精品电影在线观看| 中文字幕一区二区精品| x99av成人免费| 亚洲国产美女精品久久久久∴| 国产精品偷伦视频免费观看国产| 欧美成人sm免费视频| 热久久99这里有精品| 久久亚洲电影天堂| 亚洲人成在线观看网站高清| 国产精品青草久久久久福利99| 亚洲男人天堂九九视频| 日韩av网站在线| 国产精品一区二区三区毛片淫片| 综合激情国产一区| 69视频在线播放| 欧美精品生活片| 欧美天天综合色影久久精品| 久久久亚洲精选|