中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

L3 Switch二三層轉發原理是怎樣的

發布時間:2021-12-03 16:14:03 來源:億速云 閱讀:399 作者:柒染 欄目:大數據

L3 Switch二三層轉發原理是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

三層交換機(L3 Switch)因為其具備路由功能、三層轉發功能,且轉發效率遠遠高于路由器,而被廣泛用于大型網絡的骨干網絡中(從角色上來看:路由器的主要角色是路由選擇,而不是報文轉發;從實現上來看:路由器轉發報文是軟件轉發,轉發性能自然遜色于交換機了),今天我們就來簡單介紹一下關于交換機的二三層轉發。

首先二層轉發是基于MAC地址轉發,三層轉發基于IP地址轉發,但是這并不意味著僅僅依靠IP地址就能轉發,三層轉發是建立在二層的基礎上的,而僅僅依靠MAC地址是能夠轉發的。另外,由于二三層轉發基于MAC地址、IP地址、FDB表(MAC地址學習、更新、老化、刪除等)、ARP表、路由表、三層轉發表、VLAN端口類型(Access、Trunk、Hybrid)、VLAN幀格式、ARP報文格式等,需要對此有基本的熟知。以下圖為例,總結一下交換機中,基于VLAN的二三層轉發原理。

L3 Switch二三層轉發原理是怎樣的

1、基本概念術語:

①MAC地址:48bit的硬件地址,單播地址格式為首字節最低位為1,多播地址格式為首字節最低位為0,廣播地址為全1(即FF:FF:FF:FF:FF:FF)。另外有其他一些網絡協議的特定MAC地址格式。

②FDB表(FordWarding DateBase):即MAC地址映射表,有MAC地址、端口、VLAN ID等信息(不同廠商交換機可能還有其他信息)。

③ARP表:用于記錄IP和MAC映射關系的表。

④三層轉發表:即基于硬件三層轉發的包含目的IP地址、VLAN ID、端口號和下一跳MAC地址等的關系表。

⑤路由表:包含默認路由、RIP、OSPF等動態路由的路由路徑信息的記錄表。

⑥VLAN端口:有三種模式,主要是Access口(接入口),一般是用于連接主機,其發出的數據幀不帶vlan tag標簽;還有就是Trunk(主干口)用于可連接不同交換機的主干鏈路,其上發出的數據幀可能會帶tag標簽,用以識別不同VLAN,如果沒帶則采用默認的VLAN (PVID)。

假設初始情況下,所有PC和交換機沒有任何表項存在(ARP緩存、FDB緩存、三層轉發表緩存等),且端口均為Access模式。

2、二層轉發(同一VLAN中主機通信):

以上圖中PC_A ping PC_B為例來詳細分析整個過程。

①PC_A(192.168.10.1/24) 要 ping PC_B(192.168.10.2/24),首先PC_A要去檢查目標IP地址和自己的IP地址是否在同一個網段中,經過IP和子網掩碼進行與運算,得知PC_A和PC_B屬于同一網段:192.168.10.0網段。因此進行下一步:ARP表項查詢。

②根據目標IP:192.168.10.2作為索引,在ARP表中查找對應的MAC地址,由于ARP表最開始是空的,所以沒有找到對應MAC。因此PC_A需要發送一個ARP廣播報文在VLAN 1中請求PC_B(192.168.10.2)的MAC地址,PC封裝的ARP報文主要內容為,opcode操作碼字段為0X01代表這是一個ARP請求報文,目標MAC由于不知道因此全部填充為0,其余包含以太幀頭部具體如下圖所示:

L3 Switch二三層轉發原理是怎樣的

關于ARP報文各個字段的含義,用wireshark抓一個ARP包來查看,如下所示:

L3 Switch二三層轉發原理是怎樣的

該報文是我從自己電腦上抓取到的一個發送到房間無線路由器的ARP請求報文,是一個請求回復的ARP報文(即網關的ARP緩存超時需要清除前,PC發送的一個ARP報文,如果網關在規定時間內不回復該ARP請求,則PC清除該緩存,具體細節參考:RFC 826)。

