到底什么时候创建的ARP表项
一周前遇到一个问题,比较简单但值得推敲。到底什么时候创建arp邻居项呢?是在查路由的时候呢,还是在实际走路由的时候?
我们知道,在2.6.32的内核里,在查路由操作的最后,会有一个arp bind neighbour的操作,这个时候就会创建arp表项,即便只是查一下路由,并没有数据包会发送,也会创建这个表项,比如调用一下UDP的connect操作。
然而在3.5内核之后,路由查找子系统发生了比较大的重构,neighbour管理和路由表管理彻底分开了,因此在查找路由的时候,也就不再会bind neighbour了,只有在实际的数据包发送的时候,在ip_finish_output2才会实际去bind neighbour。虽然这个改动看似没有什么影响,但是却可能带来一些诡异的问题。
一般而言,系统不会为收到的那些“免费ARP”创建表项,这种ARP进行的只是一些初始化操作,并不是以通信为目的的,因此在Linux系统中会设置arp_accept为0,它的含义表示,如果收到一个ARP回应,该ARP回应在本地找不到任何与其对应的ARP表项,那就不处理它。
在使用arping的时候,2.6.32内核和3.5以后的内核在行为出现了差异。我们知道arping使用的是packet套接字发包的,也就是说数据包不走IP路由,直接由dev发送出去,这意味着在3.5以后的内核中,ARP表项在使用arping的时候是始终不会被创建的,那么2.6.32内核呢?这要看情况。
如果在arping的数据包发送前,曾经有查找路由表的操作,那么ARP表项就会被创建(此时必须用ip neigh ls nud none才能看得到),如果arping命令加上了-s选项指定了源IP地址,就不会调用connect,不会查找路由表自然也就不会创建ARP表项了。
因此,在arp_accpet参数为0的情况下,对于2.6.32内核使用arping的时候,如果指定了-s选项,那么当ARP Reply到达的时候,是不会创建ARP条目的,如果没有指定-s选项,那么当ARP Reply到达的时候,便会创建ARP条目(因为connect调用已经创建了ARP表项)。
哪个更合理?到底是查找路由时创建ARP表项还是走路由时创建ARP表项,这是一个问题。
到底什么时候创建的ARP表项相关推荐
- 进程创建fork--文件表项继承
进程创建fork–文件表项继承 子进程继承父进程的文件描述表,不继承共享文件表项和iNode. 父进程创建一个子进程后,文件表项中的引用计数器加1变为2,当父进程操作close操作后,计数器减1,子进 ...
- 配置基于接口的ARP表项限制和端口安全(限制用户私自接入傻瓜交换机或非法主机接入)
应用场景:为了防止未授权用户接入网络.用户私自接入交换机.路由器等设备,给公司网络管理带来安全隐患.通过相关技术手段给予禁止,方法有如下二种:配置端口安全和配置基于接口的ARP表项限制 分别介绍二种方 ...
- OSPF P2P接口配置arp静态ARP表项
一.题目拓扑及要求 实验拓扑如上所示,现在要求在AR1和AR2之间配置OSPF(要求使用OSPFv2)实现路由信息交换,最终实现AR1和AR2的互通.实验拓扑非常简单,但是问题的关键在于AR1和AR2 ...
- 华为网络设备交换机路由器查看ARP表项命令方法
描述:华为网络设备交换机路由器查看ARP表项命令方法 命令: display arp
- java导出的文件名带正斜杠_如何在名称中创建带正斜杠的注册表项
我需要创建以下注册表项 HKLM:\software\bmc software\control-m/agent 但由于在"agent"之前的正斜杠而出现问题 创建没有正斜杠的条目我 ...
- 如何刷新mac、arp地址表项?
Switch#show mac address-table //查看MAC地址表项 Switch#clear mac address-table dynamic //清除动态MAC地址表项 组网拓扑 ...
- windows10 修复print spooler无法启动问题 错误代码:0x8007076b 无法创建终结点映射表数据库项
问题: 打印东西的时候发现打印机找不到了,后来发现是print spooler没有启动. 输入win+R,输入services.msc,找到print spooler点击启动, 报错显示无法启动,错误 ...
- 邻居表项的mcast_solicit数量
mcast_solicit和mcast_resolicit控制使用多播发送邻居地址探测报文的次数,对于arp协议,内核默认的mcast_solicit为3. 通过PROC文件mcast_solicit ...
- HCIE面试题之交换机和路由器收到未知表项数据包如何处理
交换机和路由器收到未知表项数据包如何处理 一.交换机是依据数据帧中DMAC查找设备表项进行转发的. 那么此时就会涉及对于未知单播,未知组播,未知广播的处理方式 收到未知单播数据帧,泛洪并接口记录下MA ...
最新文章
- 如何获得Oracle系统性能统计? Oracle大型数据库系统在AIXUNIX上的实战详解 集中讨论 14...
- openFeign 服务接口的调用03—— OpenFeign 超时控制
- aix oracle 10.2.0.1 升级 10.2.0.4,install oracle 10r2 for aix
- vb6如何判断文件是否存在_使用boost.filesystem检查文件是否存在的正确姿势
- Android中的onWindowFocusChanged()方法详解
- 哇撒!这几个SpringBoot前后端分离项目(附源码),star过千,快去收藏夹吃灰吧。。。...
- ARC070D No Need
- python爬网页html乱码问题
- 服务器极光推送消息怎么设置,服务器极光推送消息
- python中snip_Snip滚动截屏_腾讯Snip For Mac官方下载-华军软件园
- C#调用usb摄像头的实现方法
- Compose主题切换——让你的APP也能一键换肤
- c 语言代替字母,【c语言】将“China”译成密码,密码规律:用原来字母后边第4个字母代替原来的字母。...
- 国家4A级旅游风景区安化云台山欢迎您的到来
- Python学习(1)OpenCV读取图片
- FinalSub手拍唱词字幕软件
- N78接班N73的九大显著改进
- 一种基于区块链的场外交易平台
- 【玩转CSS】一文带你了解浮动
- 【譯】11種不同的糖
热门文章
- 苏州经贸学院计算机,苏州经贸职业技术学院教务管理系统入口https://www.szjm.edu.cn/jwc/...
- i3 10100Y怎么样 相当于什么水平
- 软件测试方式应该倾向哪一种?
- linux模式docker中使用mysql
- python计算机二级相关操作
- Rails源代码分析(22):ActionController::Caching(6) Sweeping
- 亚太融媒 |「APEC双碳」数据集成与直观显现提升管理效率 | APEC数据+
- ubuntu高效简单安装NVIDIA显卡驱动
- 利用cesiumlab将倾斜摄影osgb数据转换成cesium加载需要的b3dm数据
- ubuntu root 设置