ARP家族--ARP,代理ARP,Gratuitous ARP

ARP背景:

    当思考主机A和主机B互相通信,人们更关注的是域名或者IP地址,但是在内核层面,机器更关注的链路层地址(MAC地址),而不关注上层的应用。主机之间如何获取MAC地址,那么就引入了ARP的概念作用:ARP为IP地址到MAC地址对应提供动态映射

帧格式:

wireshark视图:

总结:

    可以看出,ARP协议是工作在二层之上,但是并没有经过IP报头的封装,所以并不是三层,看作是二层的附属协议是正确的;

工作原理:

    1. 当主机之间需要互相通信,需要对端的IP地址,MAC地址等信息,源主机必须至少准备以上条目(linux/windows系统可以通过arp -a获取)

    2. 当MAC地址未知,则源主机开始构建ARP数据帧,MAC目的地址为全F(广播帧),此时通过arp -a查看到的状态是incomplete,如果一直没有获取到地址,存活时间是3min

    3. 同在一个局域网的所有主机都能收到广播帧,对帧进行解封后,获取目的IP地址,如果是本机,则进行处理,如果不是,则在用户进程丢弃数据

    4. 目的主机通过发送ARP响应(携带本机的MAC地址)来告知源主机

    5. 源主机获取了目标MAC地址后,即可完成帧的封装。此时arp -a查看的是IP地址和MAC地址的映射关系,映射表默认存活时间是20min

代理ARP背景:

    如果ARP请求是从一个网络主机发往另外一个网络上的主机(前提是源主机认为此数据是在同一个局域网,只是路由器视图中,判断出数据是要经过路由转发,造成这种场景一般都是经过子网划分,而主机没有正确配置),那么连接这两个网络的路由器用接口的MAC地址回应源主机的ARP请求。

代理ARP的报文:

    如正常报文,主机并不感知;

工作原理:

    1. Host 1想和Host2通信,初始,并没有host2的MAC地址,Host1判断Host2与本机处于同一局域网,则Host1发送arp请求

    2. 路由器收到ARP请求,发现目的地址172.28.101.0/24需要进行IP路由寻址,而本路由器知道如何寻址

    3. 路由器发送ARP响应,欺骗Host1,Host2的MAC地址是xxx(本路由器的eth0的mac地址)

    4. Host1收到ARP应答,无感知正确与否,下次直接封装路由器的MAC地址

    5. 路由器收到报文后,进行路由转发,将数据转发出去;

总结:

    1. 路由器必须知道如何去往目的网络,否则ARP代理无效

    2. 此应用场景,最常见于园区网,管理员没有有效进行规划和管理,造成用户主机错误配置,生产中,如果有设备割接替换,发现配置无特大改动,而割接完毕后(友商设备可能默认关闭代理arp),多用户无法上网,应该分析是否用户端配置错误。可临时开启代理ARP来恢复网络。

 

免费ARP背景

  通过主动发送ARP请求,查询自己的IP地址(将ARP请求中发送者和目标ip 地址都设置成为本机)

免费ARP报文--wireshark

  可以看出,与普通的ARP请求报文不一致的就是target ip和sender ip是一致的;

适用场景:

    1. 通过发送免费ARP,获取同一个局域网是否有IP地址冲突现象

    2. 通过发送免费ARP,来刷新MAC地址表项,常用语VRRP主备切换,防火墙HA切换等场景

    3. DHCP分配地址之前,用于确认地址是否被占用

    

    

 

 

 

 

    

    

    

    

  

  

 

 

 

 

  

 

 

 

 

 

  

转载于:https://www.cnblogs.com/System-hjf/p/8594809.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值