③當交換機從a端口收到PC_A發出的報文,解析以太頭部后發現目標MAC是FF:FF:FF:FF:FF:FF,則知其是一個廣播幀,解析源MAC:MA,由于FDB表當前空空如也,因此先將"port a:MA:VLAN 1"等信息緩存到FDB表中。之后根據端口為Access模式,加上一個VLAN tag(主要包含優先級和VLAN ID=1),使其成為一個802.1Q的帶有VLAN tag的以太幀,在交換機內部開始進行交換。

④根據vlan tag以及端口檢測后,發現b、c、d三個端口(其實還有一個VLAN接口,暫不提及)歸屬于VLAN 1,與報文的tag標簽一致,因此將tag剝離并從這三個端口轉發出去。

⑤當PC_C、PC_D收到該廣播幀后解析內容,發現目標IP不是自己則丟棄該數據幀,而PC_B發現目標IP就是自己,則先將PC_A的“192.168.10.1:MA”的映射信息更新緩存到本地ARP表中。然后封裝一個ARP回應的單播報文,內容主要為:源IP:192.168.10.2,目標IP:192.168.10.1,源MAC:MB,目標MAC:MA。發送出去,經端口b到達交換機。

⑥交換機收到來自端口b的報文,解析頭部獲得源MAC,則先將“port b:MB:VLAN 1”等信息緩存到FDB表中去,由于FDB表中已經有了PC_A的MAC地址緩存,因此根據ARP回復報文數據中,幀頭部的目標MAC將報文從端口a轉發出去(該步中當然也存在入口數據幀tag的添加與出口數據幀tag剝離的操作)。

⑦PC_A接收到交換機從端口a發出的ARP報文后,解析以太頭部進行目標MAC匹配判斷,匹配后解析報文內容,發現“源IP:源MAC”的對應關系,因此先緩存“192.168.10.2:MB”到ARP表中,之后有了PC_B的MAC地址接可以封裝icmp報文進行ping的后續操作了。

⑧交換機收到來自PC_A和PC_B的icmp request與icmp reply報文,由于之前有緩存FDB表項,因此之后只會更新對應表項的老化標志,長時間沒有這倆源MAC的報文到交換機則會刪除對應表項。

3、三層轉發(跨越不同VLAN的主機通信):

以上,以一臺交換機上的同一個VLAN內的不同主機通信為例,描述了的是二層轉發的基本過程,包括ARP表查詢、ARP請求、交換機MAC地址查詢、FDB表緩存、端口類型檢查、VLAN tag添加與剝離、目標主機ARP回復等步驟。

而三層交換基本步驟差不多。以VLAN 1的PC_A(192.168.10.1,MA)和VLAN 2的PC_E(192.168.20.1,ME)相互ping為例分析(假設VLAN 1的網關為VLAN 1 interface的IP:192.168.10.254,VLAN 2的網關為VLAN 2 interface 的IP:192.168.20.254),以下過程也有加VLAN tag和剝離VLAN tag的過程,但與二層基本一致,因此不再贅述(對于跨交換機的不同VLAN間通信,涉及trunk口,其vlan tag添加可能與此稍有些不同):

①當PC_A(192.168.10.1/24)要ping PC_E(192.168.20.1/24)時,依然是檢查目標IP是不是和自己在同一個網段,發現不在同一網段(一個在192.168.10.0/24網段一個在192.168.20.0/24網段),則需要經過網關(這里是交換機三層接口)來轉發。因此PC_A在自己的ARP表中尋找網關對應的MAC地址,如果有則直接將報文封裝為:目標MAC為網關MAC,源MAC為MA,發送端IP為192.168.10.1,接收端IP為192.168.20.1。

②由于第一次PC_A的ARP緩存中不存在網關的MAC地址。則先向VLAN 1內廣播發送一個ARP請求,請求網關192.168.10.254的MAC地址,封裝為:源MAC為MA,目標MAC不可知則為全0,源IP為192.168.10.1,目標IP為192.168.10.254,到鏈路層封裝的頭部為,源MAC為MA,目標MAC為全F即廣播包,“幀類型”字段則填上ARP的協議號0x0806

③交換機SW1收到PC_A發送的報文,二層解析頭部檢查為廣播包,則從VLAN 1的除源端口外的各個端口轉發出去,另外也轉發一份到VLAN 1的三層接口,由于PC_A之前給PC_B發送過報文,SW 1有PC_A的FDB緩存,則檢查匹配后更新老化標志位,定時器重新計數。此外將PC_A的IP、MAC、對應port、VLAN ID等信息記錄到交換機的三層轉發表中。

