详细Ping过程描述(二、三层转发)

※ 首先要了解

①    源主机在发起通信之前,将自己的IP与目的主机的IP进行比较如果两者位于同一网段(用网络掩码计算后具有相同的网络号),那么源主机直接向目的主机发送ARP请求,在收到目的主机的ARP应答后获得对方的物理层(MAC)地址,然后用对方MAC作为报文的目的MAC进行报文发送。位于同一VLAN(网段)中的主机互访时属于这种情况,这时用于互连的交换机作二层交换转发;

②    判断是否网络层转发:报文的目的MAC地址是否为路由接口(网关)的MAC

如下图


当源主机判断目的主机与自己位于不同网段时,它会通过网关(Gateway)来递交报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关MAC作为报文的目的MAC进行报文发送。


了解了以太帧目的MAC的填写规则之后就可以描述转发过程了

一、拓扑1,及各接口配置如下图:

同网段通信,PCa ping PCb

1,欲发送的以太帧关键部分如下:

目的MAC:未知

源MAC:MACa

目的IP:10.10.10.2

源IP:10.10.10.1

       2,根据规则,判断目的PCb的IP地址,发现和自己在同一网段,则直接请求目的主机MAC,此时PCa未知PCb的MAC,便广播ARP请求,请求帧关键部分如下:

以太网首部

ARP字段

目的MAC:广播

源MAC:MACa

标志:

0

源MAC:MACa

源IP:

10.10.10.1

目的MAC:

0待填充

目的IP:10.10.10.2

       3,此时SW1从Fa1/1接收到了此广播,进行MAC以及ARP的学习,FDB(MAC表)上增加一条MAC对应关系如下:

MACa

Fa1/1

       4,SW1查表发现没有对应的表项,便在同网段内即向Fa0/1和Fa2/1转发广播包。R1发现请求的ARP不是自己的IP便丢弃;PCb则发现ARP请求目的IP是自己,便准备编辑一个ARP回应报文,同时,将PCa的MAC和IP对应关系保存在自己的ARP缓冲表中。ARP回应报文关键部分:

以太网首部

ARP字段

目的MAC:MACa

源MAC:MACb

标志:

1

源MAC:MACb

源IP:

10.10.10.2

目的MAC:

MACa

目的IP:10.10.10.1

       5,ARP回应报文从SW的Fa2/1接口进入交换机,交换机进行学习,FDB上增加一条

MACb

Fa2/1

       6,此时SW1再查表,发现目的MAC可以从Fa1/1到达,便从此端口转发此报文。

       7,这时PCa便能收到ARP回应,将PCb的MAC记录在本机ARP缓存中。可以编辑ping报文发送。当SW1接收到目的MAC为MACb的帧时,学习过程便是更新FDB表,查表将报文从Fa2/1转发,PCb便能收到报文。Ping回应的过程也一路查表畅通无阻。

======================================================================

跨网段通信,PCa ping PCc

1,欲发送的以太帧关键部分如下:

目的MAC:未知

源MAC:MACa

目的IP:10.10.20.1

源IP:10.10.10.1

       2,根据规则,判断目的PCc的IP地址,发现和自己不在同一网段,于是向网关发送ARP请求。请求帧关键部分如下:(ARP请求的源为自己本身,目的地址为网关)

以太网首部

ARP字段

目的MAC:广播

源MAC:MACa

标志:

0

源MAC:MACa

源IP:

10.10.10.1

目的MAC:

0待填充

目的IP:10.10.10.100

       3,此时SW1从Fa1/1接收到了此广播包,便进行ARP学习,FDB(MAC表)上增加一条MAC对应关系如下:

MACa

Fa1/1

       4,SW1查表发现没有对应的表项,便在同网段内即向Fa0/1和Fa2/1转发广播包。PCb发现请求的ARP不是自己的IP便丢弃;R1则发现ARP请求目的是自己Fa0/0接口IP,便编辑一个ARP回应报文:

以太网首部

ARP字段

目的MAC:MACa

源MAC:MAC_R1_0

标志:

1

源MAC:MAC_R1_0

源IP:

10.10.10.100

目的MAC:

MACa

目的IP:10.10.10.1

       5,此时SW1接收到该ARP应答,并进行基于原地址的学习,与目的地址的转发,新增MAC表项:

MAC_R1_0

Fa0/1

       6,PCa接收到ARP应答后,就学习到网关的MAC地址,这时,PCa就开始向PCc发送ping报文,源IP、源MAC为自己本身,目的MAC为网关的MAC,目的IP为PCc的IP地址:

目的MAC:MAC_R1_0

源MAC:MACa

目的IP:10.10.20.1

源IP:10.10.10.1

       7,SW1接到此报文基于源地址的学习,查找目的MAC,进行转发给R1。

       接下来的步骤,和同网段通信大同小异

       8,R1接收到该ICMP报文后,R1查找本地路由表,通过最长匹配找到PCc的匹配项,确定出端口为fa1/0,接着进行规则判断,目的IP是否和自己IP处于同一网络,发现PCc的IP和自己接口Fa1/0的IP为同一网段,欲转发ICMP报文,目的MAC为PCc的MAC。

目的MAC:未知PCc

源MAC:MAC_R1_1

目的IP:10.10.20.1

源IP:10.10.10.1

查找ARP表,没有发现端对应的MAC地址,这时,R1发送ARP请求报文,广播请求PCc的MAC地址:

以太网首部

ARP字段

目的MAC:广播

源MAC:MAC_R1_1

标志:

0

源MAC:MAC_R1_1

源IP:

10.10.20.100

