二三層轉發


二層轉發:當A、B或者C、D互相通信時,它們走的就是二層轉發。

第一步:

A——> B。因為報文的源IP和目的IP在同一網段,將會走二層轉發,查詢PCT表,確定出端口。因為PCT表此時是空的:

MAC

VLAN

接口(物理口)

所以,交換機會把A向B發送的報文進行廣播處理,向VLAN內所有成員端口發送,B當然可以正常接收。同時,交換機會把A對應的MAC、VLAN、端口信息添加到PCT表項中,此時PCT表項變成如下形式。

MAC

VLAN

接口(物理口)

MAC_A

VLAN_1

1

第二步:

B——>A。過程和A向B第一次發送一樣,也是被當做廣播報文向VLAN內所有端口廣播,與此同時,交換機也會學習B的有關信息,添加到PCT表中。

MAC

VLAN

接口(物理口)

MAC_A

VLAN_1

1

MAC_B

VLAN_1

2

第三步:

當A、B再次通信時,則直接查詢PCT表,找到對應接口,將報文轉發出去。上述三個步驟,就是二層轉發的全部過程。

 

三層轉發:當A、B和C、D互通時,它們就要走三層轉發。下面用另外一個圖來說明。

注:SW  L2交換機、R  路由器、pc 普通終端,所有鏈路都支持802.1Q標簽報文。

其他條件:

pc1的啟動配置IP是192.168.0.4/24,默認網關192.168.0.1;

pc2的啟動配置IP是192.168.1.6/24,默認網關192.168.1.1;

交換機sw1端口s1是access,端口s2是trunk,均加入vlan10;

交換機sw2端口w1是access,端口w2是trunk,均加入vlan20;

路由器R端口1是三層路由接口,加入vlan10,IP為192.168.0.1/24;

路由器R端口2是三層路由接口,加入vlan20,IP為192.168.1.1/24;

 

 

 

第一步:

