首先,假设正常安装系统(Debian、CentOS等)有:
单个 IPv4:
123.1.2.3/22,
网关为123.1.2.1IPv6 /64 子网:
240e:abcd:abcd:abcd::/64
网关fe80::1
目标是开 IPv4 NAT+独立 IPv6 的小鸡,所以要开启 IPv4 和 IPv6 转发,并且 IPv6 还需要开启 NDP 代理:
简单来说就是三条配置,修改 /etc/sysctl.conf:
1 | net.ipv4.ip_forward=1 |
前两条应该都有,把前面的 # 号去掉启用就行。
第三条中的 ens3 是我的接口名,修改成你自己的。
之后修改 /etc/network/interfaces :
1 | auto lo |
还是注意 ens3 是我机器接口的名字,所有都要改成你自己的。
这样配置好后,开小鸡时,选择桥接 vmbr0,IPv4 和 IPv6 都配置为静态,然后手动输入:
IPv4/CIDR:10.0.0.2/24
网关(IPV4):10.0.0.1
IPv6/CIDR:240e:abcd:abcd:abcd::3/128
网关(IPV6):240e:abcd:abcd:abcd::2
小鸡的 IPv4 没什么,不要和网关的 10.0.0.1 重复就行,10.0.0.5、10.0.0.15 啥的都可以。
IPv6 要和配置文件的最后两行对应,每新增一个小鸡,末尾要手动增加对应的两行。比如再开一个小鸡,IPv6 为 240e:abcd:abcd:abcd::4/128:
1 | post-up ip neigh add proxy 240e:abcd:abcd:abcd::4 dev ens3 |
以上都是在 Proxmox 防火墙为黑名单模式(默认 ACCEPT)情况下设置的,在白名单模式(默认 DROP)下行不通,需要调整防火墙规则,我就不弄了,有兴趣自己折腾。
关于对 NAT 小鸡进行端口映射
假设目标小鸡 IPv4 为 10.0.0.2,修改 /etc/network/interfaces,开放单个 80 端口在最后加上:
1 | post-up iptables -t nat -I PREROUTING -p tcp -i ens3 --dport 80 -j DNAT --to 10.0.0.2:80 |
开放 10000-20000 端口则加上:
1 | post-up iptables -t nat -I PREROUTING -p tcp -i ens3 --dport 10000:20000 -j DNAT --to 10.0.0.2:10000-20000 |
注意将 ens3 换成你自己的接口。