目的MAC:

0待填充

目的IP:10.10.20.1

9,交换机SW2接收到广播包,基于源地址的学习和目的地址的转发

10,PCc收到ARP请求,基于源地址的学习,同时发现请求的IP地址为自己本身,以单播形式做ARP应答

11,SW2接收到ARP应答报文,基于源地址的学习和目的地址的转发

12,R1接收到ARP应答后,获取到PCc的MAC地址,于是,R1将PCcMAC地址填入ping报文中,将ping报文转发给PC3

13,SW2接收到ping报文后基于源地址学习,根据目的MAC转发给PCc

14,PCc接收到ping报文,开始通信。

以上为简单的拓扑的二三层转发过程,省略了ping应答的过程。

下面的拓扑加入了vlan和路由,用表格以序号方式展示ping的过程


、加入VLAN的网络拓扑


网络说明:

1) 网络中所有二层口都为ACCESS口(包括设备间互联的二层口),其对应VLAN如图中连接所示。

2)L2-1下链A-1端口为0/1,下链B-1端口为0/2;上链L3-1端口为0/23,上链L3-2端口为0/24。

    L2-2下链A-2端口为0/1,下链B-2端口为0/2;上链L3-1端口为0/23,上链L3-2端口为0/24。

3) L3-1和L3-2连接L2-1的端口均为0/1,连接L2-2的端口均为0/2。

    L3-1和L3-2通过路由口相连,均为0/24口。                    

    L3-1是VLAN3的网关SVI3:192.168.1.100/24,L3-2是VLAN4的网关SVI4:192.168.2.100/24。终端用户PC的IP配置如图所示。

4)方便描述,在L3-1添加静态路由:ip route 192.168.2.0 255.255.255.0 192.168.3.2

    在L3-2添加静态路由ip route 192.168.1.0 255.255.255.0 192.168.3.1


A-1 ping通B-2 (以表格形式说明完整ping过程报文)

编号

报文类型

源MAC

目的MAC

tag

源IP/
sender IP

目的IP/
target IP

TTL

发送者

1

ARP请求

MAC_A1

全F

NA

192.168.1.1

192.168.1.100

NA

A1

2

ARP请求

MAC_A1

全F

NA

192.168.1.1

192.168.1.100

NA

L2-1

3

ARP应答

MAC_L3_1_SVI3(或MAC_L3_1

MAC_A1

NA

192.168.1.100

192.168.1.1

NA

L3-1

4

ARP应答

MAC_L3_1_SVI3(或MAC_L3_1

MAC_A1

NA

192.168.1.100

192.168.1.1

NA

L2-1

5

ICMP请求

MAC_A1

MAC_L3_1_SVI3(或MAC_L3_1

NA

192.168.1.1

192.168.2.2

255

A1

6

ICMP请求

MAC_A1

MAC_L3_1_SVI3(或MAC_L3_1

NA

192.168.1.1

192.168.2.2

255

L2-1

7

ARP请求

MAC_L3_1_gi0/24(或MAC_L3_1

全F

NA

192.168.3.1

192.168.3.2

NA

L3-1

8

ARP应答

MAC_L3_2_gi0/24(或MAC_L3_2

MAC_L3_1_gi0/24(或MAC_L3_1

NA

192.168.3.2

192.168.3.1

NA

L3-2

9

ICMP请求

MAC_L3_1_gi0/24(或MAC_L3_1

MAC_L3_2_gi0/24(或MAC_L3_2

NA

192.168.1.1

192.168.2.2

254

L3-1

10

ARP请求

MAC_L3_2_SVI4(或MAC_L3_2

全F

NA

192.168.2.100

192.168.2.2

NA

L3-2

11

ARP请求

MAC_L3_2_SVI4(或MAC_L3_2

全F

NA

192.168.2.100

192.168.2.2

NA

L2-2

12

ARP应答

MAC_B2

MAC_L3_2_SVI4(或MAC_L3_2

NA

192.168.2.2

192.168.2.100

NA

B2

13

ARP应答

MAC_B2

MAC_L3_2_SVI4(或MAC_L3_2

NA

192.168.2.2

192.168.2.100

NA

L2-2

14

ICMP请求

MAC_L3_2_SVI4(或MAC_L3_2

MAC_B2

NA

192.168.1.1

192.168.2.2

253

L3-2

15

ICMP请求

MAC_L3_2_SVI4(或MAC_L3_2

MAC_B2

NA

192.168.1.1

192.168.2.2

253

L2-2

16

ICMP应答

MAC_B2

MAC_L3_2_SVI4(或MAC_L3_2

NA

192.168.2.2

192.168.1.1

255

B2

17

ICMP应答

MAC_B2

MAC_L3_2_SVI4(或MAC_L3_2

NA

192.168.2.2

192.168.1.1

255

L2-2

18

ICMP应答

MAC_L3_2_gi0/24(或MAC_L3_2

MAC_L3_1_gi0/24(或MAC_L3_1

NA

192.168.2.2

192.168.1.1

254

L3-2

19

ICMP应答

MAC_L3_1_SVI3(或MAC_L3_1

MAC_A1

NA

192.168.2.2

192.168.1.1

253

L3-1

20

ICMP应答

MAC_L3_1_SVI3(或MAC_L3_1

MAC_A1

NA

192.168.2.2

192.168.1.1

253

L2-1


可以发现:跨网通信中,ping报文的源、目的IP地址没有变化(对于网络层);而源、目的MAC的址随着不同设备间转发的过程而变化。











猜你喜欢

转载自blog.csdn.net/alexsjr/article/details/80974817
今日推荐