华为数通HCIE面试看这个就够了系列——二层

一、二层帧格式。

1.Ethernet II。
6B6B2B46~1500B4B
DMACSMACTypeDataFCS
  • Type:上层的协议类型。
    • ARP:0x0806
    • IP:0x0800
    • IPv6:0x86DD
    • 802.1Q:0x8100
2.IEEE 802.3。
6B6B2B3B5B38~1432B4B
DMACSMAClengthLLCSNAPDataFCS

  不同的Type\Length字段值可以用来区别这两种帧的类型,当Type\Length字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。当Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。以太网中大多数的数据帧使用的是Ethernet II格式。

二、ARP协议。

1.ARP报文格式。

在这里插入图片描述

  • 帧类型:16比特,数据的类型。对于ARP请求或应答来说,该字段的值为0x0806。

  • 硬件类型:16比特,硬件地址的类型。对于以太网,该字段的值为1。

  • 协议类型:16比特,发送方要映射的协议地址类型。对于IP地址,该字段的值为0x0800。

  • 硬件地址长度:8比特,硬件地址的长度。对于ARP请求或应答来说,该字段值为6。

  • 协议地址长度:8比特,协议地址的长度。对于ARP请求或应答来说,该字段值为4。

  • OP:16比特,操作类型。OP的值与操作类型的关系如下:

    • 1表示ARP请求报文。
    • 2表示ARP应答报文。
  • 源MAC:48比特,源MAC地址。

  • 源IP:32比特,源IP地址。

  • 目的MAC:48比特,目的MAC地址。发送ARP请求报文时,该字段为全0的MAC地址0x0000-0000-0000

  • 目的IP:32比特目的IP地址。

2.动态ARP。

  动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。动态ARP解析过程如下:
在这里插入图片描述
在这里插入图片描述

  • 首先,Host_1会查找自己本地缓存的ARP表,确定是否包含Host_3对应的ARP表项。如果Host_1在ARP表中找到了Host_3对应的MAC地址,则Host_1直接利用ARP表中的MAC地址,对数据报文进行帧封装,并将数据报文发送给Host_3。如果Host_1在ARP表中找不到Host_3对应的MAC地址,则先缓存该数据报文,并以广播方式发送一个ARP请求报文。
  • OP字段为1表示该报文为ARP请求报文,ARP请求报文中的源MAC地址和源IP地址为Host_1的MAC地址和IP地址,目的MAC地址为全0的MAC地址,目的IP地址为Host_3的IP地址。
  • 交换机收到ARP请求报文后,将该ARP请求报文在同一广播域内转发。
  • 同一广播域内的主机Host_2和Host_3都能接收到该ARP请求报文,但只有被请求的主机(即Host_3)会对该ARP请求报文进行处理。Host_3比较自己的IP地址和ARP请求报文中的目的IP地址,当两者相同时进行如下处理:
    • 将ARP请求报文中的源IP地址和源MAC地址(即Host_1的IP地址和MAC地址)存入自己的ARP表中。之后以单播方式发送ARP应答报文给Host_1。
    • OP字段为2表示该报文为ARP应答报文,源MAC地址和源IP地址为Host_3的MAC地址和IP地址,目的MAC地址和目的IP地址为Host_1的MAC地址和IP地址。
  • 交换机收到ARP应答报文后,将该ARP应答报文转发给Host_1。Host_1收到ARP应答报文后,将Host_3的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将数据报文进行帧封装,并将数据报文发送给Host_3。
3.免费ARP。

在这里插入图片描述设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。有下面几个作用:

  • IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。
  • 用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
  • 在VRRP备份组中用来通告主备发生变换:发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换。
4.Proxy ARP。
  • 路由式Proxy ARP:需要互通的主机(主机上没有配置缺省网关)处于相同的网段但不在同一物理网络(即不在同一广播域)的场景。
  • VLAN内Proxy ARP:需要互通的主机处于相同网段,并且属于相同VLAN,但是VLAN内配置了端口隔离的场景。
  • VLAN间Proxy ARP:需要互通的主机处于相同网段,但属于不同VLAN的场景。VLAN聚合场景。

三、报文转发流程。

1.同一广播域两台主机互访。

