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