天天看點

内外網同時通路以及拓撲圖

本文轉載自荷風的日志《内外網同時通路技術(全/終極篇)》

(注:此文已發表在國家級知名雜志《網管員世界》2011年3,4期合刊上。)

随着網際網路的興起,很多機關/企業都建立了自己的網絡(簡稱内網),同時也能夠通路網際網路(簡稱外網)了。但是由于企業/機關上司擔心安全問題,或是本身的技術問題,有好多機關/企業并不能同時通路内外網,而是頻繁的換網線或者換ip位址在切換内外網之間切換,非常的不友善。其實,不必如此麻煩!同時通路内外網并非難事。

要同時通路内外網,不得不考慮網絡的拓蔔結構。最理想的拓蔔結構如下:

内外網同時通路以及拓撲圖

說它最理想,是因為非常靈活,當增加外網時,無需改變内網結構和增加裝置,隻需直接入三層交換機,在三層交換機中加入相應的路由就可以了。同時具有強大的網絡通路控制能力,在接出的路由器中,可以根據需要對網絡通路進行控制。當然這個功能不在本文讨論範圍,這裡不作贅述。

以上圖為例,pc機的ip位址為192.168.0.11,子網路遮罩為255.255.255.0,預設網關為192.168.0.1。假設内網均以10打頭,既10.xxx。xxx。xxx,經由路由器router3,預設為通路internet 經由路由器router2。則三層交換機作如下設定:

router(config)#interface vlan1 (在沒劃分vlan的情況下,預設全在vlan1)

router(config-if)#ip address 192.168.0.1 255.255.255.0 (預設網關)

router(config-if)#no shutdown (啟動vlan)

router(config-if)#exit (退出vlan設定)

router(config)#ip routing (啟用路由功能)

router(config)#ip route 10.0.0.0 255.0.0.0 192.168.0.3 (内網路由)

