| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 验证arp的reply回答机制 -> 正文阅读 |
|
[系统运维]验证arp的reply回答机制 |
??????? 给研发定位过一个故障,一个核心网的嵌入式设备,接基站的下连网口和接大网的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响应。 这个参数在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 查看路由情况: 确定访问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在同一网段。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 0:28:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |