三层转发

刚刚学完了三层转发的流程,并在我们的设备上实验了一下,现在我把我总结的一些步骤拿出来跟大家分享一下:
1.当PC1和PC2通信的时候,PC1首先会将目的机PC2的IP跟自己的子网掩码进行与操作,得到网络号:192.168.1.0,然后再用自己的IP跟子网掩码进行与操作,得到网络号:192.168.2.0,这时候它发现跟自己不是同一网段(若是同一网段则走二层转发),因此,它会把这个报文发送到默认网关:192.168.2.1,这时候要是在PC1的ARP缓存中没有对应网关的MAC时,PC1会发出一个ARP广播,请求网关的MAC。
2.当设备收到上面发出的请求报文时,它会去检查跟PC1相连接的端口所属的VLAN的三层接口的IP是否是192.168.2.1,这时候它发现请求的正是自己的接口MAC,然后向PC1发送一个ARP响应报文。
3.当PC1学习到了网关的MAC后,它就会发送一个目的MAC为网关MAC,目的IP为192.168.1.2的报文到设备上去。
4.当设备收到报文后,它去检查报文的DMAC,发现就是自己的MAC,这时候,设备会为其剥去以太网帧头,最后把报文交给三层转发模块,而这个模块找到正确的路由后又会加上适当的VLAN ID。
5.三层转发模块操作的具体过程是,首先它会检查精确匹配路由表:
   1)如果在精确匹配路由表中找到了目的IP,这时候再去找它对应的表项:
      A.如果找到了就会对报文进行重新封装,封装之后的报文格式如C->D阶段,最后设备会将报文从响应端口转发出去;
      B.要是找不到则发出ARP广播,重新学习MAC,学习到后再去封装报文,要是学习不到则会把报文丢弃掉,最后设备会将报文从响应端口转发出去;
   2)要是在精确匹配表里面找不到相应的目的IP,设备会找网段匹配表:
      A.要是在这两个表中找到了相应的目的IP:
         (1)这时候再去找它对应的表项,要是找到了就会对报文进行重新封装,封装之后的报文格式如C->D阶段,最后设备会将报文从响应端口转发出去;
         (2)要是找不到则发出ARP广播,重新学习MAC,学习到后再去封装报文,要是学习不到则会把报文丢弃掉,最后设备会将报文从响应端口转发出去;
      B.要是还找不到的话那么把该报文给丢弃,同时,设备会向源IP发送一个ICMP,告诉它报文不可达。

你可能感兴趣的:(学习笔记)