长话短说:是否有命令可以显示为什么每个 IPv6 地址已分配给给定的 NIC?例如,显示哪个路由器通告了该前缀。
细节
我已将网络设置为使用带有 ULA 前缀的 IPv6 地址fdaa::/64
。这有效,我有这样的地址:
$ ip addr show dev enp0s25
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b8:ae:ed:72:7d:5f brd ff:ff:ff:ff:ff:ff
inet 192.168.0.16/24 brd 192.168.0.255 scope global enp0s25
valid_lft forever preferred_lft forever
inet6 fdaa::6666:b3ff:0:d1a/128 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 2001:4479:7caa:9372:baae:edff:fe72:7d5f/64 scope global mngtmpaddr noprefixroute
valid_lft forever preferred_lft forever
inet6 fdaa::baae:edff:fe72:7d5f/64 scope global mngtmpaddr noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::baae:edff:fe72:7d5f/64 scope link
valid_lft forever preferred_lft forever
这里我有一个公共2001:
地址,一个链接本地fe80:
地址,但是我有二我的 ULA 子网中的地址fdaa:
。
我只想要这个子网中的一个地址,因为有两个地址会出错。例如,我无法使用这台机器作为 DNS 服务器,因为它回复了错误的 IP:
host fdaa::ba27:ebff:feea:ad9d fdaa::baae:edff:fe72:7d5f
;; reply from unexpected source: fdaa::6666:b3ff:0:d1a#53, expected fdaa::baae:edff:fe72:7d5f#53
;; reply from unexpected source: fdaa::6666:b3ff:0:d1a#53, expected fdaa::baae:edff:fe72:7d5f#53
;; connection timed out; no servers could be reached
删除 IP 并重新启动网络接口会再次恢复它,因此我的网络上的某些内容似乎正在广播该前缀,但我不确定如何找出它来自哪里!
是否有一些命令可以列出每个 IP 地址并解释它是如何分配的、哪个路由器将其通告为可用前缀等等?
答案1
经过一番实验,我发现可以使用以下命令:
ip monitor
它将显示正在发生的事情的列表。在一个终端中运行它,在另一个终端中重新启动网络接口,您将看到在删除然后重新添加每个 IP 地址时打印出一行。
它仍然没有准确解释 IP 来自哪里,但它确实告诉我这是一个ra
(路由器广告),它允许我查看我的路由器配置。
就我而言,我广告的fdaa::/64
前缀与分配为静态 IP 的前缀相同(假设此子网中的静态 IP 将阻止分配动态 IP),但最终我在子网中同时获得了静态 IP 和动态 IP。同一子网,这导致了问题。对于这是否是一个错误,我仍然有两种想法。
经过深思熟虑,我更改了路由器以通告不同的前缀(实际上是同一 ULA 中的不同子网/48
,所以fdaa:0:0:1/64
),因为这样两个子网都适合相同的 ULA 分配,但作为不同的子网,它们不会导致计算机回复当它具有属于两个子网的 IP 时,来自错误的 IP。
答案2
不知道 2001 年的地址是从哪里来的。一定有什么东西在你的网络上做广告。识别恶意设备的最简单方法可能是使用 Wireshark 查看源 MAC 地址。
对于 IPv6 来说,拥有多个地址是很正常的。您的 DNS 服务器软件应该从与接收查询的地址相同的地址进行回复,但如果它表现不佳,那么您应该能够将其配置为使用正确的地址。运行服务器时,我建议无论如何为服务器使用静态地址。依靠自动配置每次都为您提供相同的地址可能会很棘手。出于隐私原因,算法会随着时间的推移而变化,我见过 NIC 损坏的情况,人们忘记了更改 NIC 意味着所有自动配置的地址也会更改。对于客户端来说很好,对于服务器来说不太好:)