Linux:169.254.0.0/24路由的来龙去脉

2023-11-12

        在Linux中,发现每次系统启动时,都会将(169.254.0.0/16)路由启动并将其添加到路由表中。但是并不知道这条路由具有什么功能和它到底来自于哪里?

        要想搞清楚路由(169.254.0.0/16)究竟来自哪里并且它的作用是什么?首先需要搞明白两个概念

zeroconf

        “zeroconf”或“Zero Configuration Networking” 是一种无需额外配置即可自动创建IP地址网络的技术。也被称为 “Automatic Private IP Addressing”(APIPA)。

        zeroconf规范的提出者是Apple公司,其目的是让非专业用户也可以便捷的连接各种网络设备,例如计算机,打印机等。整个搭建网络的过程都是自动实现。如果没有“zeroconf”,用户必须手动,或者利用对应的服务(例如DHCP、DNS)对网络进行配置。这些过程对非技术用户和新用户们来说是很一件难的事情。

        zeroconf的出现是问了解决三个问题:

  • 为网络设备自动分配可用IP地址
  • 解析计算机主机名
  • 自动发现网络服务(如打印机等)


zeroconf的地址选用

        对于Link-local address,IPv4使用的特殊保留地址169.254.0.0/16,在RFC3927中所描述。作用是当DHCP客户端在超时和重试后扔找不到对应的DHCP服务器,它将随机从该网络(`169.254.0.0/16`)中获取地址。这样可以与无法获取DHCP地址的主机进行通信。

如何禁用zeroconf

        要在系统引导期间禁用zeroconf路由,需要编辑/etc/sysconfig/network文件,配置以下内容

NETWORKING=YES
HOSTNAME=localhost.localdomain
NOZEROCONF=yes

 169.254.0.0/16的应用

在calico中就使用了这个地址169.254.0.0/16

default via 169.254.1.1 dev eth0
169.254.1.1 dev eth0 scope link

        这个IP地址169.254.1.1是默认的网关,但是整个网络中中没有一张网卡是这个地址。那么为何是这个地址?

        如一个网络中设备D1 (192.168.0.2/24) 与设备D2 (192.168.1.2/24),D1和D2在相互通信时,D1先发送了ARP广播,请求D2的mac地址,但是由于两个设备处于不同网,也就是说D1的ARP请求会被R1拦截到,然后R1会封装自己的mac地址为目的地址发送一个ARP回应数据报给R1(善意的欺骗),然后R1就会代替D1去访问D2。

        在Kubernetes Calico网络中,当一个数据包的目的地址不是本网络时,会先发起ARP广播,网关设置即169.254.1.1收到会将自己的mac地址返回给发送端,后续的请求由这个veth对进行完成,使用代理arp做了arp欺骗。这样做抑制了arp广播攻击,并且通过代理arp也可以进行跨网络的访问。

        在容器内可以使用ethtool -S 来查看对端。这里使用的容器为sealloong/netbox,集成了常用的网络命令,作为网络故障排除容器使用。

删除link-local(169.254.0.0) 路由表项

        当系统配置为使用动态地址,而找不到DHCP服务器时,系统会为本机设置一个169.254.X.X的地址。这个路由表项是有zeroconf 协议Daemon 程序添加的,我们一般是用不到的。
        只是注释掉/etc/networks 里面的link-local 项是无法去掉该路由表项的,/etc/networks 与/etc/hosts文件的作用差不多,是用来关联网络号(数字格式)和网络名(字符格式)的,注释掉该条目后,只是169.254.0.0无法解析为网络名link-local了.

删除

        可以用以下命令来删除zeroconf 相关的程序包

sudo apt-get remove avahi-autoipd –purge

下次启动机器后这条路由就不会自动出现了.

CentOS删除 link-local

关于zeroconf的作用看APIPA(自动专用IP寻址)

1、如果需要全局关闭

sed -i ‘$a NOZEROCONF=yes' /etc/sysconfig/network
/etc/init.d/network restart

 2、需要单个网卡关闭

