AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 132657
Accepted
jackhab
jackhab
Asked: 2010-04-16 03:57:26 +0800 CST2010-04-16 03:57:26 +0800 CST 2010-04-16 03:57:26 +0800 CST

到 169.254.0.0 的路由从何而来?

  • 772

运行 CentOS 5.4

为什么我有到 169.254.0.0 的路由,尽管它没有出现在网络 > 以太网设备 > 路由配置对话框中?

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth2
169.254.0.0     *               255.255.0.0     U     0      0        0 eth2
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth2
linux centos routing route
  • 3 3 个回答
  • 74271 Views

3 个回答

  • Voted
  1. Kyle Smith
    2010-04-16T06:05:15+08:002010-04-16T06:05:15+08:00

    我喜欢马塞尔的回答,但它并没有真正解决这个问题。问题是“为什么我有..”,而不是“我怎样才能禁用”。OP 实际上可能不想禁用此路由。

    169.254.0.0/16 网络用于自动专用 IP 地址或 APIPA。如果 DHCP 客户端尝试获取地址,但在超时和重试期后未能找到 DHCP 服务器,它将随机假定来自该网络的地址。这允许与未能获得 DHCP 地址的主机进行通信。

    • 65
  2. Best Answer
    user126330
    2010-04-16T04:04:18+08:002010-04-16T04:04:18+08:00

    从 Red Hat 知识库上的这篇文章:

    如何禁用 zeroconf 路由,以便系统在没有 169.254.0.0 / 255.255.0.0 路由的情况下启动?

    症状:

    每次系统启动时,都会启用 zeroconf 路由 (169.254.0.0)。您可以通过关闭防火墙手动禁用它,并使用 route 命令删除 169.254.0.0 / 255.255.0.0 的路由。

    启用 zeroconf 路由的路由示例输出类似于以下内容:

    # route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    10.15.50.0      *               255.255.252.0   U     0      0        0 eth0
    169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
    

    解决方案:

    要在系统引导期间禁用 zeroconf 路由,请编辑 /etc/sysconfig/network 文件并将以下 NOZEROCONF 值添加到文件末尾:

    NETWORKING=YES
    HOSTNAME=localhost.localdomain
    NOZEROCONF=yes
    
    • 41
  3. Nick
    2021-05-29T01:44:30+08:002021-05-29T01:44:30+08:00

    参加聚会已经很晚了,但我在对相同或类似情况进行故障排除时发现了这一点,并发现了一些需要考虑的额外事项。Realize OP 的盒子可能不再存在,但我认为提供的答案可以扩展一些。也许这将帮助其他发现此问题以寻找相同类型的故障排除的人。

    APIPA 路由由 /etc/sysconfig/network-scripts/ifup-eth 中的条件逻辑添加。如果您在设置中递归地查找“169.254”,您可以即时发现这一点:

    # Add Zeroconf route.
    if [ -z "${NOZEROCONF}" -a "${ISALIAS}" = "no" -a "${REALDEVICE}" != "lo" ]; then
    ip route add 169.254.0.0/16 dev ${REALDEVICE} metric $((1000 + $(cat /sys/class/net/${REALDEVICE}/ifindex))) scope link
    fi
    

    虽然大多数人都熟悉(并且其他评论已经解决)如果 DHCP 失败,它也会启动,如果与您的接口配置不一致,导致它除了环回之外没有检测到任何真实设备,它也会启动。如果您的接口是 OP 提供的路由所指示的 eth2,但配置文件名为 ifcfg-eth1(例如),或者其内容如此引用它,或者 /etc/sysconfig/network 文件将设备称为eth1 或 eth0(或除 指示之外的任何内容ip a),这将导致 APIPA 路由被添加,因为定义的配置引用了不存在的接口名称。

    您可能会认为情况并非如此,或者您的界面不会显示为已配置。实际上,即使您的界面在 上显示为已完全配置,情况仍然如此ip a,例如,如果在 network-scripts/ifcfg-eth2 文件中全部正确,但在 /etc/systconfig/network.xml 中命名错误。

    禁用 zeroconf是解决此问题的一种方法,但配置问题可能仍以其他方式出现。如果系统(和 DHCP,如果适用)已配置并正常工作,则不会添加 APIPA 路由。这是当事情出错时的应急逻辑,禁用它应该比纠正导致它触发的潜在问题更不受欢迎。

    在禁用 Zeroconf 之前,我建议查看:

    $ ip a
    /etc/sysconfig/network-scripts/ifcfg-*
    /etc/sysconfig/network
    

    并查看文件名和内容是否反映了您正在使用的实际接口名称。如果他们没有,而且我认为他们可能没有,请考虑对有问题的错误接口名称进行递归 grep,以查看它是否潜伏在任何其他配置文件中:

    grep -R -i 'eth0' /etc/
    

    然后手动更改它或打破一些 sed :)

    sed -i 's/eth0/eth2/g' /path/and/filename
    

    完成后,您需要重新启动网络服务以使更改生效,具体取决于您的系统,可能如下所示:

    systemctl stop network
    systemctl start network
    

    或者

    service network stop
    service network start
    

    请务必再次检查您的路由表以确保问题已得到解决。如果一切都失败了,我可能会看到禁用 zeroconf 功能,但如果可能的话,我认为最好保留此功能,而不是纠正导致使用此应急功能的潜在问题。

    • 2

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve