三層交換原理圖解

(一)大家常常聽到的“一次路由,多次交換”,可以簡單的理解爲:在完成對收到的第一個新數據流進行路由後,產生一個MAC地址與IP地址的映射表,當具有相同地址信息的數據流再次通過時,即根據此表直接在二層完成轉發。


(二)下面以一個例子,解釋三層交換機的轉發原理。

如圖1所示,該組網內,通信的源主機、目的主機連接在同一臺三層交換機上,但它們位於不同VLAN(網段)。

對於三層交換機來說,這兩臺主機都位於它的直連網段內,它們的IP對應的路由都是直連路由。

                 

                                    圖   三層轉發組網1

 

1中標明瞭兩臺主機(AB)MACIP地址、網關,以及三層交換機S3600MAC、不同VLAN配置的三層接口IP

源主機:    簡稱PC A        |      MAC地址 簡稱MAC A    |      IP 1.1.1.2    |      網關1.1.1.1                    

目的主機簡稱PC B        |      MAC地址 簡稱MAC B    |      IP 2.1.1.2    |      網關2.1.1.1                         

交換機:  簡稱S3600      |      MAC地址 簡稱MAC S    |      VLAN2三層接口IP        1.1.1.1

                                                                             VLAN3三層接口IP        2.1.1.1


(三) PC A  PC B 發起ICMP請求(ping)時,數據交換的過程如下:(假設三層交換機上還未建立任何硬件轉發表項,此次交換爲首次)

1 根據前面的描述,PC A檢查出目的IP地址2.1.1.2PC B)與自己不在同一網段,因此它發出請求:請求網關地址1.1.1.1對應MACARP請求;

2 三層交換機S3600收到PC AARP請求後,檢查請求報文發現被請求IP是自己的三層接口IP,因此發送ARP應答並將自己的三層接口MACMAC S)包含在其中。同時它還會把PC AIP地址與MAC地址對應(1.1.1.2<==>MAC A)關係記錄到自己的ARP表項中去(因爲ARP請求報文中包含了發送者的IPMAC);

3 PC A得到網關(S3600VLAN2 1.1.1.1)的ARP應答後,組裝ICMP請求報文併發送,源MACMAC A、源IP1.1.1.2、報文的目的MACMAC S、目的IP2.1.1.2

4 S3600收到報文後,首先根據報文的源MAC+VID(即VLAN ID)更新MAC地址表。然後,根據報文的目的MACVID查找MAC地址表,發現匹配了自己三層接口MAC的表項。(這裏說明一下,在BCM的chip中,MAC地址條目可以簡單分爲兩種:一種是交換機通過收取報文時源MAC地址的學習。第二種是當爲三層交換機爲VLAN配置三層接口IP後,會在交換芯片的MAC地址表中添加三層接口MACVID的表項,並且爲表項的三層轉發標誌置位。當報文的目的MAC匹配這樣的表項以後,說明需要作三層轉發,於是繼續查找交換芯片的三層表項)

5 交換芯片根據報文的目的IP去查找其三層表項,由於之前未建立任何表項,因此查找失敗,於是將報文送到CPU去進行軟件處理;

6 CPU根據報文的目的IP去查找其軟件路由表,發現匹配了一個直連網段(PC B對應的網段),於是繼續查找其軟件ARP表,仍然查找失敗。然後S3600會在目的網段對應的VLAN 3的所有端口發送請求地址2.1.1.2對應MACARP請求;

7 PC B收到S3600發送的ARP請求後,檢查發現被請求IP是自己的IP,因此發送ARP應答並將自己的MACMAC B)包含在其中。同時,將S3600IPMAC的對應關係(2.1.1.1<==>MAC S)記錄到自己的ARP表中去;

8 S3600收到PC BARP應答後,將其IPMAC對應關係(2.1.1.2<==>MAC B)記錄到自己的ARP表中去,並將PC AICMP請求報文發送給PC B,報文的目的MAC修改爲PC BMACMAC B),源MAC修改爲自己的MACMAC S)。同時,在交換芯片的三層表項中根據剛得到的三層轉發信息添加表項(內容包括IPMAC、出口VLAN、出端口),這樣後續的PC A發往PC B的報文就可以通過該硬件三層表項直接轉發了;

9 PC B收到S3600轉發過來的ICMP請求報文以後,迴應ICMP應答給PC AICMP應答報文的轉發過程與前面類似,只是由於S3600在之前已經得到PC AIPMAC對應關係了,也同時在交換芯片中添加了相關三層表項,因此這個報文直接由交換芯片硬件轉發給PC A

10 這樣,後續的往返報文都經過查MAC=>查三層轉發表的過程由交換芯片直接進行硬件轉發了。

從上述流程可以看出,三層交換機正是充分利用了一次路由(首包CPU轉發並建立三層硬件表項)、多次交換(後續包芯片硬件轉發)的原理實現了轉發性能與三層交換的完美統一。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章