日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

三層以太網(wǎng)交換機(jī)基本原理及轉(zhuǎn)發(fā)流程(轉(zhuǎn))

 小竹子lbamboo 2014-01-29

1. 二層轉(zhuǎn)發(fā)流程
1.1. MAC地址介紹
MAC 地址是48 bit 二進(jìn)制的地址,如:00-e0-fc-00-00-06。
可以分為單播地址、多播地址和廣播地址。
單播地址:第一字節(jié)最低位為0,如:00-e0-fc-00-00-06
多播地址:第一字節(jié)最低位為1,如:01-e0-fc-00-00-06
廣播地址:48 位全1,如:ff-ff-ff-ff-ff-ff
注意:
1)普通設(shè)備網(wǎng)卡或者路由器設(shè)備路由接口的MAC 地址一定是單播的MAC 地址才能保證其與其它設(shè)備的互通。
2) MAC 地址是一個(gè)以太網(wǎng)絡(luò)設(shè)備在網(wǎng)絡(luò)上運(yùn)行的基礎(chǔ),也是鏈路層功能實(shí)現(xiàn)的立足點(diǎn)。
1.2. 二層轉(zhuǎn)發(fā)介紹
交換機(jī)二層的轉(zhuǎn)發(fā)特性,符合802.1D 網(wǎng)橋協(xié)議標(biāo)準(zhǔn)。
交換機(jī)的二層轉(zhuǎn)發(fā)涉及到兩個(gè)關(guān)鍵的線程:地址學(xué)習(xí)線程和報(bào)文轉(zhuǎn)發(fā)線程。
學(xué)習(xí)線程如下:
1)交換機(jī)接收網(wǎng)段上的所有數(shù)據(jù)幀,利用接收數(shù)據(jù)幀中的源MAC 地址來建立MAC 地址表;
2)端口移動(dòng)機(jī)制:交換機(jī)如果發(fā)現(xiàn)一個(gè)包文的入端口和報(bào)文中源MAC地址的所在端口不同,就產(chǎn)生端口移動(dòng),將MAC 地址重新學(xué)習(xí)到新的端口;
3)地址老化機(jī)制: 如果交換機(jī)在很長(zhǎng)一段時(shí)間之內(nèi)沒有收到某臺(tái)主機(jī)發(fā)出的報(bào)文,在該主機(jī)對(duì)應(yīng)的MAC 地址就會(huì)被刪除,等下次報(bào)文來的時(shí)候會(huì)重新學(xué)習(xí)。
注意: 老化也是根據(jù)源MAC 地址進(jìn)行老化。
報(bào)文轉(zhuǎn)發(fā)線程:
1)交換機(jī)在MAC 地址表中查找數(shù)據(jù)幀中的目的MAC 地址,如果找到,就將該數(shù)據(jù)幀發(fā)送到相應(yīng)的端口,如果找不到,就向所有的端口發(fā)送;
2)如果交換機(jī)收到的報(bào)文中源MAC 地址和目的MAC 地址所在的端口相同,則丟棄該報(bào)文;
3)交換機(jī)向入端口以外的其它所有端口轉(zhuǎn)發(fā)廣播報(bào)文。
1.3. VLAN二層轉(zhuǎn)發(fā)介紹
報(bào)文轉(zhuǎn)發(fā)線程:
引入了VLAN 以后對(duì)二層交換機(jī)的報(bào)文轉(zhuǎn)發(fā)線程產(chǎn)生了如下的影響:
1)交換機(jī)在MAC 地址表中查找數(shù)據(jù)幀中的目的MAC 地址,如果找到(同時(shí)還要確保報(bào)文的入VLAN 和出VLAN 是一致的),就將該數(shù)據(jù)幀發(fā)送到相應(yīng)的端口,如果找不到,就向(VLAN 內(nèi))所有的端口發(fā)送;
2)如果交換機(jī)收到的報(bào)文中源MAC 地址和目的MAC 地址所在的端口相同,則丟棄該報(bào)文;
3)交換機(jī)向(VLAN 內(nèi))入端口以外的其它所有端口轉(zhuǎn)發(fā)廣播報(bào)文。
以太網(wǎng)交換機(jī)上通過引入VLAN,帶來了如下的好處:
1)限制了局部的網(wǎng)絡(luò)流量, 在一定程度上可以提高整個(gè)網(wǎng)絡(luò)的處理能力。
2)虛擬的工作組,通過靈活的VLAN 設(shè)置,把不同的用戶劃分到工作組內(nèi);
3)安全性,一個(gè)VLAN 內(nèi)的用戶和其它VLAN 內(nèi)的用戶不能互訪,提高了安全性。
另外,還有常見的兩個(gè)概念VLAN 的終結(jié)和透?jìng)鳎?從字面意思上就可以很好的了解這兩個(gè)概念。所謂VLAN 的透?jìng)骶褪悄硞€(gè)VLAN 不僅在一臺(tái)交換機(jī)上有效,它還要通過某種方法延伸到別的以太網(wǎng)交換機(jī)上,在別的設(shè)備上照樣有效;終結(jié)的意思及相對(duì),某個(gè)VLAN 的有效域不能再延伸到別的設(shè)備,或者不能通過某條鏈路延伸到別的設(shè)備。
VLAN 透?jìng)骺梢允褂?02.1Q 技術(shù),VLAN 終結(jié)可以使用PVLAN 技術(shù)。
IEEE802.1Q 協(xié)議是VLAN 的技術(shù)標(biāo)準(zhǔn),主要是修改了標(biāo)準(zhǔn)的幀頭,添加了一個(gè)tag 字段,其中包含了VLAN ID 等VLAN 信息,具體實(shí)現(xiàn)這里不談,如果有興趣可以看相關(guān)的標(biāo)準(zhǔn)和資料。
注意:在Trunk 端口轉(zhuǎn)發(fā)報(bào)文的時(shí)候,如果報(bào)文的VLAN Tag 等于端口上配置的默認(rèn)VLAN ID,則該報(bào)文的Tag 應(yīng)該去掉,對(duì)端收到這個(gè)不帶Tag 信息的報(bào)文后, 從端口的PVID 獲得報(bào)文的所屬VLAN 信息,因此配置的時(shí)候必須保證連接兩臺(tái)交換機(jī)之間的一條Trunk 鏈路兩端的PVID 設(shè)置相同。
為什么要去Tag 呢?
這樣做是為了保證一般的用戶插到Trunk 上以后,仍舊可以正常通信,因?yàn)槠胀ㄓ脩魺o法識(shí)別帶有802.1Q Vlan 信息的報(bào)文。
使用802.1Q 技術(shù)可以很好的實(shí)現(xiàn)VLAN 的透?jìng)?,可是有的時(shí)候需要把VLAN 終結(jié)掉,也就是說這個(gè)VLAN 邊界在哪里終止,PVLAN 技術(shù)可以很好的實(shí)現(xiàn)這個(gè)功能, 同時(shí)達(dá)到節(jié)省VLAN 的目的。cisco 的PVLAN 意思是private vlan,而我們的PVLAN 意思是primary vlan。
這里的VLAN 有兩類:Primary vlan 和secondary vlan(子VLAN)。
實(shí)現(xiàn)了接入用戶二層報(bào)文的隔離,同時(shí)上層交換機(jī)下發(fā)的報(bào)文可以被每一個(gè)用戶接收到,簡(jiǎn)化了配置,節(jié)省了VLAN 資源。具體實(shí)現(xiàn)這里不談,如果有興趣可以相關(guān)資料。

