这个 IPv6 地址从哪里来?

这个 IPv6 地址从哪里来?

长话短说:是否有命令可以显示为什么每个 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 意味着所有自动配置的地址也会更改。对于客户端来说很好,对于服务器来说不太好:)

相关内容