sed -i '$a NOZEROCONF=yes' /etc/sysconfig/network-scripts/ifcfg-网卡编号
/etc/init.d/network restart

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux:169.254.0.0/24路由的来龙去脉 的相关文章

  • word文档上粘贴源代码

    有时编辑文档时 我们需要将源代码粘贴进去 但是总不是我们想要的样式 这里演示一种结合notepad 将代码粘贴到word的方法 可以保留代码的源格式 粘贴效果如下 与代码编辑时显示一模一样 方法 借助notepad 1 将代码粘贴到note
  • C++学习日志(输出vector<string>内容)

    前言 标准库类型vector 标准库类型vector表示对象的集合 其内所有的对象类型都相同 使用vector必须包含头文件 include
  • 输出错误:TypeError: must be real number, not str

    输出错误 TypeError must be real number not str 在运行以下代码时显示错误 fo open outName w head1 diamond 3 date hour dataInfo n head2 yy
  • 2021年涡阳四中高考成绩查询,振奋人心,全是省重点!高考成绩出来了,涡阳家长快来看看!...

    原标题 振奋人心 全是省重点 高考成绩出来了 涡阳家长快来看看 2020年高考成绩已经揭晓 亳州哪些学校高考成绩优异 小编带你走进四所名校 感受名校风采 分享桃李芬芳 亳州一中 亳州一中历史悠久 人文底蕴深厚 2020年高考 亳州一中继续保
  • SpringBoot 自定义starter的三种方式

    虽然自定义的starter与版本无关 但还是说明一下版本 SpringBoot 版本2 1 4 RELEASE 1 命名问题 由于官方提供的starter 命名格式为spring boot starter xxx 为与官方的starter区
  • 安装MySQL绿色版本,不用装软件、不用装软件、不用装软件

    安装MySQL绿色版本 不用装软件 不用装软件 不用装软件 MySQL也有绿色版本的 不用安装MySQl软件 下载后解压 简单配置和后 就可以直接使用 1 第一步下载免安装版本 官网链接如下 MySQL Download MySQL Com
  • Centos7升级ssh

    1 备份原有文件 mkdir ssh bak cp etc ssh etc ssh bak 2 安装并启动Telnet yum install telnet telnet server xinetd y systemctl start te
  • Unity 2D射线基本使用和画线

    2D射线可以检测到挂载了Collider2D的对象 包括isTrigger 2D射线常用的是 Physics2D Raycast 函数 它的描述为 向场景中的碰撞体投射射线 射线投射 类似于从空间中的某个点朝特定方向发射一条光束 在该过程中
  • golang---http服务创建,路由注册,请求处理源码

    服务器创建部分 main func main StartHttpServer StartHttpServer func StartHttpServer http HandleFunc go httpHandle http ListenAnd
  • STM32F407控制180度舵机

    其中主要分为两部分 时钟的初始化和主函数的控制部分 时钟的初始化 选用TIM14时钟 F9引脚作为信号控制引脚 void TIM14 PWM Init u32 arr u32 psc GPIO InitTypeDef GPIO InitSt
  • vue树形控件【页面渲染】

    在Vue中渲染树形控件的常见方法是使用递归组件 递归组件基于组件自身调用自身的方式来构建树形结构 以下是一个简单的树形结构的组件示例
  • rand()的最大值

    rand 函数是一个在开发的时候比较常用的函数 但这个函数返回随机数的取值范围并非多大的值都可以 在工作修一个抽奖活动bug的时候曾经遇到这样一种情况 当总权重大于rand的最大值2 16 32767的时候 rand返回的值将不会大于327
  • vue element插件this.$confirm用法(取消也可以发请求)

    场景 弹出框的两个按钮都能分别请求接口 最简单的弹出框就是 确定 取消 一般用户点击确定才会继续接下来的动作 点击取消则不做任何动作 即不会请求接口 如
  • Chromium OS初体验 就是一款Linux

    好奇 弄了一个Chromium OS for VMWare 玩玩 发现Chromium OS并非像我之前想象的一样 并非完全是一个自主研发的独立操作系统 启动 Chromium OS 时 vmware 被设置成图形模式 但一片漆黑什么都看不
  • 【OpenCV】Blob斑点检测学习笔记

    设置 SimpleBlobDetector 参数 params cv2 SimpleBlobDetector Parms 改变阈值 params minThreshold 自定义下阈值 params maxThreshold 自定义上阈值
  • stm32实现Systick的毫秒级延时和微妙级延时

    学习目标 stm32实现Systick的毫秒级延时和微妙级延时 学习内容 1 Systick 工作原理 Systick 系统定时器 是ARM Cortex M3 M4 内核的一个外设 因为所有的CM3 M4内核的单片机都带有这个定时器 这使
  • 若依微服务增强swagger增强集成knife4j

    1 项目pom xml中增加

