quartz/content/Typora/以太网/ping过程.md
2024-12-04 11:59:42 +08:00

61 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: 2024-12-04 11:58
updated: 2024-12-04 11:59
share: "true"
link: "false"
---
## PC A ping PC B (同一台三层交换机,不在一个网段)
### PC A MAC A、IP 1.1.1.2、GW 1.1.1.1
### L3-SWMAC S
### PC BMAC B、IP 2.1.1.2、GW 2.1.1.1
1. PC A 首先查找目的IP2.1.1.2,发现与自己**不在一个网段**,因此**向网关**1.1.1.1发送对应的MAC的ARP请求
2. L3-SW收到PC A的ARP请求后检查请求报文发现被请求IP是自己的三层接口IP向PC A发送ARP应答。L3-SW在接收ARP请求的时候**首先学习到PC A的源MAC+VID对应的端口**,同时把**PC A的IP和对应的MAC记录到自己的ARP表中**,并生成一条**直连主机路由**
3. PC A得到网关L3的ARP应答后获取了网关的MAC地址发送ICMP报文。报文的源MAC地址是自己的MAC地址MAC A目的MAC地址是网关的MAC地址 MAC S源IP是自己的IP1.1.1.2目的IP是PC B的IP2.1.1.2
4. L3-SW接受到PC A发送的ICMP报文首先根据源MAC+VID**更新MAC地址表**同时检查目的MAC地址发现是自己的MAC进行三层路由查找
交换机芯片根据报文的目的IP去查找其三层表项匹配中**直接网络路由**行为是将报文送到CPU去进行软件处理
CPU根据报文的目的IP去查找其软件路由表发现匹配了一个直连网段PC B对应的网段于是继续查找其软件ARP表仍然查找失败。然后L3-SW会在目的网段对应的VLAN的所有端口发送请求地址2.1.1.2对应MAC的ARP请求
5. PC B收到L3-SW的ARP请求检查请求报文发现请求IP是自己的IP向L3-SW发送ARP应答。同时**学习了L3-SW的MAC和对应的IP记录到自己的ARP表中**
6. L3-SW接收到PC B的ARP应答。首先学习到PC B的MAC+VID对应的端口记录到自己的FDB表中
由于目的MAC是本机送CPU处理。CPU将其IP与MAC对应的关系记录到自己的ARP表项中
并将PC A的ICMP报文发送给PC B报文中的目的MAC改成PC B的MAC B源MAC修改为自己的MAC MAC S。同时在交换芯片的三层表项中根据刚刚得到的三层转发信息添加表项内容包括IP、MAC、出口VLAN、出端口这样后续的PC A发往PC B的报文就可以通过改硬件三层表项直接转发走
7. PC B收到L3-SW转发过来的ICMP请求后回应ICMP应答给PC A。目的IP地址1.1.1.2源IP地址2.1.1.2。由于L3-SW之前已经得到PC A和MAC 的对应关系了同时也在交换芯片中添加了相关三层表项因此这个报文直接由交换芯片硬件交给PC A
## PC A ping PC B (不同的三层交换机,不在一个网段)
### PC A MAC A、IP 1.1.1.2、GW 1.1.1.1
### L3-SW1MAC S1
### L3-SW2MAC S2
### PC BMAC B、IP 2.1.1.2、GW 2.1.1.1
为了描述简洁我们假设L3_SW1上配置了静态路由ip route 2.1.1.0 255.255.255.0 3.1.1.2L3_SW2上配置了静态路由ip route 1.1.1.0 255.255.255.0 3.1.1.1。**配置静态路由后,系统会自动打通下一跳。**
1. PC A首先检查出目的IP地址2.1.1.2PC B与自己不在同一网段因此它通过ARP解析得到网关地址1.1.1.1对应的MACMAC S1。然后PC A组装ICMP请求报文并发送报文的目的MACMAC S1、源MACMAC A、源IP1.1.1.2、目的IP2.1.1.2
2. L3_SW1收到报文后首先根据报文的源MAC+VID更新MAC地址表。然后发现目的MAC为本机触发三层路由查找于是继续查找芯片的三层转发表
3. 由于已经配置完静态路由因此查三层表项能够查找到2.1.1.0 /24 -> 3.1.1.2, 转发给L3_SW2
4. L3_SW2收到报文后与组网1中的处理类似经过查三层转发表命中直连网络路由=>送CPU=>ARP请求和ARP应答解析具体过程同同网络的过程=>转发报文同时添加硬件表项的过程将报文转发给PC B此时报文的目的MAC修改为PC B的MACMAC B源MAC修改为L3_SW2的MACMAC S2。这样后续发往2.1.1.2的报文就直接由交换芯片硬件转发了;
5. PC B收到来自PC A的ICMP请求报文后进行ICMP应答。由于在ICMP请求报文转发的过程 中每个网段的两端节点都已经通过ARP解析得到了对方的IP和MAC对应关系因此应答报文的转发完全由交换芯片完成查三层转发表=>发送);
6. 这样,后续的往返报文都经过查三层转发表的过程由交换芯片直接进行硬件转发了。