当前位置: 首页 > news >正文

Linux:Network: ARP被动删除的一个情况

今天看到Linux内核里arp代码相关的一个函数,让人想起来很久之前掉进去的一个坑。
说产品的实现里,会存放一个dummy的neighbor(arp记录)在系统里,然后根据这个dummy的记录做一些特殊的处理。
但是当时根本就不知道这个记录的存在,也就无从谈起说要在做设计时考虑它的存在。
然后当时做的是非常普通的操作,只是将一个网卡上的最后的IP地址给删掉,然后就导致这个dummy的记录也被删掉了。
虽然这个dummy-neighbor的属性设置为了permanent。

当时没有看内核代码,现在重新看一下这个删除IP怎么就触发了neighbor的删除的过程。
在arp的代码里有这么一条路,意思是说,当net-device有变动的时候,要通知我,我会做一些处理,其中就包含IP地址发生变化是的处理。
arp_init->register_netdevice_notifier->arp_netdev_notifier->arp_netdev_event(NETDEV_CHANGEADDR)->neigh_changeaddr->neigh_flush_dev->neigh_cleanup_and_release(n);

这样,这个问题的前因后果就捋顺了。

这个功能后续还单门为网卡状态的down做过修改,其中的一个情况是:如果是permanent的记录不会被删;但是对IP的变化处理依然是没有变化,不知道是出于什么样的考虑。可能遵照的原则是,不要改变其他不必要的行为,以免引起不适应的情况。
$ git show 859bd2ef1fc11
commit 859bd2ef1fc1110a8031b967ee656c53a6260a76
Author: David Ah

相关文章:

Linux:Network: ARP被动删除的一个情况

今天看到Linux内核里arp代码相关的一个函数,让人想起来很久之前掉进去的一个坑。 说产品的实现里,会存放一个dummy的neighbor(arp记录)在系统里,然后根据这个dummy的记录做一些特殊的处理。 但是当时根本就不知道这个记录的存在,也就无从谈起说要在做设计时考虑它的存在。…...

『接口测试干货』| Newman+Postman接口自动化测试完整过程

『接口测试干货』| NewmanPostman接口自动化测试完整过程 1 Newman简介2 如何安装Newman?2.1 安装NodeJs2.2 安装Newman2.2 解决Newman不是内部命令 3 Newman使用3.1 Newman如何运行集合?3.2 如何查看帮助文档?3.3 环境变量设置3.4 关于全局变…...

根据商品链接获取拼多多商品详情数据接口|拼多多商品详情价格数据接口|拼多多API接口

拼多多,作为中国最大的社交电商之一,为卖家提供了丰富的商品详情接口。这些接口可以帮助卖家快速获取商品信息,提高销售效率。本文将详细介绍如何使用拼多多商品详情接口,以及它的优势和注意事项。 一、拼多多商品详情接口概述 …...

KaiwuDB 监控组件及辅助 SQL 调优介绍

一、介绍 KaiwuDB 具备完善的行为数据采集功能,此功能要求 KaiwuDB 数据库系统 C/E/T 端不同进程的不同维度的指标采集功能十分完善;在不同进程完成指标采集后,会通过 Opentelemetry 和 Collector 将指标存入 Prometheus,以便查找…...

双11再创新高!家电行业如何通过矩阵管理,赋能品牌增长?

双11大促已落下帷幕,虽然今年不再战报满天飞,但从公布的数据来看,家电行业整体表现不俗。 根据抖音电商品牌业务发布的收官战报,家电行业创造了成交新纪录,整体同比增长125%。快手官方数据显示,消电家居行业…...

苏东坡最经典的诗词

苏东坡最经典的诗词_诗词_百度汉语 水调歌头明月几时有 [作者] 苏轼 [朝代] 宋 丙辰中秋,欢饮达旦,大醉,作此篇,兼怀子由。明月几时有?把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去,又…...

iterator遍历赋值

在Java中,迭代器(Iterator)是用于遍历集合的对象。它提供了一种顺序访问集合元素的方式,但是不能直接用于给特定索引赋值。 迭代器只能用于遍历集合并访问集合中的元素,而不能通过迭代器来修改集合元素的值。如果你想…...

【从删库到跑路】MySQL数据库 — E-R图 | 关系模型