④VLAN 1其他主機收到請求對象不是自己的ARP請求,丟棄該廣播報文,而SW 1的三層接口解析到目標IP是自己,則封裝一個源MAC是交換機VLAN 1 interface的MAC,源IP是192.168.10.254,目標IP是192.168.10.1,目標MAC是MA的ARP應答報文,再經過以太頭部封裝,添加ARP單播報文頭部,目標MAC為MA。交換機二層收到自三層的報文,解析數據幀頭部,根據目標MAC地址MA在FDB表中查找到其出端口是port a,為ACCESS端口,則剝掉tag(之前請求報文進入port a之后會被加上tag,以致能夠區分識別出VLAN 1的其他端口與VLAN 1 interface)轉發給PC_A。

⑤PC_A收到網關的MAC地址,則先緩存網關的ARP表項,然后將發給PC_E的報文修改目標MAC為VLAN 1 interface即網關的MAC地址,而目標IP依舊是PC_E的IP:192.168.20.1,然后封裝以太頭部以單播形式發送出去。

⑥SW 1在收到這個數據包后,因為“目的MAC地址”為交換機自己VLAN接口的MAC地址,而且“目的IP地址”和“源IP地址”不在同一網段,所以直接提交到三層,根據包中的“目的IP地址”(PC_E的IP地址)在三層硬件轉發表中查看有無對應表項,因為是第一次通信,所以結果是查找失敗,于是將數據包再轉送到CPU去進行軟件路由處理。

⑦ CPU同樣會根據包中的“目的IP地址”去查找其軟件路由表,發現匹配了一個直連網段(PC_E對應的網段),于是繼續查在ARP表中查找對應的MAC地址項。同樣是由于是第一次查找,所以仍然查找失敗。如果在ARP表中找到了對應的MAC地址,則數據可以直接由軟件路由表轉發了。

⑧如果沒查找到則以PC_E的目標IP為請求對象,在其所在VLAN 2的目標網段內發送ARP請求廣播(目標MAC為全0,目標IP為192.168.20.1,源MAC為VLAN 2 interface對應MAC,源IP為VLAN 2 interface對應IP:192.168.20.254),PC_E收到該ARP請求報文后,則先緩存網關的ARP表項,然后以ARP單播形式回復自己的MAC地址ME給網關192.168.20.254,SW 1的CPU則根據回復的報文更新記三層轉發表項,記錄PC_E的IP、MAC、出端口、VLAN ID等信息,此時三層轉發表中有了PC_A和PC_E的轉發表項。另外緩存PC_E的ARP表項與FDB表項。

⑨三層交換機的CPU根據獲取到的目標主機MAC和現有的直連路由信息將PC_A發來的數據包轉發給PC_E,這就是一次單方向的三層轉發過程,其中也大量涉及到了二層轉發(PC_A在VLAN 1內廣播請求網關MAC,交換機CPU控制在VLAN2內廣播請求PC_E的MAC等)。

⑩當PC_E回復PC_A報文時,與PC_A步驟相同,只是在PC_E上已經存在了網關ARP表項、交換機上已經存在了到PC_A的三層轉發表項、FDB表項等,所以會更簡單些。另外由于三層轉發表項的存在,因此PC_E回復PC_A的報文會直接根據三層轉發表進行硬件轉發,而不是CPU路由軟件轉發,效率會更快。

看完上述內容,你們掌握L3 Switch二三層轉發原理是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹰潭市| 顺平县| 武穴市| 靖边县| 山西省| 德阳市| 孟连| 沈丘县| 观塘区| 吴川市| 宽城| 启东市| 临邑县| 白水县| 城固县| 博湖县| 安福县| 新密市| 杭州市| 焦作市| 锡林郭勒盟| 丰城市| 方山县| 香河县| 宜宾市| 通化县| 乌什县| 海口市| 卓资县| 桑日县| 新巴尔虎右旗| 左权县| 若尔盖县| 闽清县| 察隅县| 上饶市| 灵台县| 鄂伦春自治旗| 迁安市| 青田县| 衡东县|