【轉】交換機開發(二)—— 三層交換機報文轉發過程
如圖所示,假如主機A想訪問主機B,首先主機A會將自己的IP地址和子網掩碼做與操作,得出網路地址(如:Host-A的IP地址100.1.1.2與自身掩碼255.255.255.0做與操作後,得到的網路號是100.1.1.0).然後判斷目的IP地址(即Host-B的IP地址)與自己的網路地址是不是在同一個子網.因為圖中主機A和主機B不在同一子網內,所以需要進行三層轉發.
1、主機A傳送ARP廣播獲取閘道器MAC地址
主機A想訪問主機B首先要有主機B的MAC地址,由於主機A和主機B不在同一子網,所以主機A首先會向預設閘道器傳送ARP廣播報文來獲取閘道器的MAC地址。ARP報文格式如下:
Ethernet頭 |
ARP頭 |
||||
D-MAC |
S-MAC |
S-MAC |
S-IP |
D-MAC |
D-IP |
ff:ff:ff:ff:ff:ff |
00e0-d26b-8121 |
00e0-d26b-8121 |
100.1.1.2 |
00:00:00:00:00:00 |
100.1.1.1 |
2、交換機形成主機A的MAC表項,並用閘道器MAC地址回應主機A的ARP請求
交換機收到ARP廣播報文後,首先學習ARP報文Ethernet頭部的源MAC地址,交換機晶片將自動記錄主機A的MAC地址(00e0-d26b-8121)、接收該ARP報文的交換機介面號(E1/0/0)及此介面所屬的VLAN(VLAN 10)等資訊,並形成一條MAC表項放入交換機MAC表中.同時,交換機也會通過軟體把主機A的IP、MAC、上連到交換機的介面等資訊儲存到交換機的硬體轉發表裡(三層硬體表項,MAC表是沒有IP的)。
由於主機A傳送的ARP廣播報文中的目的IP地址(100.1.1.1)就是交換機上接收該ARP廣播報文的介面(E1/0/0)所屬VLAN(VLAN 10)的IP地址,所以交換機將使用vlan10的MAC地址回覆主機A的ARP請求。ARP回覆報文如下:
Ethernet頭 |
ARP頭 |
||||
D-MAC |
S-MAC |
S-MAC |
S-IP |
D-MAC |
D-IP |
00e0-d26b-8121 |
00e0-d26b-8111 |
00e0-d26b-8111 |
100.1.1.1 |
00e0-d26b-8121 |
100.1.1.2 |
3、主機A把閘道器MAC當作主機B的MAC訪問主機B
主機A收到閘道器的ARP回應報文後,會把閘道器的MAC地址當成是主機B的MAC地址,這樣主機A傳送資料給主機B時就會使用閘道器MAC作為目的MAC來封裝資料偵,偵格式如下:
Ethernet頭 |
IP頭 |
資料 |
||
D-MAC |
S-MAC |
S-IP |
D-IP |
DATA |
00e0-d26b-8111 |
00e0-d26b-8121 |
100.1.1.2 |
200.1.1.2 |
…… |
4、交換機查詢硬體轉發表/路由表進行三層轉發
交換機收到主機A發來的資料包文後,仍然會首先學習資料包文Ethernet頭部的源MAC地址,然後根據Ethernet頭部的目的MAC查詢交換機的MAC表,此時發現目的MAC地址就是本地VLAN的MAC地址,這種情況下交換機會把該報文上送到交換晶片的三層引擎處理。三層引擎將首先查詢硬體轉發表。
⑴ 如果硬體轉發表中有匹配項,則根據報文目的IP地址作相應處理:
①、目的IP地址就是本地的IP地址,則交相應模組處理。
②、目的IP是其他裝置IP地址,本地只是轉發,則根據硬體轉發表項使用出介面MAC替換報文的源MAC地址,用下一跳MAC替換報文的目的MAC地址,同時TTL值減1,繼續轉發。(此處與二層的區別在於需要對報文進行源、目的MAC進行替換)
⑵ 如果不匹配則查詢路由表,有匹配項則按照上面(2)中的操作進行,同時把相應的目的IP、下一跳MAC、出介面等資訊儲存到硬體轉發表項中,下次就不需要查路由表了,這就是所謂的一次路由多次交換。
⑶ 如果路由表也沒有匹配項,則丟棄報文。
此處,由於主機A資料包文的目的IP是主機B的地址,並且主機B和交換機直連,交換機的硬體轉發表/路由表已經有主機B的路由表項,所以交換機將主機A發來的報文中的源、目的MAC地址作替換,同時TTL值減1,然後發給主機B。經過MAC替換後的報文格式如下:
Ethernet頭 |
IP頭 |
資料 |
||
D-MAC |
S-MAC |
S-IP |
D-IP |
DATA |
00e0-d26b-8212 |
00e0-d26b-8222 |
100.1.1.2 |
200.1.1.2 |
…… |
這樣主機A就把資料包文發到了不同網段的主機B。同時交換機上也儲存了關於主機A和主機B的硬體轉發表項,以後主機A和主機B互訪,以及其他網段主機訪問主機A或主機B交換機就可以根據硬體轉發表項直接轉發,而不需要查詢路由表。
--------------------- 本文來自 zqixiao_09 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/zqixiao_09/article/details/51169849?utm_source=copy
相關文章
- 二層、三層交換機和四層交換機的區別(轉)
- 二層交換機 三層交換機 四層交換機的區別
- 【轉】交換機開發(三)—— 深入分析三層網路交換機的原理和設計
- 【轉】交換機開發(一)—— 交換機的工作原理
- 二層交換機和三層交換機的區別
- 三層交換機技術解析(轉)
- 二層交換機鏈路聚合、三層交換機鏈路聚合和三層交換機的單臂路由專案路由
- 二層交換機埠模式模式
- VLAN與三層交換機
- 思科二層三層交換機密碼恢復密碼
- 三層交換機和路由器的比較(轉)路由器
- 交換機技術向第七層應用層發起衝擊(轉)
- 交換機是如何轉發資料包的?
- 動態:交換機技術向第七層發起衝擊(轉)
- 【轉】交換機開發(四)—— ARP 基礎知識解析
- 利聯科技:揚州BGP伺服器的華為三層交換機和二層交換機的區別伺服器
- 三層交換機與路由器路由器
- 從二層到七層交換機技術適用環境介紹(轉)
- H3C三層交換機操作
- 1、交換與定址轉發
- 交換機基礎知識(轉)
- 交換技術:軟交換機的概念、特徵和作用(轉)特徵
- 三層交換機怎麼設定vlan網路
- 三層交換機怎麼設定路由連線路由
- ensp 實驗十一單臂路由 三層交換機路由
- 【轉】銳捷交換機配置命令大全2
- 路由器與三層交換機相連的方法路由器
- 提高傳輸效率 三層交換及VLAN設定(轉)
- 1.1_3_1 電路交換、報文交換、分組交換
- 車載乙太網交換機入門基本功(3)—VLAN 轉發
- 三層交換技術解析
- 教你架設安全的交換機系統(轉)
- Cisco 交換機之間的連線方法(轉)
- Cisco Catalyst交換機密碼恢復策略(轉)密碼
- 交換機可能產生的問題分析(轉)
- 全國產交換機、軍用交換機與普通交換機到底有啥區別?
- 華為交換機和銳捷交換機埠隔離
- 思科應用三層交換機實現VLAN間路由例項路由