🎊专栏【MySQL】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 文章目录 🌹简述什么是E-R图⭐核心概念 🌹E-R图…...

网工内推 | 美的、得力集团,包吃包住,IE认证优先,14薪

01 美的 招聘岗位:网络工程师 职责描述: 1.负责IT网络设备、IDC机房的日常维护巡检、监控和管理; 2.负责路由、交换、防火墙、无线控制器、AP等网络设备的开通、调整、优化升级; 3.负责公司OT、IT网络规划,项目实施以…...

java springboot在测试类中构建虚拟MVC环境并发送请求

好 上文java springboot在测试类中启动一个web环境我们在测试类中搭了一个web环境 那么 下面就要想办法弄一个接口的测试 这边 我们还是要在controller包下去创建一个 controller类 写一个访问接口 这里 我创建一个 TestWeb.java 这里 我们编写代码如下 package com.example.…...

python运算符重载之字符串显示和右侧加法

1 python运算符重载之字符串显示和右侧加法 1.1 重载字符串显示 1.1.1 str和repr python调用prin()t时,自动调用__str__和__repr__, python调用str()时,自动调用__str__和__repr__, python调用repr()时,自动调用_…...

卷积神经网络(AlexNet)鸟类识别

文章目录 一、前言二、前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)2. 导入数据3. 查看数据 二、数据预处理1. 加载数据2. 可视化数据3. 再次检查数据4. 配置数据集 三、AlexNet (8层)介绍四、构建AlexNet (8层)网络模型五、…...

hive 报错return code 40000 from org.apache.hadoop.hive.ql.exec.MoveTask解决思路

参考学习 https://github.com/apache/hive/blob/2b57dd27ad61e552f93817ac69313066af6562d9/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java#L47 为啥学习error code 开发过程中遇到以下错误,大家觉得应该怎么办?从哪方面入手呢? 1.百…...

Java Web——XML

1. XML概述 XML是EXtensible Markup Language的缩写,翻译过来就是可扩展标记语言。XML是一种用于存储和传输数据的语言,它使用标签来标记数据,以便于计算机处理和我们人来阅读。 “可扩展”三个字表明XML可以根据需要进行扩展和定制。这意味…...

【.NET Core】Task应用详解

【.NET Core】Task应用详解 文章目录 【.NET Core】Task应用详解一、概述二、Task用法应用2.1 通过New实例化Task2.2 通过Factory中StartNew方法2.3 通过Run方法 三、让Task任务按顺序执行四、通过异步Run方法异步执行顺序Task五、创建带有返回值的Task<TResult>六、Task…...

convertRect:toView 方法注意事项

这是在网上找到的一张图 我们开发中有时候会用到左边转换&#xff0c;convertRect:toView 通常情况下&#xff0c;我们回这样使用 CGRect newRect [a convertRect:originframe toView:c];其中newRect和 originframe的size相同&#xff0c;只改变origin newRect.origin a…...

Java实现王者荣耀小游戏

主要功能 键盘W,A,S,D键&#xff1a;控制玩家上下左右移动。按钮一&#xff1a;控制英雄发射一个矩形攻击红方小兵。按钮控制英雄发射魅惑技能&#xff0c;伤害小兵并让小兵停止移动。技能三&#xff1a;攻击多个敌人并让小兵停止移动。普攻&#xff1a;对小兵造成基础伤害。小…...

【黑马甄选离线数仓day04_维度域开发】

1. 维度主题表数据导出 1.1 PostgreSQL介绍 PostgreSQL 是一个功能强大的开源对象关系数据库系统&#xff0c;它使用和扩展了 SQL 语言&#xff0c;并结合了许多安全存储和扩展最复杂数据工作负载的功能。 官方网址&#xff1a;PostgreSQL: The worlds most advanced open s…...

C# 中using关键字的使用

在C#中我们还是很有必要掌握using关键字的。 比如这样&#xff1a; string path “D:\data.txt”; if (!File.Exists(path )) {File.Create(path); File.WriteAllText(path,"OK"); } 首先我创建…...

16 redis高可用读写分离方案

在前面说的JedisSentinelPool只能实现主从的切换&#xff0c;而无法实现读写的分离。 1.哨兵的客户端实现主从切换方案 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</arti…...

