CAM表含義及各層交換機介紹

2021-07-10 12:18:58 字數 4630 閱讀 4150

**:

所謂cam表是用於二層交換的位址表,通常稱為cam表,該表是mac位址與出介面的對應關係,對於二層交換機和三層交換機都會維護這張表。

在概述部分中,我們給出了三層交換機的基本特點綜述,主要有下列特點:

1. 二層交換和三層互通

2. 實現三層精確匹配查詢

3. 專門針對區域網,特別是乙太網進行了優化

4. 引入了一些在二層交換機和三層路由器上都不存在的特性

5. 實現了初步的bas功能

一般來說,只要能做到第一點,就可以稱為三層交換機了,但目前大多數流行的三層交換機都不侷限於第一點,而是實現了上述的大部分功能。因此,為了更好的理解三層交換機,接下來我們對上述特點進行詳細講述。

三層交換機首先是乙個交換機,即完成二層交換功能。在乙太網上,跟普通的二層交換機一樣,三層交換機也維護一張用於二層交換的位址表(通常稱為cam表),該表是mac位址與出介面的對應關係。這樣每當接收到乙個乙太網資料幀,三層交換機判斷如果該資料幀不是傳送給自己的(這個概念很重要,至於三層交換機怎麼判斷,在下面的講述中會詳細說明),則根據資料幀的目的mac位址查詢cam表,如果能命中(所謂命中,就是在cam表中找到與該mac位址對應的**項),則根據查詢的結果,通常是乙個出介面列表,來進行**。如果不能命中,則向所有埠廣播該資料幀。

交換機的這張cam表可以通過多種方式獲得,比如靜態配置,動態學習,針對多播還可以通過各種多播協議,比如igmp窺探,gmrp協議等方式獲得(注意,多播**表不能通過學習獲得,而且多播**項跟普通**項不同的是,跟其對應的出口可能不止乙個,而是乙個出口集合,如果想詳細了解多播的一些基礎概念,請參考前面的專題資料)。但對於單播,最重要的一種建立方式是學習。

當交換機接收到乙個資料幀,提取出該資料幀的目的mac位址,並依此為根據進行cam表查詢,如果能查詢到結果,則根據結果進行資料幀的**,如果不能命中,則(向除接收埠外的)所有埠進行複製。在進行資料**的同時,交換機還進行乙個學習的過程,交換機把資料幀的源mac位址提取出來,查詢cam表,看cam表中是否有針對該mac位址的**項,如果沒有,則把該mac位址和接收到該mac位址的埠繫結起來,插入cam表項,這樣當接收到乙個傳送到該mac位址的資料幀時,就不需要向所有埠廣播,而僅僅向這乙個埠傳送即可。需要注意的是,資料幀的**是依據目的mac位址查詢cam表,而cam表的學習則是以源mac位址為依據。

交換機動態學習的cam表項並不是一成不變的,而是啟動乙個定時器,當該定時器遞減到零時,該cam表項被刪除,每使用一次該cam表項進行**,則恢復定時器初始值。

上述情況是沒有vlan的工作過程,現在的交換機一般都實現了vlan(即虛擬區域網,詳細內容請參考乙太網的有關教程),這樣在交換機進行**的cam表就進行了變化,由原來的兩項對應關係(mac位址跟介面)變成了三項對應關係(mac位址,vlan id,出口),這樣當接收到乙個資料幀的時候,交換機根據資料幀的目的mac位址和vlan id兩項來查詢cam表,找到介面後把該資料幀**出去。

但如果交換機根據mac位址和vlan id查詢cam表失敗,即沒有跟該mac和vlan id的對應關係,則交換機把該資料幀向該vlan包含的(除接收埠以外的)所有埠上覆制。如果只根據cam表來確定乙個vlan包含哪些埠,則必須遍歷整個cam表,這樣如果cam表的規模非常大(一般情況下是4k以上),則效率特別低,所以一般的交換機上在實現vlan時,還建立另外一張表,即vlan配置表,該錶包含了vlan id和所有埠的對應關係,即只要根據vlan id查詢該錶,就可以找到該vlan包含的所有埠,這樣在進行vlan內廣播的時候,就非常容易。