随机推荐

  • iOS音视频—Shell脚本语言(语法-字符串)

    In every walk with nature one receives far more than he seeks 每一次和自然同行 都会有意外的收货 Shell脚本语言 语法 字符串 1 单引号 name wt echo name
  • 代码随想录算法训练营19期第37天

    738 单调递增的数字 代码随想录 初步思路 贪心 总结 还需要考虑遍历顺序 只有从后向前遍历才能重复利用上次比较的结果先排序 用时 45分钟 968 监控二叉树 代码随想录 初步思路 仅仅贪心好像还是不够 总结 二刷三刷再来 用时 60分
  • 【智领信创】用友 U8 cloud &亚信科技 AntDB联合产品强势来袭,0元购活动惠及陕、鲁

    近日 用友U8 cloud信创云ERP新品体验会在西安 济宁两市成功举办 用友U8 cloud 亚信科技AntDB联合产品精彩亮相 为陕 鲁两省行业客户提供领先信创解决方案的同时 也为两省客户带来极具诚意的优惠方案 U8 cloud Ant
  • 连接阿里云服务器MySql数据库

    首先先说一个坑 也是自己很久没有使用linux原因导致的 自己也是的 最近忙于工作 买了阿里云服务器之后一直都没有去弄了 感觉自己白花钱了 废话不多说了 直接进入正题 第一 肯定要看你的mysql数据库是否启动 才能确定是否能够连接 一下有
  • Outlook 突然打不开

    打开电脑正准备上班然后outlook崩了 报错建议我重装软件 问题是现在用的都是365全家桶 也没办法单独重装一个outlook 盲试了一把repair居然修好了 再后来就经常用到它T T 不是什么好事 首先有几种临时解决方法 如果时间很紧
  • mysql配置超详细教程_MySQL系列(一):超详细、非常适合入门的MySQL安装、环境配置教程...

    MySQL系列教程不定期更新 欢迎关注 一 安装环境 Windows 10 专业版 64位 二 下载MySQL 1 访问MySQL官网 网址为 http www mysql com 2 点击页面上方的 DOWMLOADS 3 选择 MySQ
  • 苹果全新iPhone首发3nm自研芯片,结果“华为发布会”冲上热搜第一…

    明敏 丰色 西风 发自 凹非寺量子位 公众号 QbitAI 就离谱 苹果发iPhone 15 结果发着发着 华为发布会 冲上了热搜第一 哪怕是iPhone 15全系告别11年闪电接口改用USB C 经典静音键从Pro系列消失 这些库克 违背
  • Android性能优化—内存优化

    一 App内存组成以及管理 Android 给每个 App 分配一个 VM 让App运行在 dalvik 上 这样即使 App 崩溃也不会影响到系统 系统给 VM 分配了一定的内存大小 App 可以申请使用的内存大小不能超过此硬性逻辑限制
  • 机器学习中关于偏差、方差和误差的理解

    在模型预测中 模型可能出现的误差来自两个主要来源 1 因模型无法表示基本数据的复杂度而造成的偏差 bias 2 因模型对训练它所用的有限数据过度敏感而造成的方差 variance 误差是测量值与真实值之间的差值 用误差衡量测量结果的准确度
  • Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file)

    org pentaho di core exception KettleDatabaseException Error occurred while trying to connect to the database Driver clas
  • [培训-无线通信基础-6]:信道编码(分组码、卷积吗、Polar码、LDPC码、Turbo码)

    作者主页 文火冰糖的硅基工坊 https blog csdn net HiWangWenBing 本文网址 https blog csdn net HiWangWenBing article details 118657107 目录 前言
  • Shell计算时间运行时间

    方法1 starttime date Y m d H M S 执行程序 endtime date Y m d H M S start seconds date date starttime s end seconds date date e
  • 笔试

    文章目录 前言 21 FPGA组成三要素 1 CLB 2 可编程内部互联资源 3 可编程输入输出块 22 查找表 LUT 23 锁存器 latch 触发器 24 亚稳态 25 逻辑电平 26 逻辑最小项 总结 往期精彩 前言 本文首发于微信
  • LeetCode-135.分发糖果、贪心算法

    老师想给孩子们分发糖果 有 N 个孩子站成了一条直线 老师会根据每个孩子的表现 预先给他们评分 你需要按照以下要求 帮助老师给这些孩子分发糖果 每个孩子至少分配到 1 个糖果 相邻的孩子中 评分高的孩子必须获得更多的糖果 那么这样下来 老师
  • 【共享内存】

    1 共享内存示意图 共享内存区是最快的 IPC 形式 一旦这样的内存映射到共享它的进程的地址空间 这些进程间数据传递不再涉及到 内核 换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据 2 共享内存数据结构 struct shmi
  • uniapp 框架引用turf.js步骤

    Turf js中文网 一 安装指定模块 示例 实现运动轨迹缓冲区及迹缓冲面积计算 接口获取的轨迹点连成线 Turf js 轨迹点只有一个则无法连成线 a npm 安装 npm install turf helpers b 页面引入 impo
  • 深入LDO学习

    目录 工程问题 1 LDO 输出电源电平低于设置值 2 电源芯片欠压保护电路导 致上电时序不满足设计的要求 原理 layout图 优点 缺点 原理 选型 热计算 计算 LDO 工作时的结温 工程问题 1 LDO 输出电源电平低于设置值 某款
  • jqueryweui,两个输入框解决方法

    document ready function
  • CURL使用SSL证书访问HTTPS

    在支付的交互过程中 安全绝对是需要考虑的重要因素之一 体现在对服务器交互数据的签名等环节 但有的时候为了能达到更高的安全级别 还需要用ssl证书 即web服务器有证书 浏览器客户端 请求端也需要安装证书来达到双向验证 比如请求下面的财付通支
  • Linux:169.254.0.0/24路由的来龙去脉

    在Linux中 发现每次系统启动时 都会将 169 254 0 0 16 路由启动并将其添加到路由表中 但是并不知道这条路由具有什么功能和它到底来自于哪里 要想搞清楚路由 169 254 0 0 16 究竟来自哪里并且它的作用是什么 首先需