ARP解析

目录

ARP载荷报文结构:

ARP 应答过程:

1.R1广播寻找对端

2.对端单播回发

 以下是ARP抓包报文情况:(ARP请求包和应答包) 

ARP缓存表: 

ARP代理:

代理过程:(静态路由为例)

应用场景:

      1.同一网段不同广播域(用的比较少)

        2.vlan内的ARP代理 (用的更少)

        3.vlan内的ARP代理 (更更离谱)

免费VRP


ARP载荷报文结构:

Hardware type(硬件类型)[2字节]:表示硬件(二层)地址类型,通常是以太网的地址类型。
Protocol type(协议类型)[2]: 表示协议地址类型,通常是IPv4。
Hardware size(硬件地址长度)[1]:指示硬件mac地址的长度,对于以太网取值是6个字节。
Protocol size(协议地址长度)[1]:指示协议地址的长度,对于IPv4是4个字节。
Opcode(操作)[2]: 指示ARP请求request或应答reply。
Sender mac address(发送者mac地址)[6]: 发送ARP请求或应答的设备的MAC地址。
Sender ip address(发送者ip地址)[4]:  发送ARP请求或应答的设备的IP地址。
Target mac address(目标mac地址)[6]: 用于ARP请求中的虚拟字段,因为ARP请求时目标设备的MAC地址是未知的。
Target ip address(目标ip地址)[4]: 目标设备的IP地址。

ARP 应答过程:

R1R2代替pc主机
1.R1广播寻找对端

假设192.168.1.100/24第一次向192.168.1.101/24发送数据包时,R1构造要发送的数据包,知道:源MAC:R1 E0/0接口MAC;源IP:R1 E0/0接口IP地址192.168.1.100;目的IP:R2 E0/1接口IP地址192.168.1.101  ,但目的MAC未知,于是R1在R2正式通信前,R1需要发一个ARP的request报文请求R2的mac地址,由于不知道192.168.1.101究竟是哪台设备,所以会向同网段内/同一广播域所有设备发出询问(广播)。

类比一下:公司老总开庆祝会,大屏幕随机抽取员工送冰箱,抽到的人包邮送到家,这时小彭被抽中了,老总认识小彭吗?不认识,所以他就广播询问大家,哪个是小彭?

好,收到小彭答复后,小彭附上自己的家庭住址,老总在发件人上填上自己名字和发货地点,再填上小彭的名字和家庭住址后才能发货是吧。

但不同的是,第一次报文里的目的mac不可或缺,所以用FFFF.FFFF.FFFF代替。

在三层IP地址中,广播地址是IP地址里的最后一个地址,故同理,二层广播mac地址就是FFFF.FFFF.FFFF(MAC地址的取值空间是48bit,换成十六进制数表示就是12位) 

2.对端单播回发

R2收到R1ARP的request报文后学习到R1的mac地址、IP地址,再将自己的mac地址、IP地址填入ARP的reply报文中发回。

 以下是ARP抓包报文情况:(ARP请求包和应答包) 

 

ARP缓存表: 

R1收到R2的ARP应答包,记录R2包中的源mac地址、源IP地址(R2的mac、IP地址),存入自己的缓存表里,到了下次R1和R2再次通信时,就可以通过查找缓存找到R2的IP对应的mac地址,不再需要发送ARP请求,从而减少网络流量和提高通信速度。

ARP缓存表通常是设备上的一个表格,其中列出了局域网中已知的IP地址与对应的MAC地址。该表具有一定的生存期,一段时间没有通信活动后,老化计时器到期,主机系统探测几次都没应答,表中的条目就会因过期并被删除动态表)。(如若主机设备重启,ARP表也会立刻消失)。在某些情况下,设备也可以手动清除ARP缓存表,以便重新获取最新的MAC地址信息。

