当前,在OVH机器上的ESXi主机上设置一些VM。我在OVH上有两个IPv4s,包括一个虚拟的MAC地址。一个IPv4用于ESXi主机本身,另一个用于pfSense VM。IPv4现在在使用pfSense NAT的所有VM上工作得很好。但是,我根本无法让IPv6运行。
OVH给我分配了一个/64块。然而,这个街区并没有被路由给我。OVH完全依赖于机器来响应NDP请求。但是,由于除了pfSens之外,所有VM都没有连接到“物理”网卡,而只是连接到局域网(vSwitch),所以它们没有接收到这些NDP信标,因此OVH不知道它们的存在。这个问题已经在几个OVH & pfSense论坛文章中进行了深入的讨论,但是没有一个确切的解决方案。
大多数人都说NDP的代理是最好的选择。然而,pfSense并没有在他们的软件中集成一个(我猜是为了不促进坏行为)。因此,我所做的是:
首先,我编写了一个FreeBSD 12.3VM并在那里编译了ndproxy
。然后,我将ndproxy.ko
内核模块上传到pfSense机器,并将其放入/boot/modules
中。最后,将这个shell脚本放在/usr/local/etc/rc.d中:
#!/bin/sh
# Provides: ndproxy
kldload ndproxy
ifconfig vmx0 promisc
sysctl net.inet6.ndproxyconf_uplink_interface=vmx0
sysctl net.inet6.ndproxyconf_downlink_mac_address=`ifconfig vmx0 ether | grep ether | awk '{print $2;}'`
sysctl net.inet6.ndproxyconf_uplink_ipv6_addresses=`route -n6 show :: | grep gateway: | sed 's/%vtnet0//g' | awk '{print $2;}'`
vmx0
是上行链路接口(物理接口)。最后两行告诉ndproxy
pfSense机器的MAC地址(机器ndproxy
运行在自己上)和OVH IPv6网关地址。
方便地,这个网关位于/64子网之外,所以我不得不用一个/56块来设置pfSense广域网网关。
对于LAN网关,我选择了一个ULA前缀。然后,在"NAT“中,我将NPt从ULA子前缀添加到WAN子前缀。因此,假设我的广域网前缀是2001:41d0:403:a11::/64
,而我选择的ULA前缀是fd00:dead:beef:dead::/64
,我设置了一个从ULA fd00:dead:beef:dead:dead::/80
到WAN 2001:41d0:403:a11:beef::/80
的NPt。
确保ndproxy
在跑,而且-什么都没有!一点用都没有。机器仍然死机(给定VM上的ULA前缀,并试图在NPt中设置的WAN前缀上对它们进行平压)。
在pfSense中,我可以在它们的局域网地址(例如fd00:dead:beef:dead:dead::2
)上平分VM,但不能在它们相应的NPt广域网地址(例如2001:41d0:403:a11:beef::2
)上进行平分。
有人知道我还能尝试什么吗?
发布于 2023-02-10 22:44:41
事实上,NDP代理将是可行的选择。但是pfSense是一个糟糕的路由器。我向你保证:它永远不会起作用。使用基于linux的路由器,只需输入/sbin/ip-6neigh代理2001:51c0:a:26a3:b 055:1 dev eth0 (或必须路由的另一个IP )
你会在5分钟内修好它。
https://serverfault.com/questions/1104579
复制相似问题