两种场景:
在这里插入图片描述

  • 目标IP和自己在同一个网段:将目标IP + mask 进行与运算,发现和目的主机在同一个网段。
    • PC1需要封装数据报文,先去查看自己的ARP表项,是否存在PC2的IP对应的MAC地址。
    • 如果存在直接进行封装,如果不存在进行ARP请求过程。
    • OP字段为1表示该报文为ARP请求报文,ARP请求报文中的发送者MAC地址和发送者IP地址为PC1的MAC地址和IP地址,目标MAC地址为全0的MAC地址,目标IP地址为PC2的IP地址。源MAC地址为PC1的MAC,目标MAC为FF:FF:FF:FF:FF:FF。
    • 交换机在收到ARP请求报文之后,解封装发现是目的MAC全为1的广播包,所以做泛洪处理并将PC1的MAC地址记录在MAC地址表中。
    • PC2接收到交换机泛洪的ARP请求报文之后,解封装发现目标IP是自己,所以PC2将向PC1,回复ARP应答报文并将PC1的IP地址对应的MAC地址记录在自己的ARP表项中。
    • OP字段为2表示该报文为ARP应答报文,ARP应答报文中的发送者MAC地址和发送者IP地址为PC2的MAC地址和IP地址,目标MAC和目标IP地址为PC2的MAC地址和IP地址。源MAC地址为PC2的MAC,目标PC1的MAC。
    • 交换机在收到PC2发送给PC1的ARP应答报文之后,解封装到目的MAC,根据之前记录的MAC地址表,将报文从对应的出接口发送给PC1,并记录PC2的MAC地址生成MAC地址表项。
    • PC1收到ARP应答报文,对报文进行解封装,随即生成PC2的IP对应的MAC地址的ARP表项,并对数据报文进行封装。
  • 目标IP和自己不在同一个网段:将目标IP + mask 进行与运算,发现和目的主机不在同一个网段。
    • PC3需要封装数据报文,先去查看自己的ARP表项,是否存在网关对应的MAC地址。
    • 如果存在直接进行封装,如果不存在进行ARP请求过程。
    • OP字段为1表示该报文为ARP请求报文,ARP请求报文中的发送者MAC地址和发送者IP地址为PC3的MAC地址和IP地址,目标MAC地址为全0的MAC地址,目标IP地址为网关的IP地址。源MAC地址为PC3的MAC,目标MAC为FF:FF:FF:FF:FF:FF。
    • 网关接收到PC3发送的ARP请求报文之后,解封装发现目标IP是自己,所以网关将向PC3回复ARP应答报文并将PC3的IP地址对应的MAC地址记录在自己的ARP表项中。
    • PC3收到ARP应答报文,对报文进行解封装,随即生成网关的IP对应的MAC地址的ARP表项,并对数据报文进行封装。
    • 数据报文封装格式为:源MAC是PC3,目的MAC是网关,源IP是PC3的IP地址,目的IP是PC4的IP地址。
    • 网关在接收到这个数据包之后,对其进行解封装发现目的MAC是自己,但是三层目标IP不是自己。所以查找CPU路由表找到目标IP对应的出接口,在对报文进行重新的封装。
    • 重新封装格式为:源MAC是PC4对应网关的MAC,目的MAC是PC4,源IP是PC3的IP地址,目的IP是PC4的IP地址。
    • 在封装过程中网关需要再次查看自己的ARP表项中是否存在PC4的IP地址对应的MAC地址表。若存在直接进行封装,若不存在则进行ARP请求。此处假设存在,报文直接封装从对应出接口发送给PC4。
2.三层交换机和路由器的区别。
  • 路由器接口数量比较少,如果需要接入大量的网络的话,需要比较多的板卡,硬件的成本会相对比较高。通过CPU维护FIB表项,数据包转发需要CPU处理,转发效率比较低。但是在路由控制和QoS方面考虑,路由器支持丰富的路由策略和QoS,可以更好的控制业务和进行业务优化。
  • 三层交换机:接口多,可以接入大量的网络。数据转发方面,通过一次路由、多次交换实现硬件转发,抓发效率高。在路由控制和QoS上支持的不够丰富,只适合做数据转发,而不能更好的做业务控制。
  • 什么是一次路由多次交换?
    在这里插入图片描述
    此后PC1访问PC2,交换机将直接依据硬件转发表进行转发,转发效率得到极大的提升。
  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晶晶娃在战斗

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值