了解三層交換機(jī)基本特點(diǎn) 實(shí)現(xiàn)技術(shù)大飛躍
了解三層交換機(jī)基本特點(diǎn) 實(shí)現(xiàn)技術(shù)大飛躍,三層交換機(jī)基本特點(diǎn)運(yùn)用不當(dāng)導(dǎo)致很多簡(jiǎn)單問(wèn)題都不會(huì)設(shè)置,接下來(lái)讓我們深入探究不能上網(wǎng)原因,以及給出的一些解答,讓你在三層交換機(jī)使用上進(jìn)行合理的設(shè)置,最終解決相關(guān)問(wèn)題。
在概述部分中,我們給出了三層交換機(jī)基本特點(diǎn)綜述,主要有下列特點(diǎn):
◆二層交換和三層互通
◆實(shí)現(xiàn)三層精確匹配查詢(xún)
◆專(zhuān)門(mén)針對(duì)局域網(wǎng),特別是以太網(wǎng)進(jìn)行了優(yōu)化
◆引入了一些在二層交換機(jī)和三層路由器上都不存在的特性
◆實(shí)現(xiàn)了初步的BAS功能
一般來(lái)說(shuō),只要能做到第一點(diǎn),就可以稱(chēng)為三層交換機(jī)了,但目前大多數(shù)流行的三層交換機(jī)都不局限于第一點(diǎn),而是實(shí)現(xiàn)了上述的大部分功能。因此,為了更好的理解三層交換機(jī),接下來(lái)我們對(duì)上述特點(diǎn)進(jìn)行詳細(xì)講述。
二層交換和三層互通
三層交換機(jī)首先是一個(gè)交換機(jī),即完成二層交換功能。在以太網(wǎng)上,跟普通的二層交換機(jī)一樣,三層交換機(jī)也維護(hù)一張用于二層交換的地址表(通常稱(chēng)為CAM 表),該表是MAC地址與出接口的對(duì)應(yīng)關(guān)系。
這樣每當(dāng)接收到一個(gè)以太網(wǎng)數(shù)據(jù)幀,三層交換機(jī)判斷如果該數(shù)據(jù)幀不是發(fā)送給自己的(這個(gè)概念很重要,至于三層交換機(jī)基本特點(diǎn)怎么判斷,在下面的講述中會(huì)詳細(xì)說(shuō)明),則根據(jù)數(shù)據(jù)幀的目的MAC地址查詢(xún)CAM表,如果能命中(所謂命中,就是在CAM表中找到與該MAC地址對(duì)應(yīng)的轉(zhuǎn)發(fā)項(xiàng)),則根據(jù)查詢(xún)的結(jié)果,通常是一個(gè)出接口列表,來(lái)進(jìn)行轉(zhuǎn)發(fā)。如果不能命中,則向所有端口廣播該數(shù)據(jù)幀。
交換機(jī)的這張CAM表可以通過(guò)多種方式獲得,比如靜態(tài)配置,動(dòng)態(tài)學(xué)習(xí),針對(duì)多播還可以通過(guò)各種多播協(xié)議,比如IGMP窺探,GMRP協(xié)議等方式獲得(注意,多播轉(zhuǎn)發(fā)表不能通過(guò)學(xué)習(xí)獲得,而且多播轉(zhuǎn)發(fā)項(xiàng)跟普通轉(zhuǎn)發(fā)項(xiàng)不同的是,跟其對(duì)應(yīng)的出口可能不止一個(gè),而是一個(gè)出口集合,如果想詳細(xì)了解多播的一些基礎(chǔ)概念,請(qǐng)參考前面的專(zhuān)題資料)。但對(duì)于單播,最重要的一種建立方式是學(xué)習(xí)。
當(dāng)交換機(jī)接收到一個(gè)數(shù)據(jù)幀,提取出該數(shù)據(jù)幀的目的MAC地址,并依此為根據(jù)進(jìn)行CAM表查詢(xún),如果能查找到結(jié)果,則根據(jù)結(jié)果進(jìn)行數(shù)據(jù)幀的轉(zhuǎn)發(fā),如果不能命中,則(向除接收端口外的)所有端口進(jìn)行復(fù)制。
在進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)的同時(shí),交換機(jī)還進(jìn)行一個(gè)學(xué)習(xí)的過(guò)程,交換機(jī)把數(shù)據(jù)幀的源MAC地址提取出來(lái),查詢(xún)CAM 表,看CAM表中是否有針對(duì)該MAC地址的轉(zhuǎn)發(fā)項(xiàng),如果沒(méi)有,則把該MAC地址和接收到該MAC地址的端口綁定起來(lái),插入CAM表項(xiàng),這樣當(dāng)接收到一個(gè)發(fā)送到該MAC地址的數(shù)據(jù)幀時(shí),就不需要向所有端口廣播,而僅僅向這一個(gè)端口發(fā)送即可。
需要注意的是,數(shù)據(jù)幀的轉(zhuǎn)發(fā)是依據(jù)目的MAC地址查詢(xún)CAM表,而 CAM表的學(xué)習(xí)則是以源MAC地址為依據(jù)。交換機(jī)動(dòng)態(tài)學(xué)習(xí)的CAM表項(xiàng)并不是一成不變的,而是啟動(dòng)一個(gè)定時(shí)器,當(dāng)該定時(shí)器遞減到零時(shí),該CAM表項(xiàng)被刪除,每使用一次該CAM表項(xiàng)進(jìn)行轉(zhuǎn)發(fā),則恢復(fù)定時(shí)器初始值。
上述情況是沒(méi)有VLAN的工作過(guò)程,現(xiàn)在的交換機(jī)一般都實(shí)現(xiàn)了VLAN(即虛擬局域網(wǎng),詳細(xì)內(nèi)容請(qǐng)參考以太網(wǎng)的有關(guān)教程),這樣在交換機(jī)進(jìn)行轉(zhuǎn)發(fā)的CAM 表就進(jìn)行了變化,由原來(lái)的兩項(xiàng)對(duì)應(yīng)關(guān)系(MAC地址跟接口)變成了三項(xiàng)對(duì)應(yīng)關(guān)系(MAC地址,VLAN ID,出口),這樣當(dāng)接收到一個(gè)數(shù)據(jù)幀的時(shí)候,交換機(jī)根據(jù)數(shù)據(jù)幀的目的MAC地址和VLAN ID兩項(xiàng)來(lái)查詢(xún)CAM表,找到接口后把該數(shù)據(jù)幀轉(zhuǎn)發(fā)出去。
但如果交換機(jī)根據(jù)MAC地址和VLAN ID查詢(xún)CAM表失敗,即沒(méi)有跟該MAC和VLAN ID的對(duì)應(yīng)關(guān)系,則交換機(jī)把該數(shù)據(jù)幀向該VLAN包含的(除接收端口以外的)所有端口上復(fù)制。如果只根據(jù)CAM表來(lái)確定一個(gè)VLAN包含哪些端口,則必須遍歷整個(gè)CAM表,這樣如果CAM表的規(guī)模非常大(一般情況下是4K以上),則效率特別低。
所以一般的交換機(jī)上在實(shí)現(xiàn)VLAN時(shí),還創(chuàng)建另外一張表,即 VLAN配置表,該表包含了VLAN ID和所有端口的對(duì)應(yīng)關(guān)系,即只要根據(jù)VLAN ID查詢(xún)?cè)摫恚涂梢哉业皆揤LAN包含的所有端口,這樣在進(jìn)行VLAN內(nèi)廣播的時(shí)候,就非常容易。另外一個(gè)問(wèn)題出現(xiàn)了,就是數(shù)據(jù)幀的VLAN ID是怎樣獲得的。交換機(jī)一般根據(jù)下列原則來(lái)給一個(gè)數(shù)據(jù)幀附加上VLAN ID:
◆如果接收到數(shù)據(jù)幀的端口是一個(gè)非TAG端口,且數(shù)據(jù)幀是一個(gè)普通數(shù)據(jù)幀,則附加上該端口的默認(rèn)VLAN ID;根據(jù)農(nóng)基文的理解:當(dāng)一個(gè)非TAG端口收到了一個(gè)數(shù)據(jù)幀,且含有VLAN ID時(shí),做判斷,如果VLAN ID=端口PVID,則可以接收;否則,丟棄。
◆如果接收到數(shù)據(jù)幀的端口是一個(gè)TAG端口,而數(shù)據(jù)幀是一個(gè)普通數(shù)據(jù)幀,則附加上該端口的默認(rèn)VLAN ID;
◆如果接收到數(shù)據(jù)幀的端口是一個(gè)TAG端口,數(shù)據(jù)幀自己攜帶了VLAN ID(通過(guò)802.1Q協(xié)議),則該數(shù)據(jù)幀的VLAN ID就是攜帶的VLAN ID.需要注意的是,實(shí)現(xiàn)VLAN的交換機(jī)在查詢(xún)CAM表進(jìn)行轉(zhuǎn)發(fā)之前,首先給該數(shù)據(jù)幀附加上VLAN ID.
以上功能都是二層功能,作為一臺(tái)三層交換機(jī),上述功能是必須實(shí)現(xiàn)的,但三層交換機(jī)基本特點(diǎn)還是VLAN間的互通。在三層交換機(jī)上,VLAN之間的互通是通過(guò)實(shí)現(xiàn)一個(gè)虛擬VLAN接口來(lái)實(shí)現(xiàn)的,即針對(duì)每個(gè)VLAN,交換機(jī)內(nèi)部維護(hù)了一個(gè)與該VLAN對(duì)應(yīng)的接口,該接口對(duì)外是不可見(jiàn)的,是一個(gè)虛擬的接口,但該接口有所有物理接口所具有的特性,比如有MAC地址,可配置最大傳輸單元和傳輸?shù)囊蕴W(wǎng)幀類(lèi)型等。
在上述的說(shuō)明中,我們提到了當(dāng)交換機(jī)接收到一個(gè)數(shù)據(jù)幀時(shí),判斷是不是發(fā)給自己的,判斷的依據(jù)便是查看該MAC地址是不是針對(duì)接收數(shù)據(jù)幀所在VLAN的接口MAC地址,如果是,則進(jìn)行三層處理,若不是,則進(jìn)行二層處理,按照上述流程進(jìn)行轉(zhuǎn)發(fā)。
既然實(shí)現(xiàn)了三層轉(zhuǎn)發(fā),交換機(jī)必須維護(hù)一個(gè)三層轉(zhuǎn)發(fā)表,該表可以是基于最長(zhǎng)匹配查詢(xún)的FIB表,也可以是基于目的網(wǎng)絡(luò)層地址精確匹配的三層轉(zhuǎn)發(fā)表,這跟實(shí)現(xiàn)的廠家設(shè)備有關(guān)。這樣當(dāng)交換機(jī)接收到一個(gè)數(shù)據(jù)幀,該數(shù)據(jù)幀的目的MAC地址跟該數(shù)據(jù)幀所在VLAN對(duì)應(yīng)的VLAN接口的MAC地址相同,則進(jìn)行三層轉(zhuǎn)發(fā)。
轉(zhuǎn)發(fā)的過(guò)程是查詢(xún)?nèi)龑愚D(zhuǎn)發(fā)表,查找的結(jié)果是一個(gè)(或多個(gè),當(dāng)數(shù)據(jù)幀是多播的時(shí)候)出口和相應(yīng)的二層封裝數(shù)據(jù),交換機(jī)于是把該數(shù)據(jù)幀所攜帶的三層數(shù)據(jù)幀(比如,是IP或IPX數(shù)據(jù)報(bào))進(jìn)行修改,比如修改校驗(yàn)和,在IP協(xié)議中還進(jìn)行TTL字段遞減,然后重新計(jì)算CHECKSUM,完成這些后,就把該三層數(shù)據(jù)包進(jìn)行二層封裝(根據(jù)三層轉(zhuǎn)發(fā)表查找的結(jié)果),從相應(yīng)的接口發(fā)送出去。
這個(gè)三層轉(zhuǎn)發(fā)表的形成跟二層轉(zhuǎn)發(fā)表(CAM表)的形成有很大的不同,它是通過(guò)查詢(xún)路由表并經(jīng)過(guò)其它協(xié)議(比如ARP協(xié)議)形成的。在后面介紹典型產(chǎn)品實(shí)例的時(shí)候,我們以例子來(lái)講述三層轉(zhuǎn)發(fā)表的形成。
◆三層交換機(jī)有二層交換機(jī)所有功能,比如基于MAC地址的過(guò)濾(也就是基于MAC地址的單播轉(zhuǎn)發(fā)),生成樹(shù)協(xié)議等;
◆三層交換機(jī)基本特點(diǎn)通過(guò)為每個(gè)VLAN分配一個(gè)VLAN接口完成VLAN之間的互通,VLAN接口有自己的MAC地址和IP地址,凡目的MAC地址是VLAN接口的數(shù)據(jù)幀,交換機(jī)都進(jìn)行三層轉(zhuǎn)發(fā)或自己接收—取決于目的IP地址是否是交換機(jī)的接口地址。