pc1——>是否同一網段(否!)——>三層轉發——>查路由表(沒有!)——>只能將報文發給自己默認網關(192.168.0.1——>查ARP表項(沒有!)——>發送ARP廣播報文

 

ARP請求(pc1)

DM

SM

以太幀類型

映射協議類型

SI

DI

Data

全f(廣播地址)

pc1 MAC

0x0806(ARP)

0x0800(IP)

pc1 IP

r1 IP

數據

 

第二步:

SW1——>從s1(access)收到ARP報文,報文加上VLAN10 標簽:1、更新SM+VLAN(pc1)到PCT表(MAC表)——>在VLAN10廣播,包括s2(trunk)

 

ARP請求(SW1)

DM

SM

幀Tpye

VID

以太幀類型

映射協議類型

SI

DI

Data

全f(廣播地址)

pc1 MAC

0x8100(802.1q)

VLAN 10

0x0806(ARP)

0x0800(IP)

pc1 IP

r1 IP

數據

 (交換機只起到透傳左右,打個VLAN而已,並不改變報文任何字段)

第三步:

R——>路由接口r1收到SW1報文:1、更新直連路由pc1到FIB表(轉發表);2、更新pc1的MAC和IP到ARP表;3、更新SM+VLAN(pc1)到PCT表;——>目的IP是端口r1,響應ARP請求,從r1發出  (交換機只透傳,所有並不會把交換機的MAC也更新到表項里)

 

ARP響應(路由接口r1)

DM

SM

幀Tpye

VID

以太幀類型

映射協議類型

SI

DI

Data

pc1 MAC

r1 MAC

0x8100(802.1q)

VLAN 10

0x0806(ARP)

0x0800(IP)

r1 IP

pc1 IP

數據

 

第四步:

SW1——>從s2(trunk)收到ARP報文,s2屬於VLAN10:1、更新SM+VLAN(r1)到PCT——>查PCT表,DM+VLAN(pc1)命中s1接口——>去掉VLAN標簽,從s1口發出

 

ARP響應(SW1)

DM

SM

以太幀類型

映射協議類型

SI

DI

Data

pc1 MAC

r1 MAC

0x0806(ARP)

0x0800(IP)

r1 IP

pc1 IP

數據

第五步:

pc1——>1、更新r1的MAC和IP到ARP表;2、更新r1的MAC到MAC——>封裝ping報文(ICMP回顯請求報文,ICMP是IP報文),發送

 

ICMP回顯請求(pc1)

DM

SM

協議類型

Protocol

ICMP類型

SI

DI

Data

r1 MAC

pc1 MAC

0x0800(IP)

1(ICMP)

8(ping request)

pc1 IP

pc2 IP

數據

 

第六步:

SW1——>從s1收到報文,加上VLAN10標簽——>查PCT表,DM+VLAN(r1)命中s2接口——>從s2發出

 

ICMP回顯請求(SW1)

DM

SM

幀Tpye

VID

協議類型

Protocol

ICMP類型

SI

DI

Data

r1 MAC

pc1 MAC

0x8100(802.1q)

VLAN 10

0x0800(IP)

1(ICMP)

8(ping request)

pc1 IP

pc2 IP

數據

 

第七步:

R——>路由接口r1收到報文,DM和端口MAC是否相等(相等)——>三層轉發——>查FIB表項——>目的IP最長匹配,主機(否!),網段(192.168.1.0,匹配!),命中出接口r2——>路由接口r2和1.0網段直連,根據目的IP(pc2)查ARP表,ARP MISS! ——>封裝ARP請求報文,加上VLAN20(r2)標簽,在VLAN20廣播

ARP請求(路由接口r2)

DM

SM

幀Tpye

VID

以太幀類型

映射協議類型

SI

DI

Data

全f(廣播地址)

r2 MAC

0x8100(802.1q)

VLAN 20

0x0806(ARP)

0x0800(IP)

r2 IP

pc2 IP

數據

 

第八步:

SW2——>從w2(trunk)收到ARP報文,w2屬於VLAN20:1、更新SM+VLAN(r2)到PCT——>在VLAN20廣播——>去掉VLAN標簽, 從w1(access)發出

 

ARP請求(SW2)

DM

SM

以太幀類型

映射協議類型

SI

DI

Data

全f(廣播地址)

r2 MAC

0x0806(ARP)

0x0800(IP)

r2 IP

pc2 IP

數據

 

第九步:

pc2——>收到SW2報文:1、更新r2的MAC和IP到ARP表;2、更新r2的MAC到MAC——>目的IP是自己,響應ARP請求,發送報文

 

ARP響應(pc1)

DM

SM

以太幀類型

映射協議類型

SI

DI

Data

r2 MAC

pc2 MAC

0x0806(ARP)

0x0800(IP)

pc2 IP

r2 IP

數據

 

第十步:

SW2:——>從w1(access)收到ARP報文,加上VLAN20標簽:1、更新SM+VLAN(pc2)到PCT——>查PCT表,DM+VLAN(r2)命中w2接口——>從w2發出

ARP響應(SW2)

DM

SM

幀Tpye

VID

以太幀類型

映射協議類型

SI

DI

Data

r2 MAC

pc2 MAC

0x8100(802.1q)

VLAN 20

0x0806(ARP)

0x0800(IP)

pc2 IP

r2 IP

數據

第十一步:

R——>路由接口r2收到SW2報文:1、更新直連路由pc2到FIB表;2、更新pc2的MAC和IP到ARP表;3、更新SM+VLAN(pc2)到PCT表;——>構造ICMP報文,加上VLAN20標簽,從r2口發送 

ICMP回顯請求(R)

DM

SM

幀Tpye

VID

協議類型

Protocol

ICMP類型

SI

DI

Data

pc2 MAC

r2 MAC

0x8100(802.1q)

VLAN 20

0x0800(IP)

1(ICMP)

8(ping request)

pc1 IP

pc2 IP

數據

第十二步:

SW2——>從w2(trunk)收到ICMP報文,w2屬於VLAN20——>查PCT表,DM+VLAN(pc2)命中w1接口——>去掉VLAN標簽,從w1口發出

 

ICMP回顯請求(SW2)

DM

SM

協議類型

Protocol

ICMP類型

SI

DI

Data

pc2 MAC

r2 MAC

0x0800(IP)

1(ICMP)

8(ping request)

pc1 IP

pc2 IP

數據

 

第十三步:

pc2——>收到ICMP回顯請求:1、更新路由pc1到路由表——>目的IP是自己,發送ICMP回顯應答報文——>查路由表,命中r2下一跳——>查ARP表,獲得r2的MAC地址——>封裝ICMP報文,發送

ICMP回顯應答(pc2)

DM

SM

協議類型

Protocol

ICMP類型

SI

DI

Data

r2 MAC

pc2 MAC

0x0800(IP)

1(ICMP)

0(ping reply)

pc2 IP

pc1 IP

數據

Attention:

至此,SW1、SW2的PCT表;路由器R的FIB表、ARP表、PCT表都已經完備,直接轉發ICMP回顯應答報文。

在pc1收到ICMP報文時,會更新pc2路由到路由表。

第十四步:

pc1——>收到ICMP回顯應答:1、更新路由pc2到路由表——>讀取報文數據,處理后顯示到屏幕。

 

 

主機顯示結果

 

三層轉發機制:依賴IP轉發,不改變報文目的IP和源IP,改變源MAC和目的MAC。

(表項查詢步驟:1、查FIB表,找下一跳,命中出接口。2、查ARP表,命中下一跳MAC;否則ARP miss,ARP廣播。3、查PCT表,命中物理出接口。)

二層轉發機制:依賴MAC(+VLAN)轉發,只關注目的MAC。

(表項查詢步驟:查PCT表,命中物理出接口;否則在以太網(VLAN)內廣播報文。)

 

 

路由器更新:FIB表,ARP表,MAC

主機更新:ARP表,MAC

交換機更新:MAC

找不到ARP表項就發ARP請求報文,誰發的ARP請求,報文中的源MAC就是誰。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM