此方法适合任何希望建立nat-ipv4加独立ipv6虚拟机的Proxmox平台使用。建议在有救援模式/IPMI的独立服务器上操作。
快捷操作
直接编辑 /etc/network/interfaces 文件。建议先备份interfaces以免出问题。
auto lo
iface lo inet loopback
auto vmbr0
iface vmbr0 inet static
address 104.***.***.***/24
netmask 255.255.255.252
gateway 104.***.***.77
bridge_ports eth1
bridge_stp off
bridge_fd 0
iface vmbr0 inet6 static
address 2604:****:0:6b::2/64
gateway 2604:****:0:6b::1
auto vmbr1
iface vmbr1 inet static
address 192.168.0.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE
按照自己的ip地址将配置文件中的地址修改好,重启网络服务即可。
systemctl restart networking
此时你的宿主机已经应当可以访问ipv6网络了,可以测试一下。如果不通请检查三遍interfaces有无配置错误,并看下面的疑难解答。
ping -6 google.com
接下来为小鸡开启ipv6转发,以便虚拟机访问ipv6网络。
echo “net.ipv6.conf.all.forwarding = 1” >> /etc/sysctl.conf && sysctl -p
使用ndppd来分配ipv6地址
apt -y install ndppd
nano /etc/ndppd.conf
写入如下配置,ipv6地址块换成你自己的:
proxy vmbr0 {
rule 2001:41d0:*:****::/64 {
static
}
}
启动ndppd并设置开机自启
systemctl restart ndppd.service systemctl enable ndppd.service
疑难排查
1.部分服务器有多个网卡,网线不一定插在第一个口上。所以这样配置vmbr0可能导致网络不通。查看你的具体网卡是哪一个,并且确定一下哪个有网络。
cat /proc/net/dev
对应的名字去修改vmbr0中 bridge_ports eth1 的这个位置。eth1改为你的物理网卡名字。