下面談?wù)勅龑咏粨Q流程。
用VLAN 分段,隔離了VLAN 間的通信,用支持VLAN 的路由器(三層設(shè)備)可以建立VLAN 間通信。但使用路由器來互聯(lián)企業(yè)園區(qū)網(wǎng)中不同的VLAN 顯然不合時(shí)代的潮流。因?yàn)槲覀兛梢允褂萌龑咏粨Q來實(shí)現(xiàn)。
差別1(性能):傳統(tǒng)的路由器基于微處理器轉(zhuǎn)發(fā)報(bào)文,靠軟件處理,而三層交換機(jī)通過ASIC 硬件來進(jìn)行報(bào)文轉(zhuǎn)發(fā),性能差別很大;
差別2(接口類型):三層交換機(jī)的接口基本都是以太網(wǎng)接口,沒有路由器接口類型豐富;差別3:三層交換機(jī),還可以工作在二層模式,對(duì)某些不需路由的包文直接交換,而路由器不具有二層的功能。
首先讓我們看一下設(shè)備互通的過程:

如圖所示:交換機(jī)上劃分了兩個(gè)VLAN,在VLAN1,VLAN 2 上配置了路由接口用來實(shí)現(xiàn)vlan1 和 vlan 2 之間的互通。
A 和B 之間的互通(以A 向B 發(fā)起ping 請(qǐng)求為例):
1) A 檢查報(bào)文的目的IP 地址,發(fā)現(xiàn)和自己在同一個(gè)網(wǎng)段;
2) A---->B ARP 請(qǐng)求報(bào)文,該報(bào)文在VLAN1 內(nèi)廣播;
3) B---->A ARP 回應(yīng)報(bào)文;
4) A---->B icmp request;
5) B---->A icmp reply;
A 和C 之間的互通(以A 向C 發(fā)起ping 請(qǐng)求為例):
1) A 檢查報(bào)文的目的IP 地址,發(fā)現(xiàn)和自己不在同一個(gè)網(wǎng)段;
2) A---->switch(int vlan 1) ARP 請(qǐng)求報(bào)文,該報(bào)文在VLAN1 內(nèi)廣播;
3) 網(wǎng)關(guān)---->A ARP 回應(yīng)報(bào)文;
4) A---->switch icmp request(目的MAC 是 int vlan 1 的MAC,源MAC 是A 的MAC,目的IP 是C,源IP 是A);
5) switch 收到報(bào)文后判斷出是三層的報(bào)文。檢查報(bào)文的目的IP 地址,發(fā)現(xiàn)是在自己的直連網(wǎng)段;
6) switch(int vlan 2)---->C ARP 請(qǐng)求報(bào)文,該報(bào)文在VLAN2 內(nèi)廣播;
7) C--->switch(int vlan 2) ARP 回應(yīng)報(bào)文;
8) switch(int vlan 2)---->C icmp request (目的MAC 是 C 的MAC,源MAC 是 int vlan 2 的MAC,目的IP 是C,源IP 是A)同步驟4)相比報(bào)文的MAC 頭進(jìn)行了重新的封裝, 而IP 層以上的字段基本上不變;
9) C---->A icmp reply,這以后的處理同前面icmp request 的過程基本相同。
以上的各步處理中,如果ARP 表中已經(jīng)有了相應(yīng)的表項(xiàng),則不會(huì)給對(duì)方發(fā)ARP 請(qǐng)求報(bào)文。
怎么樣來區(qū)分二和三層的數(shù)據(jù)流?
3526 產(chǎn)品是三層以太網(wǎng)交換機(jī),在其處理流程中既包括了二層的處理功能,又包括了三層的處理功能。
區(qū)別二三層轉(zhuǎn)發(fā)的基本模型:
vlan 1 vlan 2
A C
1.1.1.1
255.255.0.0
1.1.1.2
255.255.0.0
2.2.2.2
255.255.0.0
2.2.2.1
255.255.0.0
1.1.1.3
255.255.0.0
B
如圖所示:
三層交換機(jī)劃分了2 個(gè)VLAN, A 和B 之間的通信是在一個(gè)VLAN 內(nèi)完成,對(duì)與交換機(jī)而言是二層數(shù)據(jù)流,A 和C 之間的通信需要跨越VLAN,是三層的數(shù)據(jù)流。
上面提到的是宏觀的方法,具體到微觀的角度,一個(gè)報(bào)文從端口進(jìn)入后,Swtich 設(shè)備是怎么來區(qū)分二層包文,還是三層報(bào)文的呢?
從A 到B 的報(bào)文由于在同一個(gè)VLAN 內(nèi)部, 報(bào)文的目的MAC 地址將是主機(jī)B 的MAC 地址,而從A 到C 的報(bào)文,要跨越VLAN,報(bào)文的目的MAC 地址是設(shè)備虛接口VLAN1 上的MAC 地址。
因此交換機(jī)區(qū)分二三層報(bào)文的標(biāo)準(zhǔn)就是看報(bào)文的目的MAC地址是否等于交換機(jī)虛接口上的MAC 地址。
以華為S3526 交換機(jī)為例,三層交換機(jī)整個(gè)處理流程中分成了三個(gè)大的部分:
1)平臺(tái)軟件協(xié)議棧部分
這部分中關(guān)鍵功能有:運(yùn)行路由協(xié)議,維護(hù)路由信息表;
IP 協(xié)議棧功能,在整個(gè)系統(tǒng)的處理流程中,這部分擔(dān)負(fù)著重要的功能,當(dāng)硬件不能完成報(bào)文轉(zhuǎn)發(fā)的時(shí)候,這部分可以代替硬件來完成報(bào)文的三層轉(zhuǎn)發(fā)。另外對(duì)交換機(jī)進(jìn)行telnet, ping, ftp,snmp 的數(shù)據(jù)流都是在這部分來處理。
舉例:
show ip route:
Routing Tables:
Destination/Mask Proto Pre Metric Nexthop Interface
0.0.0.0/0 Static 60 0 10.110.255.9 VLAN-Interface2
10.110.48.0/21 Direct 0 0 10.110.48.1 VLAN-Interface1
10.110.48.1/32 Direct 0 0 127.0.0.1 InLoopBack0
10.110.255.8/30 Direct 0 0 10.110.255.10 VLAN-Interface2
10.110.255.10/32 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0


