标签:信息 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