另外乙個問題出現了,就是資料幀的vlan id是怎樣獲得的。交換機一般根據下列原則來給乙個資料幀附加上vlan id:

1、如果接收到資料幀的埠是乙個非tag埠,且資料幀是乙個普通資料幀,則附加上該埠的預設vlan id;

根據農基文的理解:當乙個非tag埠收到了乙個資料幀,且含有vlan id時,做判斷,如果vlan id=埠pvid,則可以接收;否則,丟棄。

2、如果接收到資料幀的埠是乙個tag埠,而資料幀是乙個普通資料幀,則附加上該埠的預設vlan id;

3、如果接收到資料幀的埠是乙個tag埠,資料幀自己攜帶了vlan id(通過802.1q協議),則該資料幀的vlan id就是攜帶的vlan id。

需要注意的是,實現vlan的交換機在查詢cam表進行**之前,首先給該資料幀附加上vlan id。

以上功能都是二層功能,作為一台三層交換機,上述功能是必須實現的,但三層交換機的最根本特點還是vlan間的互通。

在三層交換機上,vlan之間的互通是通過實現乙個虛擬vlan介面來實現的,即針對每個vlan,交換機內部維護了乙個與該vlan對應的介面,該介面對外是不可見的,是乙個虛擬的介面,但該介面有所有物理介面所具有的特性,比如有mac位址,可配置最大傳輸單元和傳輸的乙太網幀型別等。在上述的說明中,我們提到了當交換機接收到乙個資料幀時,判斷是不是發給自己的,判斷的依據便是檢視該mac位址是不是針對接收資料幀所在vlan的介面mac位址,如果是,則進行三層處理,若不是,則進行二層處理,按照上述流程進行**。

既然實現了三層**,交換機必須維護乙個三層**表,該錶可以是基於最長匹配查詢的fib表,也可以是基於目的網路層位址精確匹配的三層**表,這跟實現的廠家裝置有關。這樣當交換機接收到乙個資料幀,該資料幀的目的mac位址跟該資料幀所在vlan對應的vlan介面的mac位址相同,則進行三層**。**的過程是查詢三層**表,查詢的結果是乙個(或多個,當資料幀是多播的時候)出口和相應的二層封裝資料,交換機於是把該資料幀所攜帶的三層資料幀(比如,是ip或ipx資料報)進行修改,比如修改校驗和,在ip協議中還進行ttl欄位遞減,然後重新計算checksum,完成這些後,就把該三層資料報進行二層封裝(根據三層**表查詢的結果),從相應的介面傳送出去。

這個三層**表的形成跟二層**表(cam表)的形成有很大的不同,它是通過查詢路由表並經過其它協議(比如arp協議)形成的。在後面介紹典型產品例項的時候,我們以例子來講述三層**表的形成。

& 本部分有下列要點:

1、三層交換機有二層交換機所有功能,比如基於mac位址的過濾(也就是基於mac位址的單播**),生成樹協議等;

2、三層交換機通過為每個vlan分配乙個vlan介面完成vlan之間的互通,vlan介面有自己的mac位址和ip位址,凡目的mac位址是vlan介面的資料幀,交換機都進行三層**或自己接收—取決於目的ip位址是否是交換機的介面位址。

在路由器上,每當接收到乙個資料報,路由器便進行路由表的查詢來找出該資料報的下一跳,然後通過相應的介面傳送出去。路由器查詢路由表採用的是最長匹配演算法,在以前的路由器中,最長匹配演算法採用軟體實現,而且實現起來非常複雜,導致了效率特別低。

我們可以設想,能否改變這種最長匹配的查詢思想,而採用精確匹配的查詢技術實現呢?可以引入乙個高速緩衝區,用來存放精確查詢所需要的資訊(一般是三層ip位址跟出口的對應fib表,還關聯有一些二層封裝資訊arp表,比如鏈路層頭等),當接收到乙個需要進行三層**的資料幀的時候,路由器先查詢高速緩衝區(採用精確匹配演算法,即直接根據目的ip位址進行索引),如果命中,則根據查詢出的資訊進行資料的**,如果不能命中,則查詢路由表(採用最長匹配演算法),根據查詢的結果進行**,同時更新相應的精確查詢緩衝區,這樣當到達同乙個目的地的資料報來的時候,就可以直接查詢精確匹配緩衝區進行**了。

