初识二层转发linxl

初识二层转发

1.测试组网图:

 

2.实验前提条件

1) PC2上ARP表项IP:1.1.1.1(IP_PC) MAC:0000-0000-0003(PC3);

2) PC1上ARP表项IP:1.1.1.2(IP_PC MAC:0000-0000-0002PC2);

3) PC3上没任何表项;

4) 交换机上没有MAC表项;

5) PC1,PC2,PC3在同一网段,交换机各个端口都设置为access口,PVID为1

 

3.实验问题:

PC1上ping PC2的IP地址(1.1.1.2),是否能通?

 

 4.报文交互流程;

1) PC1处理流程:PC1 ping PC2PC1检查自己的IP地址和PC2的IP地址在同一网段,然后ICMP进程开始处理ping这个动作,封装ICMP相关信息,开始封装ICMP REQUEST头相关信息,ICMP封装完后将数据交给IP进程,IP进程根据ping目的地址和自身接口(出接口)IP地址及数据部分(ICMP报文)封装成IP数据报,源IP地址为接口IP地址(1.1.1.1),目的IP为ping的IP地址(1.1.1.2)。IP数据报封装完成后将此报文交付给数据链路层,数据链路层开始封装MAC 帧,MAC帧格式依次为目的MAC地址(0000-0000-0002),源MAC地址(0000-0000-0001),type类型(0x0800(IPv4协议)),数据段(IP数据报文),FCS。然后从PC1GE_0/1接口发出这个报文。数据帧如下:

目的MAC地址

源MAC地址

type

 

....

protocol

源IP地址

目的IP地址

 

....

 

ICMP报文

FCS

0000-0000-0002

0000-0000-0001

0x0800

1

1.1.1.1

1.1.1.2

Echo request

.......

 

2) 交换机处理:交换机从0/10接口收到这个报文,为报文添加缺省VLANID标记为VLAN1,解析此报文,检查源MAC地址并与MAC地址表相比较,发现源MAC地址不在表中则交换机学习源(PC1)MAC地址,芯片自动把PC1的MAC地址以及进入交换机的端口号等信息填入到芯片的MAC地址表中(如下表)

MAC-address

vlan

port

aging

0000-0000-0001

1

GE_0/10

300s

然后在MAC地址表中进行目的地址查找。没有找到目的MAC地址信息。交换机发现报文里的VLAN ID和接口GE_0/20允许VLAN ID相同,和接口GE_0/30 允许VLAN ID相同,则可以将此报文从GE0/20,GE_0/30转发出去,又因为接口GE_0/20,GE0/30是access口,转发前报文去掉tag VLAN1标记再通过泛洪法从GE_0/20,GE_0/30接口转发出去。

3)PC3的处理:PC3从GE_0/1接收到此报文,解封装此报文,得知目的MAC地址是PC2MAC地址,不是自己的MAC地址,则丢弃此报文。

4)PC2的处理:PC2GE_0/1接收到这个报文,解封装这个报文,发现目的MAC地址是0000-0000-0002,是自己的MAC地址,就知道是发给自己的报文,根据type类型知道是0x0800,发现这个报文的源IP地址是1.1.1.1,目的IP地址是1.1.1.2,目的IP地址是自己的IP地址,根据protocol1)知道是ICMP协议发送的request,于是PC2通过ICMP进程发送给PC1 replay,封装报文,交付给IP层,IP层加入源IP地址(PC2ip地址),目的IP 地址(pc1IP地址),protocol1(ICMP报文)封装成IP数据报交付给数据链路层,数据链路层加入源MAC地址(PC2MAC地址),查找ARP表加入目的MAC地址(1.1.1.1对应得MAC地址为PC3MAC地址),数据类型(0x0800(IPV4))最后封装成MAC帧。MAC帧如下:

目的MAC地址

源MAC地址

type

 

....

protocol

源IP地址

目的IP地址

 

....

 

ICMP报文

FCS

0000-0000-0002

0000-0000-0003

0x0800

1

1.1.1.2

1.1.1.1

Echo replay

.......

 

5)交换机处理:交换机从GE_0/20接口接收到此报文,为这个报文添加缺省VLANID标记为VLAN1,解析此报文的源MAC地址是PC2MAC地址,检查MAC表中没有PC2的MAC地址信息就学习到PC2的MAC地址信息。

Mac-address

vlan

port

aging

0000-0000-0001

1

GE_0/10

300s

0000-0000-0002

1

GE_0/20

300s

解析出目的MAC地址是PC3MAC地址,交换机查找自己的MAC表,没有找到PC3MAC的地址信息,交换机需要将此报文通过泛洪法将此报文从其他接口转发出去,交换机发现报文里的VLAN ID和接口GE_0/10,GE_0/30允许VLAN ID相同,则可以将此报文从GE_0/10,GE_0/30转发出去,又因为接口GE_0/10,GE_0/30是access口,转发前报文去掉tag VLAhfanN1标记此报文去掉tag VLAN1通过泛洪法从GE_0/10,GE_0/30接口转发这个报文。

6)PC3收到报文处理:PC3从GE_0/1收到这个报文后,解封装这个报文,发现源MAC地址是PC2MAC地址,目的MAC地址是自己的MAC地址,根据type知道是IP协议,在IP层解析知道源IP地址是PC2IP地址,目的IP地址是1.1.1.1,目的地址不是自己的IP地址,不再解析报文,丢弃此报文。

7)PC1收到报文处理:PC1GE_0/1收到这个报文后,解析这个报文发现源MAC地址是PC2的MAC地址,目的MAC地址是0000-0000-0003,目的MAC地址不是自己的地址,丢弃此报文。

 5.结果;

在以上环境条件下,PC1pingPC2ping 不通

猜你喜欢

转载自www.cnblogs.com/linxl/p/12824543.html