我遇到了一些网络问题,这些问题似乎与 iproute2 中显示的 IP 地址顺序有关。它通常是这样的:
# ip -4 -o address show dev eth0
2: eth0 inet 192.168.222.212/23 brd 192.168.223.255 scope global eth0\ valid_lft forever preferred_lft forever
2: eth0 inet 169.254.0.2/24 scope global eth0:0\ valid_lft forever preferred_lft forever
2: eth0 inet 169.254.1.2/24 scope global eth0:1\ valid_lft forever preferred_lft forever
然而,我在网络上遇到了一个奇怪的事件,导致主 IP 被刷新/重新添加,这使得它显示在列表的底部:
# ip -4 -o address show dev eth0
2: eth0 inet 169.254.0.2/24 scope global eth0:0\ valid_lft forever preferred_lft forever
2: eth0 inet 169.254.1.2/24 scope global eth0:1\ valid_lft forever preferred_lft forever
2: eth0 inet 192.168.222.212/23 brd 192.168.223.255 scope global eth0\ valid_lft forever preferred_lft forever
因此,在这种情况下,我的传出 IGMP 数据包现在来自 169.254.0.2,而不是 192.168.222.212,直到我重新启动或刷新整个接口并重新添加 IP。
有没有办法强制新创建的 IP 显示在列表顶部?我需要修补内核才能实现这一点吗?
答案1
经过多次尝试和磨难,主要问题已经找到。
问题在于 IP 地址的范围。两个内部地址 (169.254.xx) 设置为全局范围。将范围更改为主持人解决了问题。