IPv6 无法在使用多通道创建的虚拟机上运行

IPv6 无法在使用多通道创建的虚拟机上运行

在虚拟机上发出的命令:

$ ping -6 api6.ipify.org
ping: connect: Network is unreachable

$ ifconfig ens3
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.140.84.221  netmask 255.255.255.0  broadcast 10.140.84.255
        inet6 fe80::5054:ff:fe6c:abbe  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:6c:ab:be  txqueuelen 1000  (Ethernet)
        RX packets 566497  bytes 327455872 (327.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 458879  bytes 57257695 (57.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ uname -a
Linux k3s 5.4.0-125-generic #141-Ubuntu SMP Wed Aug 10 13:42:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

在主机上,IPv6 可以正常工作。在主机上发出的命令:

$ ping -6 api6.ipify.org
PING api6.ipify.org(2607:f2d8:4010:8::2 (2607:f2d8:4010:8::2)) 56 data bytes
64 bytes from 2607:f2d8:4010:8::2 (2607:f2d8:4010:8::2): icmp_seq=1 ttl=55 time=253 ms
64 bytes from 2607:f2d8:4010:8::2 (2607:f2d8:4010:8::2): icmp_seq=2 ttl=55 time=305 ms
64 bytes from 2607:f2d8:4010:8::2 (2607:f2d8:4010:8::2): icmp_seq=3 ttl=55 time=252 ms

$ uname -a
Linux ThinkPad 5.19.5-051905-generic #202208291036 SMP PREEMPT_DYNAMIC Mon Aug 29 10:47:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

如何让 IPv6 在 VM 上工作?我期望它能够立即使用,或者在多通道中有一些命令行选项,但我找不到。

答案1

Multipass 在客户端和主机之间使用名为 mpqemubr0 的单独网络(您可能有不同的接口名称)。此网络不通过 dhcpdv6 或 radvd(或两者)提供 IPv6 信息。您的 IPv6 路由表可以通过以下方式查看:ip -6 route show 猜测您的客户端没有 IPv6 的默认路由。

您的选择:

  1. 将 radvd/dhcpdv6 添加到在 Multipass 接口上提供 IPV6 信息的主机。您的主机充当 IPv6 路由器,也许您需要更多 ip6tables 规则来进行伪装,必须启用 IPv6 转发
  2. 将多通道接口的类型更改为桥接网络而不是路由。请参阅多通道文档
  3. 如果你的使用情况允许,请切换到docker,即使在这里IPv6也不能开箱即用,但它的速度要快得多

相关内容