一般来说,不同操作系统的老化计时器互不相同:Windows10分钟;华为华三20分钟。但随着操作系统的不断更新和网络设备的改进,ARP老化计时器的默认值也可能被调整为更短的时间,如2分钟,具体了解建议查阅该设备型号的文档或手册此外管理员也可以对设备进行自定义配置,修改缓存表老化时间。

ARP代理:

        即路由器或三层交换机的接口代替主机(接收方)给ARP请求者发送ARP应答包

代理过程:(静态路由为例)
静态路由的ARP代理

直连网络路由器发送数据包前,首先会对目的IP地址进行ARP解析。

1.当静态路由配置成出接口时,路由器会认为目的网络是直连网络,连接在某个接口下。如R1配置一条ip route 25.1.1.0 255.255.255.0 e0/2,即在R1的路由表中会出现如下路由

R1出接口静态路由的show ip route

即代表R1拥有25.1.1.0/24的条目,并且R1认为25.1.1.0/24网络是直连网络,因此当R1发送数据包时,ARP报文直接请求IP是25.1.1.5的MAC地址。R2收到后,发现25.1.1.5并不在本地,但是自己本地有25.1.1.0/24的路由条目,因此R2这台路由器会响应ARP请求(这个过程就称之为ARP代理)。此过程结束后,可以发现R1的ARP表项中IP与MAC并不是真实映射。同时,当25.1.1.0/24有多个目的IP时,这些IP都将出现在ARP表项中,且对应的MAC地址均为R2的F0/0接口。

2.当静态路由配置成下一跳IP地址的时候,类似于网络,只要将该路由对应的数据包发送给下一跳IP地址即可。如R1配置一条ip route 26.1.1.0 255.255.255.0 12.1.1.2,在R1的路由表中会出现如下路由:

下一跳IP地址静态路由的show ip route

如R1收到一个数据包ping 26.1.1.6且静态路由配置为下一跳IP地址的时候,路由器会认为,要去往26.1.1.0/24网络,只要将数据包发往12.1.1.2即可,因此当R1有去往12.1.1.0/24网络的数据包时,ARP报文请求12.1.1.2的MAC地址。R2收到后发现是本地的IP地址因此对其进行ARP响应。此时R3上12.1.1.2的ARP条目是真实映射,并且无论26.1.1.0/24内有多少IP地址,R1要去往该网络只需要这一个ARP条目

故:配置静态路由以下一跳更好

应用场景:
      1.同一网段不同广播域(用的比较少)

        需要互通的主机(接收方)没有没有配置网关,并且这两台主机(发送方和接收方)处于同一网段,但在不同的物理网络里

  • 同一广播域:连接到同一个交换机(或多台交换机直连)
  • 同一网段:具有相同的网络前缀。
  • 同一广播域:意味着设备可以通过广播消息相互通信;同一网段:意味着设备的IP地址处于同一个IP地址范围内,使它们可以直接通信而不需要通过路由器。
  • 同一个网段的设备通常也属于同一个广播域,而一个网段可能包含多个广播域(通过使用VLAN等技术)。网段用于将IP地址划分为逻辑组,而广播域用于决定设备之间广播消息的传播范围。
        2.vlan内的ARP代理 (用的更少)

        需要互通的主机处于相同vlan,但又是同一网段(不同子网),如:

  • 跨楼层或跨建筑的网络:当一个VLAN覆盖了多个楼层或建筑时,每个楼层或建筑可能有自己的子网,但它们都位于同一个VLAN中,以便实现直接通信。

  • 虚拟局域网扩展(VLAN Extension):有时候为了实现特定的网络要求,需要将多个不同的子网划分到同一个VLAN中。

        3.vlan内的ARP代理 (更更离谱)

         需要互通的主机处于同一网段,但vlan不同,基本不会出现

免费VRP

        不知道大家配置时,有没有遇到过“error:主机IP地址冲突”,就是免费ARP造成的。

        原理:当一台主机刚配置好一个IP后,他会广播全网发送一个,目的mac地址全0、目的IP是自己的请求包,如果有设备回应,便证明IP地址冲突。

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值