具有全球单播地址的 IPv6 路由

具有全球单播地址的 IPv6 路由

总结

ip -6 route replace 2001:db8:123:456:fff:dead:beef:cafe/128 via fd00:5151::1给了我错误:

Error: Gateway can not be a local address.

为什么不允许在路由中使用本地地址作为网关?如何修复该问题以便2001:db8:123:456:fff:dead:beef:cafe通过 到达fd00:5151::1


文本

我想为单个虚拟机分配一个静态全局单播 IPv6 地址。虚拟机fd:5151::1的网关为。我的 ISP 给了我:2001:db8:123:456::/64现在静态 IP 应该是:2001:db8:123:456:fff:dead:beef:cafe

主机现在应该将该 IP 的所有传入包直接重定向到 VM。如果我尝试使用该命令从主机 ping 该 IP,则一切正常。

$ ping 2001:db8:123:456:fff:dead:beef:cafe

64 bytes from 2001:db8:123:456:fff:dead:beef:cafe: icmp_seq=1 ttl=64 time=0.453 ms

VM 中也分配了 Ip ip addr

inet6 fd00:5151::d8c:7603/128 scope global dynamic noprefixroute
   valid_lft 84146sec preferred_lft 84146sec
inet6 2001:db8:123:456:fff:dead:beef:cafe/128 scope global
   valid_lft forever preferred_lft forever

但如果我尝试从客户端(例如 Windows PC) ping 该 IP,连接就会失败。

ping 2001:db8:123:456:fff:dead:beef:cafe
Destination Port Unreachable

主机在接口上eno1正确接收来自 Windows PC 的传入 ping。我用 进行了检查tcpdump -i eno1 host 2001:db8:123:456:fff:dead:beef:cafe。但它没有重定向它。

为了修复这个问题,我尝试使用ip -6 route replace 2001:db8:123:456:fff:dead:beef:cafe/128 via fd00:5151::1但是 Linux 给了我错误:

Error: Gateway can not be a local address.

现在我不明白为什么不允许在路由中使用本地地址作为网关?如何解决这个问题,以便可以从互联网访问虚拟机?

答案1

由于虚拟化软件和网络位于同一台机器上,导致了这个问题。

我需要将条目设置为虚拟机的网络,然后一切就正常了。

<ip family='ipv6' address='2001:db8:123:456:fff:dead:beef:cafe' prefix='128'></ip>

相关内容