ARP地址解析协议,ARP代理

数据封装时,会封装自己的IP地址和目的IP地址还有自己的mac地址和目的mac地址

ARP - 地址解析协议作用:

将在已知IP地址的情况下,求与之对应的mac地址。

ARP协议 是基于数据链路层的2.5层协议。

同网段的情况下

首先主机会对比对方是否和自己在同一网段下

计算方法:

自己的IP和自己的掩码

 对方的IP和自己的掩码

如果这俩计算在同一网段那么就查看本地的arp缓存表,看看是否有IP地址对应的mac地址,有的话进行数据封装,直接发送数据,没有的话发送ARP广播请求mac地址

地址都已经配置好并且在PC1的Ethernet0/0/1接口抓包

没有ARP缓存表的情况下(在主机上查看ARP表,没有看到)

例:主机192.168.1.1去ping另一台主机192.168.1.2,知道了源目IP(目的IP是你自己输入去ping的所以目的IP也知道)和源mac,但是不知道目的mac,所以发送ARP广播包去请求mac地址如下图


会发现该报文以broadcast(广播形式发送)其中目的mac(target-mac address)为FF-FF-FF-FF-FF-FF,代表暂时不知道mac地址,所以去请求mac地址【后面那段英文who has 192.168.1.2? tell 192.168.1.1(谁是192.168.1.2,请告诉192.168.1.1)】

接下来PC2收到该广播报文通过查看target-ip看是否是自己的接收端口的IP,如果是,则进行回复;如果不是,则丢弃,结果发现目的IP是自己就发送arp回复包(单播),如下

然后发现该报文中的源目IP和源目mac都已经封装好,回复给192.168.1.1【后面那段英文,192.168.1.2 at 54:89:98:fb:31:0a(192.168.1.2 在这个54:89:98:fb:31:0a mac地址下) 】

由于告诉了PC1 192.168.1.2的mac地址那二者就可以进行通信了

有ARP缓存表的情况下

此时去ping192.168.1.2

由于已经知道IP地址和mac地址对应的关系了所以直接进行数据封装(那个spanning tree是交换机发送的生成树报文,与本文无关)

不同网段的情况下:

首先主机会对比对方是否和自己在同一网段下

计算方法:

自己的IP和自己的掩码

对方的IP和自己的掩码

如果这俩计算在不同网段那么就查看本地的arp缓存表,看看是否有网关IP地址对应的mac地址,有的话进行数据封装,直接发送数据,没有的话发送ARP广播请求网关的mac地址

基础配置如下

此时arp表为空

在PC1去pingPC2并且在PC1的接口下抓包

会发现主机先去请求了网关的MAC地址,然后网关给它回了个arp回复包,然后主机直接发送数据(第一个ping包timeout是因为发ARP请求包,时间太长导致的)

免费ARP:

在本文中用于地址冲突检测:

配置了一个IP地址后,会发送免费IP地址(源目IP地址都是自己)在广播域内寻找有没有设备使用这个192.168.1.1地址,如果有设备收到并且回包(代表该设备使用该地址,这个是地址冲突),没有回包的情况是正常的

没有回包代表该广播域内没人使用这个IP地址,所以该设备可以使用这个地址

代理ARP(ARP欺骗)

实验环境:

AR1配置了接口IP地址

AR2配置了接口IP地址

AR2配置了静态路由(出接口):

[AR2]ip route-static 192.168.2.0 24 g0/0/0

AR3配置了接口IP地址

AR3配置了静态路由(出接口):

[AR3]ip route-static 192.168.1.0 24 g0/0/0

然后用AR2pingAR3

ping不通

此时在中间路由器AR1两个接口开启ARP代理

[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]arp-proxy enable 
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]arp-proxy enable 

接下来用AR2pingAR3

图中R2和R3处于不同的广播域中,R2和R3在相互通信时,R2先发送了一个ARP广播数据包,请求R3的mac地址,但是由于R2是192.168.1.0网段,而R3是192.168.2.0网段,R2和R3之间是跨网段访问的,也就是说R2的ARP请求会被R1拦截到,然后R1会封装自己的接口mac地址为目的地址发送一个ARP回应数据报给R1 (骗AR2说你要寻找的目的IP地址是这个mac地址),然后R2就会代替R1去访问R3。

在路由器AR2上查看arp表:

查看AR1的g0/0/0的接口mac:

可以发现去192.168.2.0 网段对应的mac地址是AR1的g0/0/0接口下的mac地址

这个过程R2以为自己访问的是R3,实际上真正去访问R3的是R1,R2却并不知道这个代理过程

这就是所谓的ARP代理,通常用于跨网段访问。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值