跟cam表一樣,精確匹配查詢項也有乙個定時機制,超過了一定的時間限制就從緩衝區中刪除掉,跟cam表不同的是,三層精確匹配查詢項跟路由表同步,每當路由表變化,必定修改精確**緩衝區,來保證跟路由表的同步。

如果資料鏈路層是乙太網,網路層是ip,則這個三層高速**緩衝區是通過arp協議建立的,我們說明它的工作過程。

開始的時候,三層交換機只有一張用於路由的路由表(該路由表是通過路由協議建立的),而精確匹配的三層**表為空,這樣當三層交換機接收到乙個需要進行三層交換的資料幀時,它首先查詢三層精確匹配緩衝區,因為三層**表為空,查詢失敗,於是,三層交換機通過最長匹配演算法查詢路由表(根據資料報的目的ip位址),查詢的結果是乙個出口(一般是乙個vlan介面)和乙個下一跳。於是,有兩中可能的情況:

1、資料報的目的位址跟vlan介面不在同乙個網段;

2、資料報的目的位址跟vlan介面在同乙個網段。

在第一種情況下,三層交換機通過arp解析來解析下一跳ip位址,獲得下一跳的mac位址後,三層交換機把接收的資料幀進行二層封裝,然後傳送給下一跳。在第二種情況下,三層交換機直接解析資料報的目的ip位址,獲得目的ip位址對應的主機mac位址後,直接把該資料幀傳送給目的主機。不論哪種情況,交換機進行arp解析的時候,都會獲得乙個ip位址跟出口的對應關係,同時還通過arp協議獲得了下一跳的mac位址,於是,三層交換機會把這些資料組合成乙個三層精確匹配項,並插入到三層精確匹配緩衝區裡面。這樣當到達同一目的地的資料報到來後,三層交換機使用精確匹配演算法直接查詢高速緩衝區,根據查詢的結果進行**。

需要說明的是,實現三層精確匹配並不是三層交換機必須具備的特性。在一些低端交換機的場合下,最長匹配查詢採用軟體實現,效率特別低,因而引入三層精確匹配演算法,這是合理而且必須的,但對一些高階場合,就不適應了,在一些高階交換機上,最長匹配演算法都是基於硬體實現的,而且採用了效率很高的樹查詢演算法,其效率跟精確匹配演算法相差無幾,而且只採用最長匹配演算法還減少了精確匹配緩衝區和路由表的同步問題,因而在一些基於硬體實現的三層交換機上,精確匹配不是必須的。在後面介紹典型例項分析的時候,我們會介紹僅僅採用最長匹配演算法實現高階三層的交換機。

& 本部分有下列要點:

1、三層交換機為了提高效率,採用了精確匹配查詢演算法,在一些高階三層交換機上,該特性不是必須的,因為採用最長匹配查詢演算法的效率並不一定比採用精確匹配查詢演算法效率差。

CAM表含義及各層交換機介紹

所謂cam表是用於二層交換的位址表,通常稱為cam表,該表是mac位址與出介面的對應關係,對於二層交換機和三層交換機都會維護這張表。在概述部分中,我們給出了三層交換機的基本特點綜述,主要有下列特點 1.二層交換和三層互通 2.實現三層精確匹配查詢 3.專門針對區域網,特別是乙太網進行了優化 4.引入...

VLAN及交換機級聯(華三交換機)

ip配置 裝置名稱 ip位址 閘道器pca display inte cegigabitethernet 1 0 1 檢視埠資訊 在交換機上劃分vlan 實現vlan隔離,pca pccping不通 swa vlan 10 swa vlan10 port gigabitethernet 1 0 1 ...

阿里雲交換機介紹

作者雲哈神 訪問我的主頁 什麼是交換機 交換機 vswitch 是組成專有網路的基礎網路裝置,用來連線不同的雲產品例項。建立專有網路之後,您可以通過建立交換機為專有網路劃分乙個或多個子網,同一專有網路內的不同交換機之間內網互通。您可以將應用部署在不同可用區的交換機內,提高應用的可用性。說明 交換機不...