两个接口之间的 IPv6

两个接口之间的 IPv6

我想使用 USB 电缆将一台 PC 与另一台运行 Linux 的设备连接起来(通过 USB 以太网,两个节点直接通过电缆连接)。

以下内容适用于 IPv4。

#PC : 

sudo ifconfig ens32u2u2c2 192.168.1.100 netmask 255.255.255.0

#Device :

ifconfig usb0 192.168.1.101 netmask 255.255.255.0

由于这是可行的(两个节点可以互相 ping 通),我认为 IPv6 会很简单,但以下操作不起作用:

#PC :

sudo ifconfig ens32u2u2c2 inet6 add 0e::12
# result : inet6 e::12  prefixlen 128  scopeid 0x0<global>


#Device :

ifconfig usb0 e::13/128
# result  : inet6 addr: e::13/128 Scope:Global

ifconfig usb0虽然在使用和检查时两个地址似乎都已设置ifconfig ens32u2u2c2,但我无法从 PC ping 该设备,也无法从设备 ping 该 PC,但这在 IPv4 中可以工作。

知道为什么吗?

答案1

您的配置没有为设备提供任何相互的路由。

在 IPv4 中,您要添加具有 /24 子网(掩码 255.255.255.0)的地址。这会告诉设备,此 /24 中的所有其他地址(整个 0…255)都可在此接口上直接访问。

在 IPv6 中,您要添加具有 /128 子网的地址(在 IPv4 上相当于使用 /32 或 255.255.255.255)。这指定一个子网,该子网只有一个主机(本身),因此它不会生成告诉它如何到达另一台主机的路由。

你需要:

  • a)使用较短的子网掩码配置地址,例如/64对于以太网来说是传统的,或者/126对于/127包含两个主机的链接来说是很常见的。

    ip addr add e::12/64 dev ens32u2u2c2
    

    (这将自动生成 e::/64 路线。)

  • 或者 b)手动添加通向另一台主机的路由:

    ip route add e::13 dev ens32u2u2c2
    

相关内容