组网见图,在三层网络中,RT1的1.1.1.1 ping 3.3.3.的过程
二层请参考:https://zhiliao.h3c.com/theme/details/168391
在三层网络网中,RT1的1.1.1.1 ping 3.3.3.1的过程
假如设备全部是新开机设备,此时所有的设备上没有三张表(ARP,MAC和路由表,MAC是一个二层中的表),一个全新的过程开始了:
(1)RT1在网络层将来自上层的报文封装成IP数据包,其中源IP地址为自己,目标IP地址是3.3.3.1,RT1会用本机配置的24位子网掩码与目标地址进行“与”运算,得出目标地址与本机不是同一网段,因此发送RT2的数据包需要经过网关路由交换机设备的转发。
1)本案例中的RT1如果是一个PC,PC此时就是就把报文发给自己的网关;如果RT1是一个网络设备,此时RT1上一定会有一个路由,目的地址是3.3.3.1的,下一跳是1.1.1.2。那么此时1.1.1.2就相当于RT1要实现访问的网关。
(2)RT1发现自己ping的目标地址3.1.1.1不属于同网段,于是查找路由表,发现可以发给网关1.1.1.2。但是此时ARP表中没有1.1.1.2的ARP;
(3)RT1的ping协议触发ARP协议,RT1开始发ARP报文,源地址1.1.1.1,目的地址1.1.1.2;源MAC A,目的MAC全是F,然后只从1/0/1口发出(为什么只从1/0/1发出请参考组网及描述中的链接),交换机接到以后,发现是全F,拆开数据层报文,发现目的IP属于本机,然后记录一下1.1.1.1和MAC A,然后把自己的MAC B封装以后给RT1回包,收到回包的RT1记录了1.1.1.2和MAC B。
(4)收到交换机回包以后,此时相当于RT1只知道下一步的流量往哪发。此时重新封装ping包,源地址是1.1.1.1、目的地址是3.3.3.1、源MAC A、目的MAC B,此时三层要看路由,直接转发给交换机的1/0/1口。
(5)交换机收到报文以后,目的MAC B是本设备的,拆了数据链路包发现目的IP是3.3.3.1,发现不是本机地址,是本机3.3.3.2的同网段地址,于是重复发ARP的报文,源地址是3.3.3.2 ,源MAC C,目的地址3.3.3.1,目的MAC是全F,然后在本网段内广播。收到交换机的ARP报文以后,RT2学到了3.3.3.2,RT2回应MAC D以后,交换机学到3.3.3.1的MAC D。
1)假设交换机收到的RT1的报文的目的IP是5.5.5.1,也就是说不是交换机上同网段的地址,此时交换机重复步骤(3),请求自己的下一跳的MAC地址,周而复始,总是能学完MAC的。
(6)交换机学到3.3.3.1的MAC D以后,开始重新封装数据,源地址1.1.1.1、目的地址3.3.3.1,源MAC C、目的MAC D,然后直接从1/0/2口发给RT2。至此一个完成的ping的Request发到了RT2上。
(7)RT2收到一个源MAC C,目的MAC D的报文,发现是本机的MAC,就直接拆了数据链路包,然后发现是到本机的IP,除了数据后开始恢复replay。数据对称封装,即和收到的报文高度镜像,源IP 3.3.3.1、目的IP 1.1.1.1、源MAC D、目的MAC C,查找路由,然后发给了交换机。
(8)交换机拆掉MAC C和MAC D,发现目的地址是1.1.1.1,然后开始封装数据,源地址是3.3.3.1、目的地址1.1.1.1,查找ARP表发现有这个,记录是:1.1.1.1 MAC A 接口是1/0/1。此时封装源MAC B,目的MAC A的报文直接转发RT1。
总结:
和二层转发总结来看:(二层链接:)
(1)二层转发看MAC地址,交换机转发靠MAC表;三层转发靠路由表,
(2)ARP以是解决地址解析的问题;
1)二层中,目的IP一定在本机的ARP表中,直接查找以后,开始封装MAC;
2)三层中,目的的IP是直连的,此时封装的时候,直接在ARP表中就一定可以找到目的MAC;
3)三层中,目的的IP是还需要转发下一跳的,此时封装的时候,直接在ARP表中可以找到下一跳目的MAC。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作