維護(hù)ARP 表
show arp:
IpAddress Mac_Address VLAN ID Port Name Type
10.110.255.9 00e0.fc00.5518 2 GigabitEthernet2/1 Dynamic
10.110.51.75 0010.b555.f039 1 Ethernet0/9 Dynamic
10.110.54.30 0800.20aa.f41d 1 Ethernet0/10 Dynamic
10.110.51.137 0010.a4aa.fce6 1 Ethernet0/12 Dynamic
10.110.50.90 0010.b555.e04f 1 Ethernet0/8 Dynamic
2)硬件處理流程
主要的表項(xiàng)是:二層MAC 地址表,和三層的ip fdb 表,這兩個(gè)表中用于保存轉(zhuǎn)發(fā)信息,在轉(zhuǎn)發(fā)信息比較全的情況下,報(bào)文的轉(zhuǎn)發(fā)和處理全部由硬件來完成處理,不需要軟件的干預(yù)。 這兩個(gè)表的功能是獨(dú)立的,沒有相互的關(guān)系,因?yàn)橐粋€(gè)報(bào)文只要一進(jìn)入交換機(jī),硬件就會(huì)區(qū)分出這個(gè)包是二層還是三層。非此即彼。
例如:show mac all:
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
0000.21cf.73f4 1 Learned Ethernet0/19 266
0002.557c.5a79 1 Learned Ethernet0/12 225
0004.7673.0b38 1 Learned Ethernet0/9 262
0005.5d04.9648 1 Learned Ethernet0/16 232
0005.5df5.9f64 1 Learned Ethernet0/16 300
MAC 地址表是精確匹配的IVL 方式, 其中關(guān)鍵的參數(shù)是:Vlan ID, Port
index。
例如:show ipfdb all:
0: System 1: Learned 2: UsrCfg Age 3: UsrCfg noAge Other: Error
Ip Address RtIf Vtag VTValid Port Mac Status
10.11.83.77 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 1
10.11.198.28 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 1
10.63.32.2 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 1
10.72.255.100 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2
10.75.35.103 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2
10.75.35.106 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2
路由接口索引(RtIf):該索引用來確定該轉(zhuǎn)發(fā)表項(xiàng)位于哪個(gè)路由接口下面,對(duì)3526 產(chǎn)品來講,支持的路由接口數(shù)目是32;
Vlan tag: 該值用來表明所處的VLAN,該VLAN 和路由接口是對(duì)應(yīng)的;
Vlan tag 有效位(VTValid):用來標(biāo)識(shí)轉(zhuǎn)發(fā)出去的報(bào)文中是否需要插入Vlan tag 標(biāo)記。
端口索引(Port):用來說明該轉(zhuǎn)發(fā)表項(xiàng)的出端口;
下一跳MAC:三層設(shè)備每完成一跳的轉(zhuǎn)發(fā),會(huì)重新封裝報(bào)文中的MAC頭,硬件ASIC 芯片一般依據(jù)這個(gè)域里面的數(shù)值來封裝報(bào)文頭。
兩個(gè)重要的概念:
解析,未解析,每次收到報(bào)文,ASIC 都會(huì)從其中提取出源和目的地址在MAC Table 或者 IP Fdb Table 中進(jìn)行查找,如果地址在轉(zhuǎn)發(fā)表中可以找到,則認(rèn)為該地址是解析的,如果找不到,則認(rèn)為該地址是未解析的。根據(jù)這個(gè)地址是源,還是目的,還可以有源解析,目的未解析等等的組合。對(duì)于二層未解析,硬件本身可以將該報(bào)文在VLAN 內(nèi)廣播,但是對(duì)于三層報(bào)文地址的未解析報(bào)文硬件本身則不對(duì)該報(bào)文進(jìn)行任何的處理,而產(chǎn)生CPU 中斷,靠軟件來處理。
硬件部分的處理可以用這句話來描述:
收到報(bào)文后,判斷該報(bào)文是二或是三層報(bào)文,然后判斷其中的源,目的地址是否已經(jīng)解析,如果已經(jīng)解析,則硬件完成該報(bào)文的轉(zhuǎn)發(fā),如果是未解析的情況,則產(chǎn)生CPU 中斷,靠軟件來學(xué)習(xí)該未解析的地址。
3)驅(qū)動(dòng)代碼部分
其中關(guān)鍵的核心有:
地址解析任務(wù):在該任務(wù)中對(duì)已經(jīng)報(bào)上來的未解析的地址進(jìn)行學(xué)習(xí),以便硬件完成后續(xù)的報(bào)文的轉(zhuǎn)發(fā)而不需軟件干預(yù)。
地址管理任務(wù):為了便于軟件管理和維護(hù),軟件部分保存了一份同硬件中轉(zhuǎn)發(fā)表相同的地址表copy。

