究竟為什么內(nèi)網(wǎng)不能用公網(wǎng)地址訪問內(nèi)網(wǎng)服務(wù)器。不是任何設(shè)備都存在此問題,拿cisco的設(shè)備來說,不同版本的ios,有的就沒有這個(gè)問題,而有的版本就有問題,netscreen的防火墻也沒有這個(gè)問題,關(guān)鍵是開發(fā)者有沒有意識(shí)到這個(gè)問題,通過修改ios,完全可以避免。對(duì)于這個(gè)問題,解決方法是有,比如內(nèi)網(wǎng)dns欺騙、pix上得alias等等,但是究竟為什么有些設(shè)備不支持呢?今天我斗膽發(fā)個(gè)貼,因?yàn)橛行┙Y(jié)論純粹靠想,也沒有設(shè)備進(jìn)行試驗(yàn),所以希望大家跟貼討論,達(dá)到拋磚引玉的目的,謝謝了先!
以下所有內(nèi)容均針對(duì)出口是以太網(wǎng)的情況,對(duì)于串口接入,不會(huì)出現(xiàn)這種問題。
本地出口地址是5.5.5.1,isp對(duì)端是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對(duì)端。
我想這個(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層上做文章。 //本文來自錯(cuò)新站長(zhǎng)站www.survivalescaperooms.com轉(zhuǎn)載請(qǐng)注明
第一節(jié)
先來看看一般情況下,這個(gè)環(huán)境的掩碼的規(guī)劃。假設(shè)isp分配一段8地址子網(wǎng)給本地,這樣isp路由器接口和本地路由器接口共占用2個(gè),網(wǎng)絡(luò)地址、廣播地址共占用2個(gè),可用的一共4個(gè),掩碼是248。對(duì)于圖示的拓?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)地址)請(qǐng)求,包源地址1.1.1.111,目的地址5.5.5.4,路由器收到這個(gè)包后,檢查路由表,發(fā)現(xiàn)5.5.5.4就位于自己的出口網(wǎng)段(假設(shè)出口為以太口),所以直接通過arp廣播請(qǐng)求5.5.5.4的mac地址,問題出現(xiàn)了,誰(shuí)會(huì)應(yīng)答這個(gè)請(qǐng)求呢?沒有人,所以,這種情況下(所有公網(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ī)劃,將出口掩碼變長(zhǎng),變?yōu)?52(isp掩碼也要相應(yīng)改變)。在這里首先聲明一個(gè)要點(diǎn),就是nat池的地址可以和出口不在同網(wǎng)段,以前有帖子也討論過,我自己一開始也迷惑,后來想明白了,只要isp路由器上有這些地址的路由就可以,下一條是本地路由器,這樣本地路由器便可以接受到這些包。
新聞熱點(diǎn)
疑難解答
圖片精選