我正在尝试使用 netplan 来设置网关。以下是我设置的一些详细信息:
我运行20.04
我有 5 个网卡(enp5s0、enp4s0f1、enp4s0f0、enp3s0f1、enp3s0f0)
enp4* 和 enp3* NIC 位于单个 PCIx 卡上
网关位于我的 ISP 提供的路由器后面(它是垃圾,但大部分时间都可以工作)。网关静态配置为 192.168.0.50,并通过 enp5s0 连接。 ISP 路由器位于 192.168.0.1
卡上的 4 个 NIC 将为各种其他上游笔记本电脑/平板电脑/手机/其他交换机/台式机提供服务,并将所有内容转发到我的 ISP 路由器。网关上游约有 20 个设备。
网关上安装有 pihole。 Pihole 配置为(我相信是通过 dnsmasq)提供 192.168.1.1/24 中的 IP4 地址
netplan 设置如下(从屏幕复制,因为计算机没有互联网连接。可能存在复制错误):
network: version: 2 renderer: networkd ethernets: enp5s0: dhcp4: no addresses: <192.168.0.50/24> gateway4: 192.168.0.1 switchports: match: name: enp<3-4>* bridges: br0: interfaces: <enp5s0, switchports> addresses: <192.168.1.1/24> dhcp4: true
此配置生成并应用时不会出现错误。
iptables
我已从 enp5s0 和 br0 (i )设置为 NATptables -t nat -A POSTROUTING -o enp5s0 -j MASQUERADE
。内核ip_forward=1
参数已设置。
但是,我得到的结果好坏参半:
我可以从网关连接到192.168.1.1 pihole接口
网关后面的客户端已成功获得 IP 地址
网关后面的客户端可以访问pihole接口
但:
我无法从网关 ping 通 8.8.8.8,这几乎概括了这一点。从网关到互联网的连接无法正常工作,因此上游客户端也无法连接。
我的路由表如下所示:
Destination Gateway Genmask Flags Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG enp5s0
192.168.0.0 0.0.0.0 255.255.255.0 U enp5s0
192.168.1.0 0.0.0.0 255.255.255.0 U br0
关于我可以尝试做些什么来完成这项工作有什么想法吗?
答案1
好的,我可以通过以下设置让它工作。我可能不需要像我一样设置路线,但它确实有效。
network:
version: 2
renderer: NetworkManager
ethernets:
enp5s0:
dhcp4: no
addresses: [192.168.0.50/24]
gateway4: 192.168.0.1
nameservers:
addresses: [8.8.8.8]
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
enp4s0f1:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
enp4s0f0:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
enp3s0f1:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
enp3s0f0:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
bridges:
br0:
interfaces: [enp4s0f1, enp4s0f0, enp3s0f1, enp3s0f0]
addresses: [192.168.1.1/24]