码迷,mamicode.com
首页 > 其他好文 > 详细

二三层转发

时间:2016-10-26 07:19:37      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:信息   idt   报文   字段   mil   enter   最长匹配   arp   响应   

二层转发:当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就是谁。

二三层转发

标签:信息   idt   报文   字段   mil   enter   最长匹配   arp   响应   

原文地址:http://www.cnblogs.com/jikecode/p/5998878.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!