DataPrep与Pandas对比:为什么选择低代码数据准备

DataPrep与Pandas对比&#xff1a;为什么选择低代码数据准备 【免费下载链接】dataprep Open-source low code data preparation library in python. Collect, clean and visualization your data in python with a few lines of code. 项目地址: https://gitcode.com/gh_mir…...

从《辐射》游戏到精准放疗:聊聊DRR技术如何悄悄改变我们的医疗体验

从《辐射》游戏到精准放疗&#xff1a;聊聊DRR技术如何悄悄改变我们的医疗体验 还记得《辐射》系列游戏中那个标志性的Pip-Boy设备吗&#xff1f;主角只需抬起手腕&#xff0c;就能瞬间扫描周围环境并生成全息影像。这种科幻场景如今已在医疗领域以更精密的形式实现——DRR&…...

手把手教你用 LIO-SAM 在 ROS Noetic 里跑通自己的第一个激光SLAM demo

从零到一&#xff1a;LIO-SAM激光SLAM实战速成指南 1. 环境准备与快速部署 在Ubuntu 20.04和ROS Noetic环境下搭建LIO-SAM开发环境&#xff0c;就像组装一台高性能赛车——需要精准的部件搭配和细致的调试。不同于传统SLAM方案&#xff0c;LIO-SAM融合了激光雷达与IMU数据&…...

在Ubuntu 22.04上搞定gnina:一个生物信息学小白的CUDA 11.8+Python 3.10完整配置手记

在Ubuntu 22.04上搞定gnina&#xff1a;一个生物信息学小白的CUDA 11.8Python 3.10完整配置手记 作为一个刚踏入计算化学领域的科研菜鸟&#xff0c;第一次听说gnina这个结合了传统分子对接和深度学习技术的工具时&#xff0c;内心既兴奋又忐忑。兴奋的是它能用卷积神经网络提升…...

从安防摄像头到网页直播:手把手教你用FFmpeg把RTSP流转成HLS(m3u8),解决浏览器播放难题

从安防摄像头到网页直播&#xff1a;FFmpeg实现RTSP转HLS全链路解决方案 当我们需要将企业园区、仓库或门店的安防监控画面集成到内部管理系统时&#xff0c;总会遇到一个技术瓶颈——现代浏览器无法直接播放摄像头输出的RTSP流。本文将彻底解决这个痛点&#xff0c;通过FFmpeg…...

如何用FakeLocation实现应用级精准虚拟定位:3步搞定位置伪装

如何用FakeLocation实现应用级精准虚拟定位&#xff1a;3步搞定位置伪装 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 你是否曾想过&#xff0c;让某个应用认为你在巴黎埃菲尔铁…...

别再为网络数据收发头疼了!一个C++ Buffer类搞定非阻塞I/O中的粘包与内存管理

C高性能网络编程&#xff1a;构建零拷贝缓冲区的艺术与实践 深夜调试网络服务时&#xff0c;你是否经历过这样的崩溃瞬间&#xff1f;客户端快速发送数据包导致服务端内存暴涨&#xff0c;或是TCP粘包让协议解析变得支离破碎。这些看似简单的数据收发问题&#xff0c;往往成为压…...

Linux内核 命名空间机制

Linux Namespace 是内核提供的轻量级资源隔离机制&#xff0c;核心是让不同进程组看到独立的系统资源视图&#xff0c;是容器&#xff08;Docker、K8s&#xff09;的底层基石。它隔离的是进程对资源的可见性&#xff0c;而非物理资源本身&#xff0c;因此比虚拟机更轻量化本质&…...

比 Navicat 轻量!一款现代化轻量级数据库客户端!

大家好&#xff0c;我是 Java陈序员。 对于开发者和 DBA 而言&#xff0c;一款高效、轻量、兼容多数据源的数据库客户端&#xff0c;能极大提升日常工作效率。市面上多数客户端要么高级功能需要付费&#xff0c;要么基于 Electron 架构&#xff0c;存在体积大、资源占用高、启动…...

Zotero插件市场:5分钟打造你的专属学术工具箱终极指南

Zotero插件市场&#xff1a;5分钟打造你的专属学术工具箱终极指南 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing, installing, and reviewing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons 还…...