Proxmox 配置 IPv4 NAT + 独立 IPv6 教程

首先,假设正常安装系统(Debian、CentOS等)有:

  1. 单个 IPv4:123.1.2.3/22
    网关为 123.1.2.1

  2. IPv6 /64 子网:240e:abcd:abcd:abcd::/64
    网关 fe80::1

目标是开 IPv4 NAT+独立 IPv6 的小鸡,所以要开启 IPv4 和 IPv6 转发,并且 IPv6 还需要开启 NDP 代理:

简单来说就是三条配置,修改 /etc/sysctl.conf

1
2
3
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.ens3.proxy_ndp=1

前两条应该都有,把前面的 # 号去掉启用就行。

第三条中的 ens3 是我的接口名,修改成你自己的。

之后修改 /etc/network/interfaces

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
auto lo
iface lo inet loopback

auto ens3
iface ens3 inet static
address 123.1.2.3/22
gateway 123.1.2.1

iface ens3 inet6 static
address 240e:abcd:abcd:abcd::1/128
gateway fe80::1

iface vmbr0 inet static
address 10.0.0.1/24
bridge-ports none
bridge-stp off
bridge-fd 0

iface vmbr0 inet6 static
address 240e:abcd:abcd:abcd::2/64

post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o ens3 -j $
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o ens3 -j $
post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1
post-up ip neigh add proxy 240e:abcd:abcd:abcd::3 dev ens3
pre-down ip neigh del proxy 240e:abcd:abcd:abcd::3 dev ens3

还是注意 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.510.0.0.15 啥的都可以。

IPv6 要和配置文件的最后两行对应,每新增一个小鸡,末尾要手动增加对应的两行。比如再开一个小鸡,IPv6 为 240e:abcd:abcd:abcd::4/128

1
2
post-up   ip neigh add proxy 240e:abcd:abcd:abcd::4 dev ens3
pre-down ip neigh del proxy 240e:abcd:abcd:abcd::4 dev ens3

以上都是在 Proxmox 防火墙为黑名单模式(默认 ACCEPT)情况下设置的,在白名单模式(默认 DROP)下行不通,需要调整防火墙规则,我就不弄了,有兴趣自己折腾。

关于对 NAT 小鸡进行端口映射

假设目标小鸡 IPv4 为 10.0.0.2,修改 /etc/network/interfaces,开放单个 80 端口在最后加上:

1
2
post-up   iptables -t nat -I PREROUTING -p tcp -i ens3 --dport 80 -j DNAT --to 10.0.0.2:80
post-down iptables -t nat -D PREROUTING -p tcp -i ens3 --dport 80 -j DNAT --to 10.0.0.2:80

开放 10000-20000 端口则加上:

1
2
post-up   iptables -t nat -I PREROUTING -p tcp -i ens3 --dport 10000:20000 -j DNAT --to 10.0.0.2:10000-20000
post-down iptables -t nat -D PREROUTING -p tcp -i ens3 --dport 10000:20000 -j DNAT --to 10.0.0.2:10000-20000

注意将 ens3 换成你自己的接口。


Proxmox 配置 IPv4 NAT + 独立 IPv6 教程
https://hexo.psorai.eu.org/2023/06/06/Proxmox 配置 IPv4 NAT + 独立 IPv6 教程/
Author
Sora
Posted on
June 6, 2023
Licensed under