You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KVM虚拟机的IPv6 /48子网划分配置问题

嘿,我来帮你搞定这个IPv6分段分配的问题!用macvtap给每个VM划独立/64段其实没那么复杂,咱们一步步来排查和配置:

第一步:先搞定物理机的IPv6基础配置

首先得确保物理机的IPv6转发和基础地址配置没问题,这是整个网络能通的前提:

  • 检查IPv6转发是否开启:执行 sysctl net.ipv6.conf.all.forwarding,如果输出是0,就把它改成1。要永久生效的话,把 net.ipv6.conf.all.forwarding=1 写入/etc/sysctl.conf或者/etc/sysctl.d/99-ipv6-forward.conf,然后执行sysctl -p加载配置。
  • 物理机不需要把整个/48段都绑在网卡上,只需要留一个单IPv6地址(比如从你的/48里选一个/128地址,例如2001:db8:1234::1/128),剩下的/48段用来路由给各个VM的/64。手动配置物理机网卡,别用自动配置(SLAAC)避免地址冲突,比如用netplan的配置示例:
    network:
      ethernets:
        eth0:  # 替换成你的物理网卡名
          addresses:
            - 2001:db8:1234::1/128
          gateway6: 2001:db8:1234::ffff  # 替换成服务商给的IPv6网关
          nameservers:
            addresses: [2001:4860:4860::8888, 2001:4860:4860::8844]
      version: 2
    
第二步:macvtap接口的核心注意事项

macvtap是直接桥接物理网卡的二层转发接口,别在它上面瞎配置:

  • 绝对不要给macvtap接口本身配IPv6地址!它只是个通道,地址应该放在VM内部的网卡上。
  • 确保物理机的物理网卡没有开启IPv6自动配置(比如关闭SLAAC),防止系统自动占用你的/48段里的地址。
第三步:给每个VM分配独立/64段并配置路由

假设你的/48段是2001:db8:1234::/48,咱们可以按序号给VM分配/64:第一个VM用2001:db8:1234:1::/64,第二个用2001:db8:1234:2::/64,以此类推:

  • 在物理机上添加静态路由,把对应VM的/64段指向它的macvtap接口。比如第一个VM的macvtap接口是macvtap0,执行:
    ip -6 route add 2001:db8:1234:1::/64 dev macvtap0
    要永久保存路由的话,可以把这条命令加到/etc/rc.local(记得给执行权限),或者在netplan的物理网卡配置里加routes字段。
  • 进入VM内部,配置网卡的IPv6地址。比如选2001:db8:1234:1::1/64作为VM的地址,网关设为物理机的那个单地址2001:db8:1234::1,示例netplan配置:
    network:
      ethernets:
        ens3:  # 替换成VM里的网卡名
          addresses:
            - 2001:db8:1234:1::1/64
          gateway6: 2001:db8:1234::1
          nameservers:
            addresses: [2001:4860:4860::8888, 2001:4860:4860::8844]
      version: 2
    
第四步:排查常见问题

如果还是遇到ping丢包或者connect: Network is unreachable,按下面的步骤查:

  • 先看VM内部:执行ip -6 addr确认/64地址已正确配置,ip -6 route确认默认路由指向物理机的地址。
  • 再看物理机:执行ip -6 route确认对应VM的/64路由存在,ping6测试物理机到服务商网关的连通性。
  • 检查防火墙!不管是物理机还是VM的iptables/nftables,都要允许IPv6的转发和进出流量。测试阶段可以临时执行ip6tables -P FORWARD ACCEPT(生产环境要配置更严格的规则)。
  • 最后确认服务商那边:有些服务商需要你在控制面板里宣告整个/48段(因为/48是可全局路由的,服务商广播后,你的每个/64段就能被外部访问),别漏了这一步!

内容的提问来源于stack exchange,提问作者Skylar Ittner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:15:11