Debian 11 PVE7 配置网络 实现NAT IPV4+独立IPV6

搜了一大圈,发现大多是互相抄来抄去的,也写的小白表示难以理解。索性自己对着葫芦画瓢:一遍一遍调整喽。

当知道结果后,似乎好像都想的太复杂了。实际上应该还能再更简洁一些的,不过懒得折腾了,就这样吧~

简述

完整的内容

突然发现能水好多好多篇,那就分开水吧,完整的内容传送门:

相关说明

  • ens3 :宿主机网卡,空配置
  • vmbr0 :宿主机ens3网卡上的内容,并桥接到ens3网卡上
  • vmbr1 :仅提供IPV4内网
  • nftables :Debian11自带的防火墙,NAT IPV4

优缺点

不足:

由于ipv6是绑定到vmbr0网卡上,因此若孵出来的小鸡需要nat ipv4+独立ipv6,得将vmbr0、vmbr1两块网卡配置到对应的小鸡上,比较繁琐。

好处:

宿主机配置简单,很容易可以孵出ipv4 nat机器或者仅有独立ipv6的机器。

* 本文是“旧方案”,也可以使用,如需要“新方案”请移步:https://cimen.club/732.html

宿主机配置

nftables

“食用”方式:复制下面的规则内容,修改成自己的配置后,ssh连接宿主机找到 /etc目录下的nftables.conf文件,进行编辑,若是没有nat表,那么直接丢到最后面就行了。反之复制对应链里的规则,贴过去就ok。

生效方式:直接重启nftables防火墙即可 systemctl restart nftables

table ip nat {
	chain prerouting {
	      type nat hook prerouting priority -100; policy accept;
	      tcp dport 2222 dnat to 192.168.1.100
	      tcp dport 3389 dnat to 192.168.1.101
              #……
	}
	
	chain postrouting {
	      type nat hook postrouting priority 100; policy accept;
	      ip saddr 192.168.1.0/24 masquerade
	}
}

CT/虚拟机

CT容器

一般来说,在添加网卡的过程中配置ipv4、ipv6信息后,ct容器就可以正常使用ipv4和ipv6网络了,不需要再做其它的配置。
edit network ipv6 1 cimen club

linux虚拟机

选择对应的Linux虚拟机,切换到硬件选项里,简单看一下第一块网络设备对应绑定的网桥,然后点击控制台登录访问虚拟机,debian系统可以使用 ip addr 来查看网络配置信息,比如:
edit network ipv6 2 0 cimen club
按照之前添加网卡的顺序,那么第一块网卡绑定的就是ipv4,也就是说第二块网卡需要配置的是ipv6,清楚了之后,就可以直接编辑网络配置文件了:

# 编辑网卡配置文件
nano /etc/network/interfaces
(未经dd的linux系统)先使用#注释掉最后一行的内容(如果有的话)。
#source-directory /run/network/interfaces.d

接着在其下方添加网卡配置,使用 ctrl+x  输入y  然后 回车 保存。

参考配置如下,具体需要调整哪些部分请根据自己的信息来。完成配置后保存,并重启网络。
edit network ipv6 2 cimen club

windows虚拟机

和linux虚拟机差不多,先切换硬件选项里,简单看一下第一块网络设备对应绑定的网桥,然后点击控制台登录访问虚拟机。打开网络适配器,一般第一块就是对应刚刚看到的网桥,然后根据自己的配置来填写网络信息。比如:

第一块对应的是桥接到vmbr1,那么只需要配置内网ipv4,那么第二块网络适配器就只需要配置公网ipv6。
edit network 3 cimen club
edit network ipv6 3 cimen club

碎碎念

nftables服务若是再network服务之前启动,会导致宿主机重启后nftables不能正常自启动,所以不要省心将规则中的iifname、oifname精简成iif、oif。

阅读剩余
THE END