fib(forwarding information base)表: 這個(gè)表的信息來源于ip route table 中的路由信息,之所以把它放在了driver 部分, 是為了地址解析任務(wù)在學(xué)IP 地址時(shí)查找的方便。
舉例:
show fib:
Destination/Mask Nexthop Flag Interface
0.0.0.0/0 10.110.255.9 I VLAN-Interface2
10.110.48.0/21 10.110.48.1 D VLAN-Interface1
10.110.48.1/32 127.0.0.1 D InLoopBack0
10.110.255.8/30 10.110.255.10 D VLAN-Interface2
10.110.255.10/32 127.0.0.1 D InLoopBack0
127.0.0.0/8 127.0.0.1 D InLoopBack0
三層轉(zhuǎn)發(fā)主要涉及到兩個(gè)關(guān)鍵的線程:
地址學(xué)習(xí)線程和報(bào)文轉(zhuǎn)發(fā)線程,這個(gè)和二層的線程是類似的;
1)報(bào)文轉(zhuǎn)發(fā)線程主要根據(jù)地址學(xué)習(xí)線程生成的轉(zhuǎn)發(fā)表(ipfdb table)信息來對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā),如果里面的信息足夠多,這個(gè)轉(zhuǎn)發(fā)的過程全部由硬件來完成,如果信息不夠,則會(huì)要求地址學(xué)習(xí)線程來進(jìn)行學(xué)習(xí),同時(shí)該報(bào)文硬件不能轉(zhuǎn)發(fā),會(huì)交給軟件協(xié)議棧來進(jìn)行轉(zhuǎn)發(fā)。
2)地址學(xué)習(xí)線程主要用來生成硬件轉(zhuǎn)發(fā)表(ipfdb table)其實(shí)ipfdb table 和二層的MAC 地址表也是類似的,只不過里面的具體表項(xiàng)所代表的含義和所起的作用不同罷了。
有一個(gè)問題:在路由器等軟件轉(zhuǎn)發(fā)引擎中,每收一個(gè)報(bào)文都會(huì)去查路由表查下一跳,然后再查ARP 表找下一跳的MAC,可是在三層交換機(jī)(如S3526)中,報(bào)文轉(zhuǎn)發(fā)的時(shí)候不需要去查路由表和ARP 表,這樣的話,這兩個(gè)表是不是就沒有什么作用了?
回答當(dāng)然是否定的,在S3526 的三層轉(zhuǎn)發(fā)流程中,過程一般都是這樣的,第一個(gè)報(bào)文硬件無法轉(zhuǎn)發(fā),要進(jìn)行IP 地址的學(xué)習(xí),同時(shí)為了保證不丟包,該報(bào)文也由軟件來進(jìn)行轉(zhuǎn)發(fā),在學(xué)習(xí)完成以后,第二,第三個(gè)報(bào)文以后就一直是由硬件來完成轉(zhuǎn)發(fā)了,這個(gè)過程也可以套用“一次路由,多次交換”來形象的進(jìn)行總結(jié),在一次路由中,要利用路由表和ARP 表來學(xué)習(xí)IP 地址,和轉(zhuǎn)發(fā)第一個(gè)報(bào)文,在以后的多次交換過程中,則只要有ipfdb table 就可以了。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多