验证arp的reply回答机制

30 篇文章 2 订阅
14 篇文章 1 订阅

        给研发定位过一个故障,一个核心网的嵌入式设备,接基站的下连网口和接大网的ggsn网卡接在同一交换机下时,ssh很难登录上去,ping时通时断。当时定位发现,长ping时,ping的request消息的目的mac地址发生了变化,和正常回包的mac最后一段有差异,过滤arp发现,有arp应答消息改变了mac地址,串口登录嵌入式设备,发现这个mac地址是设备的一个网卡的mac,设备有时发的arp的reply正常,有时不正常。不正常时,用非本网口的mac地址回答其他网卡的arp请求。最后用一个可划分vlan的三层交换机进行vlan隔离,两个网卡接在不同的硬件vlan中解决的问题。

    查找资料,得知arp的reply机制有如下规定:

arp_ignore参数的作用是控制系统在收到外部的arp请求时,是否要返回arp响应。
  arp_ignore参数常用的取值主要有0,1,2,3~8较少用到:
0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。
1:只响应目的IP地址为接收网卡上的本地地址的arp请求。
2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。
3:如果ARP请求数据包所请求的IP地址对应的本地地址其作用域(scope)为主机(host),则不回应ARP响应数据包,如果作用域为全局(global)或链路(link),则回应ARP响应数据包。
4~7:保留未使用
8:不回应所有的arp请求

这个参数在linux配置文件里:

 验证方法:一台服务器有192.168.205.18/24的eth0和172.102.201.100的eth2的ip设置,pc的ip是192.168.205.201和服务器在不同的交换机下,但vlan是通过交换机的trunk口打通的,就是说205网段arp广播消息是可达的。现在给pc添加一个172.102.201.145/24的地址,服务器修改配置文件里的arp_ignore为0和1,用ping一下eth2的172.102.201.100,查看是否从eth0收到查询eth2的arp请求消息,是否有arp应答消息?

1、设置arp_ignore为0,arp请求的目的ip只要是服务器上配置的ip的请求,无论是否是本网口的ip,都发reply消息,而且mac地址是收到消息网卡的mac地址,查看结果。

echo  0 >> /proc/sys/net/ipv4/conf/eth2/arp_ignore
echo  0 >> /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo  0 >> /proc/sys/net/ipv4/conf/default/arp_ignore

查看路由情况:

确定访问172.102.201.0走直连路由。

打开抓包,cmd下arp  -d,去ping 172.102.201.100。

而这个地址20:04:0f:ef:89:d4是服务器eth0的mac地址,见下图:

 wireshark看结果:

 结论:arp_ignore为0,只要是arp的目的ip是本服务器的上的ip,都响应。而且用收到消息的网卡mac地址响应。

2、arp_ignore改成1,只回答收到arp请求目的ip是网卡本身配置的ip的请求,其他不响应

 

 

显然,这时结果是无法访问目的主机,要不到mac地址。

wireshark里有下面显示:

再去ping192.168.205.18,查看mac缓存表

目的ip是网卡的ip,是响应的。

用测试软件构造一个arp包,源ip是192.168.1.100,目的ip是192.168.208.18的包,测试是应答的。

 

 源ip不是和目的ip不在同一网段,但目的ip是网卡的配置ip,也响应。

 结论:当arp_ignore为1时,只验证arp目的ip是否是接收arp消息的网卡配置的ip,是就应答

 3、arp_ignore改成2,只回答收到arp请求目的ip是网卡本身配置的ip的请求,而且源ip还必须和本网口ip在同一网段,否则不响应。

 用测试软件构造一个arp包,从网卡上发出,看看源ip是192.168.1.100

发出后发现arp无响应

 

ping172.102.201.100,结果无法访问目标主

 而去ping192.168.205.18,eth0自身的ip,是能ping通。

 用发包测试软件构造一个arp请求包,源ip是192.168.1.100,目的ip是192.168.205.18的是服务器eth0的ip。

 

 结论:arp_ignore设置为2,只有目的ip是本网口配置ip,而且还验证源ip是否是和配置ip在同一网段。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值