IPv6 link-同一物理接口上多个 VLAN 网络的本地地址

IPv6 link-local address for multiple VLAN networks over the same physical interface

所以我遇到这样一种情况,其中一个物理接口(结果是一个 MAC)在一个绑定中托管多个 VLAN。 鉴于 IPv6 中的 link-local 地址是从 MAC 地址生成的,我所有的 VLAN 最终都具有相同的 link-local 地址。这会导致系统出现问题。

这是 IPv6 的已知限制吗?除了进入内核代码并更改 link- 本地地址的分配方式之外,是否有一些公认的解决方法?

Is this a known limitation of IPv6? Is there some accepted workaround beyond going into the kernel code and changing the way link-local addresses are assigned?

不,这不是问题,因为一个 link-local 地址会影响物理接口,而另一个 link-local 地址会影响 vlan 接口。每个 link-local 地址都可以通过其关联的网络接口来区分。

这是一个例子:

  • 你有一个 eth0 物理接口
  • 您的交换机配置为在此接口上有多个 802.1Q vlan:
    • 本机vlan例如200
    • 标记的 vlan 是 101 和 102

因此,您的接口将具有以下配置:

% ifconfig eth0
eth0      Link encap:Ethernet  HWaddr C0:3F:D5:33:13:79
          adr inet6: fe80::c23f:d5ff:fe33:1379/64 Scope:Lien
% ifconfig vlan101
vlan101   Link encap:Ethernet  HWaddr C0:3F:D5:33:13:79
          adr inet6: fe80::c23f:d5ff:fe33:1379/64 Scope:Lien
% ifconfig vlan102
vlan102   Link encap:Ethernet  HWaddr C0:3F:D5:33:13:79
          adr inet6: fe80::c23f:d5ff:fe33:1379/64 Scope:Lien

注意:如果您使用 Linux,您应该使用 ip address show 而不是 ifconfig,以使用最先进的 iproute2 Linux 网络接口。

如您所见,HWaddr 和 link 本地地址相同。 但是由于 link 本地地址需要在 vlan 范围内,因此内核、交换机和其他主机都没有问题。

要 ping vlan101 上的 link-local,您需要执行以下操作:

ping6 fe80::c23f:d5ff:fe33:1379%vlan101

这样,地址与接口名称相关联,不会混淆。