問題的來源
- 問題:Vlan間二層通訊被隔離了般此,不同VLAN之間的終端無法直接通訊朦肘。
解決方法:使用三層路由設(shè)備將不同的VLAN打通担映;
在交換機上劃分VLAN后砍濒,VLAN間的計算機就無法直接通信了淋肾。(Vlan間廣播域是隔離的,)VLAN間的通信需要借助第三層設(shè)備爸邢,我們可以使用路由器來實現(xiàn)這個功能樊卓,如果使用路由器通常會采用單臂路由模式。
- 問題:使用路由器打通VLAN間通訊杠河,成本高碌尔,性能低
解決方法:使用三層交換機。
實踐上券敌,VLAN間的路由大多是通過三層交換機實現(xiàn)的唾戚,三層交換機可以看成是路由器加交換機,然而因為采用了特殊的技術(shù)待诅,其數(shù)據(jù)處理能力比路由器要大得多叹坦。本章將分別介紹兩種方法的具體配置。
回顧一下二層交換流程
交換機的二層轉(zhuǎn)發(fā)涉及到兩個關(guān)鍵的線程:地址學(xué)習(xí)線程和報文轉(zhuǎn)發(fā)線程卑雁。
MAC表學(xué)習(xí)流程:
- MAC的學(xué)習(xí):交換機接收網(wǎng)段上的所有數(shù)據(jù)幀募书,利用接收數(shù)據(jù)幀中的源MAC地址來建立MAC地址表轧钓;
- MAC的漂移:交換機如果發(fā)現(xiàn)一個包文的入端口和報文中源MAC地址的所在端口不同,就產(chǎn)生端口移動锐膜,將MAC地址重新學(xué)習(xí)到新的端口;
- MAC的老化: 如果交換機在很長一段時間之內(nèi)沒有收到某臺主機發(fā)出的報文弛房,在該主機對應(yīng)的MAC地址就會被刪除道盏,等下次報文來的時候會重新學(xué)習(xí)。
**二層報文轉(zhuǎn)發(fā)流程: **
- 已知單播-轉(zhuǎn)發(fā):交換機在MAC地址表中查找數(shù)據(jù)幀中的目的MAC地址文捶,如果找到荷逞,就將該數(shù)據(jù)幀發(fā)送到相應(yīng)的端口,
- 未知單播-泛洪:如果找不到粹排,就向入端口以外的其它所有端口發(fā)送种远;
- 同端口-不轉(zhuǎn)發(fā):如果交換機收到的報文中源MAC地址和目的MAC地址所在的端口相同,則丟棄該報文顽耳;
- 組播和廣播-泛洪:交換機向入端口以外的其它所有端口轉(zhuǎn)發(fā)廣播報文坠敷。
上面流程是簡單的橋交換流程,增加了VLAN以后射富,所有流量都在VLAN內(nèi)部交換膝迎。
**支持VLAN以后的交換機報文轉(zhuǎn)發(fā)線程: **:
- 交換機在MAC地址表中查找數(shù)據(jù)幀中的目的MAC地址,如果找到(同時還要確保報文的入VLAN和出VLAN是一致的)胰耗,就將該數(shù)據(jù)幀發(fā)送到相應(yīng)的端口限次,如果找不到,就向(VLAN內(nèi))所有的端口發(fā)送柴灯;
- 如果交換機收到的報文中源MAC地址和目的MAC地址所在的端口相同卖漫,則丟棄該報文;
- 交換機向(VLAN內(nèi))入端口以外的其它所有端口轉(zhuǎn)發(fā)廣播報文赠群。
簡單的VLAN間路由流程
每一個VLAN有一個端口連接到路由器羊始,所有終端以該路由器為默認(rèn)網(wǎng)關(guān)。并由該路由器完成VLAN間報文的轉(zhuǎn)發(fā)過程乎串。比如10.1.1.1要與11.1.1.1終端通訊店枣。
單臂路由工作原理
從上面我們看到,如果要通過路由器轉(zhuǎn)發(fā)三層流量叹誉,在交換機和路由器之間鸯两,每一個VLAN需要有一個鏈路連接,當(dāng)VLAN很多的時候长豁,這將耗費大量的路由器接口钧唐,而路由器接口成本是非常高的。為了節(jié)約路由器接口匠襟,一個解決方案是路由器支持VLAN子接口钝侠。
VLAN子接口
1. 所謂子接口该园,就是是通過協(xié)議和技術(shù)將一個物理接口(interface)虛擬出來的多個邏輯接口。
2. VLAN子接口帅韧,就是通過VLAN技術(shù)里初,將一個物理接口,虛擬出多個邏輯接口忽舟,
VLAN子接口上發(fā)送的報文双妨,會打上Vlan-tag,用于區(qū)分不同的VLAN鏈路叮阅。
通過配置路由器上的VLAN子接口刁品,路由器和交換機物理上只需要一個端口連接,通過報文上的VLAN-tag區(qū)分不同的邏輯鏈路浩姥。這樣節(jié)省了大量的端口資源挑随。
三層交換機
三層交換機的原理模型可以認(rèn)為是:三層交換機 = 二層交換機+三層路由器
三層交換機既有二層交換單元,內(nèi)部還有一個三層路由模塊勒叠。(原理上可以認(rèn)為三層交換機就是把一個交換機和一個路由器裝在一個盒子里兜挨。雖然原理上我們可以這樣簡單認(rèn)為,但在具體實現(xiàn)上眯分,特別是報文的轉(zhuǎn)發(fā)流程上暑劝,還是有很大差異的。所以三層交換機在轉(zhuǎn)發(fā)性能和成本上都有很大的優(yōu)勢)
在三層交換機上颗搂,可以在一個VLAN配置三層接口(cisco成為交換機虛擬接口 SVI:switch virtual interface)担猛,這個SVI接口就是上面原理模型中的那個路由模塊對應(yīng)的接口。它具備普通路由器接口的基本特性丢氢,比如:
- 該接口有自己的MAC地址傅联;
- 在該SVI接口上,我們可以進行標(biāo)準(zhǔn)的三層協(xié)議的配置疚察,包括IP地址蒸走,路由協(xié)議等等。
三層交換機的轉(zhuǎn)發(fā)流程
交換機的轉(zhuǎn)發(fā)行為主要借助于下面幾張表:
|表項|KEY|VALUE|
|--||
|二層MAC轉(zhuǎn)發(fā)表(硬件) | MAC,VLAN | PORT|
|三層主機路由表(硬件)| IP | NH_IP , NH_MAC,VLAN貌嫡,PORT|
|三層網(wǎng)段路由表(軟件)|Network比驻,Mask|NH_IP,PORT|
|ARP表(軟件)|IP|MAC岛抄,VLAN别惦,PORT|
三層主機路由表相當(dāng)于【網(wǎng)段路由表+ARP表】的組合,用于加快交換流程夫椭。三層主機路由表的生成有兩種方式:
- 按需生成:到達(dá)該目的地的第一個報文轉(zhuǎn)發(fā)時掸掸,有軟件進行三層轉(zhuǎn)發(fā)后生成。并且該目的地址一定時間內(nèi)沒有流量將被老化。這就是所謂的“一次路由扰付,多次交換”堤撵。
- 預(yù)先生成: 也有些設(shè)備只要學(xué)習(xí)到ARP條目,就自動生成主機路由羽莺,并保持主機路由與ARP條目之間的同步與一致性实昨。這種方式對主機路由硬件資源開銷會大一些,但第一個報文就能采用交換方式盐固,性能更高屠橄。
-
準(zhǔn)備工作:
三層交換機為VLAN配置三層接口IP后,會在交換芯片的MAC地址表中添加三層接口MAC+VID的表項闰挡,并且為表項的三層轉(zhuǎn)發(fā)標(biāo)志(Route標(biāo)志)置位。 - 轉(zhuǎn)發(fā)流程
- 硬件二層交換:報文進入三層交換機后礁哄,首先在交換模塊進行標(biāo)準(zhǔn)的二層交換處理:
- 根據(jù)報文的目的MAC(精確匹配查找)长酗,查找二層MAC轉(zhuǎn)發(fā)表:
如果不存在該MAC條目,則在所有端口上進行泛洪處理(廣播組播也會泛洪)桐绒。
如果存在該MAC條目夺脾,并且該條目沒有Route標(biāo)志,則進行標(biāo)準(zhǔn)交換轉(zhuǎn)發(fā)
如果該MAC條目上有Route標(biāo)記茉继,則進行硬件三層轉(zhuǎn)發(fā)咧叭。
- 根據(jù)報文的目的MAC(精確匹配查找)长酗,查找二層MAC轉(zhuǎn)發(fā)表:
- 硬件三層轉(zhuǎn)發(fā):
- 根據(jù)報文的目的IP地址(精確匹配查找),查找三層主機路由表:
如果存在烁竭,直接轉(zhuǎn)發(fā)(TTL--菲茬,目的MAC地址進行替換)
如果不存在,則進行標(biāo)準(zhǔn)的軟件三層報文轉(zhuǎn)發(fā)派撕。
- 根據(jù)報文的目的IP地址(精確匹配查找),查找三層主機路由表:
- 軟件三層轉(zhuǎn)發(fā):
- 查找目的IP的網(wǎng)段路由(最佳匹配查找)婉弹,
如果路由不存在,報文丟棄终吼。
如果存在镀赌,查找下一跳的ARP表,如果ARP不存在际跪,進行ARP學(xué)習(xí)商佛。
學(xué)習(xí)到ARP后,進行報文轉(zhuǎn)發(fā)姆打,并將轉(zhuǎn)發(fā)信息寫入硬件主機路由表良姆,
以后該目的IP的報文就可以通過硬件進行三層轉(zhuǎn)發(fā)了。(這就是所謂的一次路由幔戏,多次交換)
- 查找目的IP的網(wǎng)段路由(最佳匹配查找)婉弹,