router(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.2 (internet/預設路由)

經此設定後,當pc機通路内網時,三層交換機自動經由路由器router3,否則經由路由器router2。當然,路由器裡要進行相應的路由設定。

在實際當中,有好多機關/企業并沒有三層交換機,而是使用二層交換機,其拓樸結構如下圖:

内外網同時通路以及拓撲圖

因為二層交換機沒有路由功能,是以,路由功能必須由pc機實作。在每台pc機上進行如下設定:

點開始→運作,在打開裡面輸入cmd回車,進入dos視窗,運作如下指令:

route add 10.0.0.0 mask 255.0.0.0 192.168.0.3 –p

route add 0.0.0.0 0.0.0.0 192.168.0.2 –p

在網卡ip設定了預設網關192.168.0.2時,第二句可以不要。至此,實作了二層交換機下同時通路内外網。但值得一提的是,如果内外網網關不在同一個網段時,比如通路内網網段是10.112.164.0/24,網關為10.112.164.1,而通路外網網段是192.168.0.0/24,外網網關為192.168.0.1時,則需要設定雙ip。如圖:先将外網ip、子網路遮罩設定好,預設網關設為外網網關,再點進階,添加内網ip位址和子網路遮罩。

内外網同時通路以及拓撲圖

記得别忘了在dos視窗下運作上面那兩條加路由的指令:

route add 10.0.0.0 mask 255.0.0.0 10.112.164.1 –p

route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 –p

還有一種情況,可能是出于安全考慮,内外網各用一個交換機,進行實體隔離,需要上外網的拉兩顆網線。此種組網現實中确實存在,但并不多見。其拓蔔結構如圖:

内外網同時通路以及拓撲圖

此時,如想同時通路内外網,必需采用雙網卡,一塊網卡接内網網線,設定内網ip位址和子網路遮罩,預設網關不填(因為一台pc機,隻能有一個預設網關)。另一塊網卡接外網網線,設定外網ip位址和子網路遮罩,預設網關設為外網網關,需要注意的是,如果内/外網的ip位址一樣,windows會彈出一個警告框,别理它,直接選否。接下來的事情就和上面的一樣了,運作那兩條加路由指令即可。

以上是我所遇見過的三種網絡結構,使用這三種方法,都能很好的解決同時通路内外網的要求。三層交換機組網最好,二層交換機次之,雙網線最不好,是以極為少見。

==============================================================================================

如題。本來這個方法也是從網上學來的,本不值得一記。但是,在網上學的那篇文章有幾處地方講錯了,或者是沒講述明白,是以有n多人照葫蘆畫瓢失敗了!

利用雙網卡同時上内外網,必須具備一個條件,那就是内外網的網關必須不同。如果内外網的網關相同的話,無論如何都搞不上的。比如,可以一個是192.168.1.1,一個是192.168.1.2。

以下是網上學到的配置方法:

首先,配置好兩塊網卡的ip位址,留一塊網卡的網關不填。注意:必須留一塊網卡的黙認網關不填,否則,兩個黙認網關,會使系統混亂,這就是平常配置兩塊網卡不能同時使用的原因。一般而言,内網通路的位址是固定的,也比較少。應該讓内網的網關空着。當然了,哪個牛人硬要把外網的網關留白也可以,隻是接下來的路由配置就麻煩了。

其次,配置路由。在指令模式下,輸入以下指令:route add xxx.xxx.xxx.xxx mask yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz metric 2 if zzz.zzz.zzz.zzz  其中:xxx.xxx.xxx.xxx是你沒填網關的那個網的網絡位址(目标位址),可以用0表示任意位址,比如192.0.0.0就表示192開頭的所有位址。但需要注意的是,千萬别來個0.0.0.0(任意位址),如果那樣的話,你的另一個網,将不能用,因為所有的目标都走這塊網卡。切記!yyy.yyy.yyy.yyy是你沒填網關的那個網的掩碼,同樣也可以用0表示任意。zzz.zzz.zzz.zzz是你沒填網關的那張網卡的網關。這條指令的意思是增加一條路由,它的作用是,當要通路xxx.xxx.xxx.xxx時,明确告訴系統由zzz.zzz.zzz.zzz這個網關出去。如果你的内網有通路多個不同的段,你可以加多條不同這樣的指令。

以我的配置為例。我的外網是自動擷取ip位址與網關,我的内網ip位址是10.112.164.58,子網路遮罩是255.255.255.0,網關是10.112.164.3(不填),我的内網通路的是以10和135開頭的ip位址,是以,我的路由配置如下:

route add 10.0.0.0 mask 255.0.0.0 10.112.164.3 metric 2 -p

route add 135.0.0.0 mask 255.0.0.0 10.112.164.3 metric 2 -p

"-p"這個參數的意思是永久寫入路由表,這樣,就不用每次開機後運作這兩條指令了。

至此,大功告成。但是很明顯,這樣做有漏洞:如果某個外網的ip位址是10或者135開頭的話,那将通路不了,因為10和135開頭的ip位址都由内網網關出去。解決的辦法是精确配置每個内網的ip路由而不是用0來通配。但是,這樣配置顯然太費事,你得把你所有可能通路到的内網ip都得加上去,效率可想而知。這也是為什麼不把外網的網關空着來配路由的原因,除非你想控制隻能通路指定的幾個外網位址。

-----單網卡也同時上内外網        

上一篇《用route指令解決同時上内外網》的文章,适用有兩塊網卡的情況。如果隻有一塊網卡就不行了,這時,如果内網外網是混合的,即用的同一個交換機,那麼就可以用下面的辦法解決。但如果是内外分開的,即内外網各用各的交換機,則無論如何是沒辦法用一塊網卡同時上内外網的。

因為是混合組網的,内外網都是通過同一顆網線實作的,隻不過,内外網的ip位址跟預設網關不同罷了。這就為實作一塊網卡同時上内外網提供了可能。原理跟上一篇文章是一樣的,隻不過因為是内外網混合的,把兩個ip位址都加到一塊網卡上了而已。

要實作一塊網卡同時上内外網,除了具備内外網混合組網的條件外,你還必須知道内外網的ip位址和dns,因為好多外網是自動擷取ip位址和自動擷取dns的,一般使用者是不知道ip位址跟dns的。這就需要問網管了。準備就緒,開始!

同上一篇文章一樣,預設網關和dns用外網的,路由加内網的。如果預設網關和dns用内網的,路由加外網的也一樣,隻是費事而已。還是以我的網絡為例:我的外網ip為192.168.1.2/254,外網網關為192.168.1.1,外網dns為:211.139.2.17,為了友善已設為自動擷取ip位址和自動擷取dns。内網ip為10.112.164.58,内網網關為10.112.164.3。設定如圖。首先将ip位址設為192.168.1.101,子網路遮罩為:255.255.255.0,預設網關為:192.168.1.1,dns為:211.139.2.17。關鍵在于第二步:點進階,再添加一個内網ip位址:10.112.164.58,子網路遮罩為255.255.255.0。預設網關加不加内網網關是一樣的,我實驗過。ip設定完畢!

内外網同時通路以及拓撲圖

最後一步,加路由:route add 10.0.0.0 mask 255.0.0.0 10.112.164.3 -p

route add 135.0.0.0 mask 255.0.0.0 10.112.164.3 -p

原理、指令、缺陷和解決方法跟上一篇完全一樣,不再啰索。ok,搞定!

補充:經過實驗,此方法對于兩個以上的ip位址和網絡一樣适用.

還有.子網路遮罩的格式要和網絡目标位址的格式一緻,主要是0的個數,比如route add 10.110.0.0 mask 255.255.0.0 .....如果不是,寫成route add 10.110.0.0 mask 255.0.0.0 .... 會出錯,提示子網路遮罩不對!這是我在設定三個ip位址跟網絡的時候出現的.

此方法在winxp,win2003,winvista,win7中均通過,98/95以及更早的windiws版本沒試過,估計不行。另外注意,在vista和win7中,要有足夠的權限,如果目前使用者為非管理者權限,那麼,在運作cmd的時候,要右擊以管理者身份運作,否則運作上面的指令的時候會因為權限不夠而操作不成功!

繼續閱讀