当前位置: 首页 > 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…...

Onekey终极指南:如何一键自动化获取Steam Depot清单文件

Onekey终极指南&#xff1a;如何一键自动化获取Steam Depot清单文件 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey Steam游戏开发者和MOD创作者们&#xff0c;你是否厌倦了手动获取Depot清单的…...

Sunshine终极指南:三步搭建你的专属游戏串流服务器

Sunshine终极指南&#xff1a;三步搭建你的专属游戏串流服务器 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款开源的自托管游戏串流服务器&#xff0c;专为Moonlig…...

别再硬算d了!用RsaCtfTool一键搞定攻防世界Crypto题(以cr4-poor-rsa为例)

高效攻克CTF密码学挑战&#xff1a;RsaCtfTool实战指南 在CTF竞赛中&#xff0c;密码学题目往往成为选手们又爱又恨的焦点。特别是RSA相关题目&#xff0c;虽然原理清晰&#xff0c;但手动计算过程繁琐耗时。今天我要分享一个能极大提升解题效率的神器——RsaCtfTool&#xff0…...

ESP32音频/显示项目内存告急?手把手教你启用4MB PSRAM并优化内存分配

ESP32音频/显示项目内存告急&#xff1f;手把手教你启用4MB PSRAM并优化内存分配 当你在ESP32上开发音频播放器或驱动TFT显示屏时&#xff0c;是否遇到过程序突然崩溃的情况&#xff1f;屏幕显示出现撕裂&#xff0c;音频播放断断续续——这些很可能都是内存不足惹的祸。ESP32虽…...

WeDLM-7B-Base实战手册:WebUI错误码解读与常见报错修复指南

WeDLM-7B-Base实战手册&#xff1a;WebUI错误码解读与常见报错修复指南 1. 模型概述与特性 WeDLM-7B-Base是一款基于扩散机制&#xff08;Diffusion&#xff09;的高性能基座语言模型&#xff0c;拥有70亿参数。该模型采用创新的并行解码技术&#xff0c;在标准因果注意力下实…...

如何用Red Panda Dev-C++ 7快速掌握C++编程:轻量级开发环境终极指南

如何用Red Panda Dev-C 7快速掌握C编程&#xff1a;轻量级开发环境终极指南 【免费下载链接】Dev-CPP A greatly improved Dev-Cpp 项目地址: https://gitcode.com/gh_mirrors/dev/Dev-CPP 还在为复杂的C开发环境配置而烦恼吗&#xff1f;Red Panda Dev-C 7为你提供了一…...

2025届最火的降重复率神器推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要降低AIGC也就是人工智能生成内容的比例&#xff0c;其核心是要减少机器生成所具有的典型特…...

RRAM加速器中的位级稀疏性与相似性优化技术

1. 项目背景与核心挑战在深度学习领域&#xff0c;计算效率和能耗问题一直是制约神经网络大规模部署的关键瓶颈。存内计算&#xff08;Compute-in-Memory, CIM&#xff09;架构通过将计算单元与存储单元融合&#xff0c;有效减少了数据搬运带来的能耗开销。其中&#xff0c;基于…...

BRDF Explorer核心功能深度解析:从Lambert到Disney BRDF的完整探索

BRDF Explorer核心功能深度解析&#xff1a;从Lambert到Disney BRDF的完整探索 【免费下载链接】brdf BRDF Explorer 项目地址: https://gitcode.com/gh_mirrors/br/brdf BRDF Explorer是一款功能强大的开源工具&#xff0c;专为探索和分析双向反射分布函数&#xff08;…...

解决Dokploy在Alpine Linux上的5大兼容性难题:从容器启动失败到系统依赖冲突的完美方案

解决Dokploy在Alpine Linux上的5大兼容性难题&#xff1a;从容器启动失败到系统依赖冲突的完美方案 【免费下载链接】dokploy Open Source Alternative to Vercel, Netlify and Heroku. 项目地址: https://gitcode.com/GitHub_Trending/do/dokploy Dokploy作为开源的Ver…...