不同网段的ip怎么互通 vlan 不同网段的ip怎么ping通_linux

主机192.168.1.1/24 ping 主机192.168.2.1

1. 第一步开始准备封装ping包

封装ping包的三层源ip和目的ip分别为192.168.1.1和192.168.2.1;二层mac源地址为自己的mac地址,目的mac地址是对方还是网关取决于自己与对方是否在同一网段。

2. 先判断目标主机和自己是否在同一网段

由于不知道目标主机的子网掩码,主机192.168.1.1用自己的掩码给目标主机计算网段,自己属于网段192.168.1.0/24, 对方属于网段192.168.2.0/24。双方不在同一网段

3. 如果在同一网段则直接找对方的mac地址;如果不在同一网段则先找网关的mac地址

由于不在同一网段,所以先在自己的网关的mac地址,将网关的mac地址作为ping包的二层目的mac地址

4. 主机192.168.1.1查看自己的arp表中是否有网关192.168.1.254的mac地址

如果有则直接使用;如果没有则向网关发送arp二层广播包,包的二层源mac是自己,目的mac是全F;arp报文的sender mac和ip都是自己的,target mac是全0,target ip是网关的ip

不同网段的ip怎么互通 vlan 不同网段的ip怎么ping通_udp_02

5. 交换机sw1收到这个arp包后,先将这个包的源mac和接口写入mac地址表,然后发现该包的目的mac为广播全f,所以将该包泛洪到除该接口外的所有接口。

6. 路由器R1的G0/0/0接口收到这个arp广播包后,解封装二层,看到arp报文,先将sender ip和sender mac的对应写入arp表,然后发现target ip是自己192.168.1.254就发送arp响应包,响应包的二层源和目的mac分别是自己和主机192.168.1.1的mac,arp报文的sender ip和mac是自己的ip和mac,target ip和mac是主机192.168.1.1的ip和mac

不同网段的ip怎么互通 vlan 不同网段的ip怎么ping通_不同网段的ip怎么互通 vlan_03

7. 交换机sw1收到这个arp响应包后查看mac地址表,看有误目标mac(192.168.1.1这台主机的mac),由于第五步时已经将该mac和接口对应关系写入mac地址表,所以直接将这个arp响应包单播出这个接口给主机192.168.1.1

8. 主机192.168.1.1收到这个arp响应包后查看包的二层发现目标mac是自己,就解封装二层查看arp报文发现target ip是自己就将sender ip和mac的对应关系写入arp表,也知道了网关192.168.1.254的mac地址

9. 回到第一步继续封装ping包的二层目标mac为上一步知道的网关192.168.1.254的mac,封装三层源和目的ip为192.168.1.1和192.168.2.1并发送

10. 交换机sw1收到该ping包发现二层目的mac在mac地址表中对应的接口为上联R1的接口就把ping包转发出去给R1的G0/0/0接口

11. 路由器R1收到包查看目标mac地址为自己的G0/0/0接口的mac地址后解封装二层查看三层目的ip192.168.2.1,并查看自己的路由表发现有到网段192.168.2.1/24的路由,下一跳为12.1.1.2/24,出接口为G0/0/1。路由器R1重新封装该ping包的二层源mac为自己的G0/0/1接口的mac地址,从arp表中查到ip12.1.1.2的mac为x,将x写为目的mac地址,然后将该ping包从G0/0/1接口发送出去。

12. 路由器R2的处理方式和R1一样

13. 路由器R3从G0/0/0接口收到这个ping包后查看目的mac地址是自己G0/0/0的mac地址,然后解封装二层,查看三层的目的ip地址,发现目的ip地址是192.168.2.1,查看自己的路由表发现到达网段192.168.2.0/24的路由的下一跳地址为自己G0/0/1接口的ip地址192.168.2.254,出接口为G0/0/1,于是重新封装ping包的二层数据,源mac是自己G0/0/1接口的mac,目的mac是从arp表中学习到的ip地址192.168.2.1的mac y,然后从G0/0/1接口把ping包发送出去

14. 交换机sw2收到这个ping包后,查看自己的mac地址表找mac地址y对应的接口,然后从该接口把这个包转发出去

15. 目标主机192.168.2.1收到这个ping包后,查看二层目的mac地址是自己的mac地址,然后解封装二层来查看三层目的ip地址也是自己的ip地址就手下这个包。