接口设置为 up 时如何确定添加到 VXLAN 的 IPV6 地址?

网络工程 IPv6 linux vxlan
2022-02-26 00:35:08

设置:
目前正在使用 Red Hat 7.2 的机器(Red Hat Enterprise Linux Server release 7.2 (Maipo)准确地说。)

我配置了一个 vxlan 接口:

# ip link add test.123 type vxlan dev test id 123 dstport 4789
# ifconfig  test.123
test.123: flags=4098<BROADCAST,MULTICAST>  mtu 1450
    ether a2:3a:a8:0c:d9:76  txqueuelen 1000  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

当我运行时:

# ifconfig test.132 up
# ifconfig test.123
test.123: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
    inet6 fe80::a03a:a8ff:fe0c:d976  prefixlen 64  scopeid 0x20<link>
    ether a2:3a:a8:0c:d9:76  txqueuelen 1000  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 5 overruns 0  carrier 0  collisions 0

问:
IPV6 地址从何而来?我怎么能提前知道呢?
我尝试在执行之前设置一个备用 IPv6 地址up,最终得到两个不同的 IPV6 地址....

谢谢

2个回答

这是自动配置的链接本地地址。根据RFC 4291 ,前 64 位始终为 fe80:: 。最后 64 位是接口 ID。接口 ID 是修改后的 MAC 地址

您可以禁用自动配置:

echo 0 > /proc/sys/net/ipv6/conf/<interface>/autoconf

并手动设置 ipv6 地址。

这是一个IPv6 链接本地地址,这不是 VXLAN 特有的。任何启用 IPv6 的接口都必须至少配置一个链路本地地址,以及可选的其他(可能是公共可路由的)地址。

链路本地地址仅用于本地网络,通常根据接口的 MAC 地址自动生成。