用路由器讓VLAN之間互通(2個路由器如何實現(xiàn)互通)
在上一篇文章留的小問題中,如果兩臺電腦的IP地址在同一個網(wǎng)段,電腦會認為在同一個廣播域,所以,如果倆電腦加入相同的VLAN,必然可以互通;但如果加入了不同的VLAN,由于彼此"聽"不到對方的ARP廣播,自然也不會應(yīng)答,所以無法互通。
如果倆電腦的IP地址不在同一個網(wǎng)段,電腦會認為不在同一個廣播域,會各自找自己網(wǎng)段的網(wǎng)關(guān)。現(xiàn)實生活中一個房間可能會有多個門,但一個廣播域只能有一個網(wǎng)關(guān)。所以,電腦的IP地址不在同一個網(wǎng)段,不論是否在一個VLAN,都不能互通。
一般地,在進行IP地址規(guī)劃時,一個VLAN規(guī)劃在一個網(wǎng)段,不同VLAN規(guī)劃在不同的網(wǎng)段。
也許有同學產(chǎn)生了疑問:VLAN雖然控制了廣播域,提高了網(wǎng)絡(luò)性能,但是不同VLAN間不能互訪也不成啊,難道電腦間要通信只能在同一個VLAN同一個網(wǎng)段?
當然不是了,VLAN只是在二層進行了隔離,目的是控制廣播幀。VLAN間要互通,可以通過三層來實現(xiàn),即所謂的VLAN間路由。
提到路由,最先想到的就是路由器。不錯,用路由器的確可以實現(xiàn)VLAN間互通。
要在VLAN間互訪,那么VLAN內(nèi)的電腦必須填寫網(wǎng)關(guān)(gateway)地址,網(wǎng)關(guān)地址就是該VLAN連接的三層設(shè)備的接口地址。
圖中,PCA訪問PCC,由于PCA和路由器的端口1都在VLAN2內(nèi),所以可以通過ARP互相獲得對方的MAC地址;同理,PCC和路由器的端口3也可以得到對方的MAC地址。
PCA發(fā)出訪問PCC的標準幀,交換機端口1收到后打上tag變成802.1Q幀,VID為2,然后送到端口3。端口3拆去tag變成標準幀后發(fā)出。路由器端口1收到后拆除以太網(wǎng)封裝,查找路由表后送到端口3,端口3通過ARP獲取PCC的MAC地址后,封裝為標準以太網(wǎng)幀發(fā)出。交換機端口12收到后打上tag變成802.1Q幀,VID為4,然后送到端口9,端口9拆去tag變回標準幀發(fā)給了PCC。
看上去毫無問題,非常完美!可是,交換機上有3個VLAN,路由器就需要3個端口。如果交換機上有30個VLAN呢?
交換機上的端口數(shù)量通常很多,24口、48口甚至更多,由于交換機的所有端口僅支持以太網(wǎng),所以交換機的全名叫"以太網(wǎng)交換機"。
但路由器就不同了,路由器的主要功能不僅是實現(xiàn)三層轉(zhuǎn)發(fā),更重要的是實現(xiàn)不同鏈路層協(xié)議之間的互通,即所謂的"異種網(wǎng)絡(luò)"互通。鏈路層協(xié)議有很多,除了我們熟悉的以太網(wǎng)外,還有PPP、HDLC、幀中繼、ATM等等。所以路由器的接口一般都是由支持不同鏈路層協(xié)議的擴展板卡提供,實現(xiàn)不同鏈路層協(xié)議之間的互通。
所以,路由器實際上并沒有那么多的以太網(wǎng)端口!即使有,一個VLAN占一個端口,也顯得太浪費了。
不過,路由器的以太網(wǎng)口可以支持"子接口"!
子接口是一種邏輯接口,一個物理接口可以劃分出多個"子接口"。一條公路,中間劃條線就是雙車道,劃兩條線就是三車道,但實際上還是一條路。
路由器一個接口劃成多個子接口,每個子接口處理不同VLAN的幀,就可以節(jié)省大量的物理接口。
這種形式,叫做單臂路由。
圖中,路由器G0/0是物理接口,劃分了三個子接口G0/0.1、G0/0.2和G0/0.3,每個子接口綁定一個VID,專門負責處理攜帶此VID的802.1Q幀,同時配置一個IP地址作為該VLAN的網(wǎng)關(guān)。
交換機通過一個Trunk接口連接路由器G0/0接口。
PCA訪問PCB時,PCA發(fā)出的標準幀被交換機打上VID2,成為802.1Q幀后來到Trunk接口(Trunk接口一般默認PVID為1),Trunk接口發(fā)現(xiàn)此幀的VID與自己的PVID不同,把此802.1Q幀原樣發(fā)給路由器。路由器G0/0接口收到后,根據(jù)攜帶的VID交給子接口G0/0.1,G0/0.1一看VID,沒錯,是我的貨,拆除以太網(wǎng)封裝,送到路由器轉(zhuǎn)發(fā)進程查找路由表,路由器根據(jù)目的IP地址,把數(shù)據(jù)包送到子接口G0/0.2,G0/0.2封裝為以太網(wǎng)幀,并打上VID3變成802.1Q幀后發(fā)給交換機,交換機收到后根據(jù)VID送到連接PCB的端口,端口拆除tag變成標準幀后發(fā)給PCB。
在單臂路由中,路由器只需要一個接口就可以實現(xiàn)交換機上所有VLAN間的互通,為路由器節(jié)省了大量端口。不過我們發(fā)現(xiàn),VLAN間互通的數(shù)據(jù)會在這條Trunk鏈路上跑個來回,如果交換機VLAN較多、數(shù)據(jù)量較大,這條鏈路很容易"堵車",導致網(wǎng)絡(luò)性能下降,但更重要的是,這對路由器的性能是一個巨大挑戰(zhàn)。與其說導致網(wǎng)絡(luò)性能下降的原因是鏈路"堵車"了,倒不如說是因為路由器拆tag、查路由、加tag,疲于奔命,太累了!
有沒有更好的辦法呢?
小Q:電腦的IP地址和網(wǎng)關(guān)必須在同一個網(wǎng)段嗎?