我对网络还很陌生,只是想用我的准系统 Ubuntu 20.04 服务器设置一个强大的路由器和防火墙。考虑以下 NIC 设置:
enp3s0
:
IP:192.168.1.23
连接到连接 WAN 的路由器(路由器的 IP 192.168.1.5)
enp4s0
:
IP:192.168.1.24
连接到我的内部网络交换机以允许访问我网络中的所有其他设备
我已按照所有步骤将我的服务器变成路由器,并将所有数据包从我的本地网络设备路由到路由器,然后路由到 WAN。
注意:我决定在已经有路由器的情况下将我的服务器变成路由器的原因是,提供给我的路由器属于我的 ISP,并且我不允许更改该路由器中的任何配置或对其进行任何操作。它甚至没有防火墙(说来话长)。
Ping 结果:
ping -I enp4s0 192.168.1.23
PING 192.168.1.23 (192.168.1.23) from 192.168.1.24 enp4s0: 56(84) bytes of data.
它就卡在这里……
ping -I enp3s0 192.168.1.24
PING 192.168.1.24 (192.168.1.24) from 192.168.1.23 enp3s0: 56(84) bytes of data.
和上面的 ping 一样,这个 ping 也卡在这里……
我的 netplan 配置:
network:
ethernets:
enp3s0:
dhcp4: no
addresses:
- 192.168.1.23/24
gateway4: 192.168.1.5
nameservers:
addresses: [192.168.1.23]
enp4s0:
dhcp4: no
addresses:
- 192.168.1.24/24
nameservers:
addresses: [192.168.1.23]
version: 2
路线:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 enp3s0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp3s0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp4s0
答案1
假设这enp4s0
是你的“私人”网络:
network:
ethernets:
enp3s0:
dhcp4: no
addresses:
- 192.168.1.23/24
gateway4: 192.168.1.5
nameservers:
addresses: [192.168.1.23]
enp4s0:
dhcp4: no
addresses:
- 192.168.2.1/24
version: 2
然后,您需要在您的私人网络上配置一台计算机,以便192.168.2.x
测试对 192.168.1.23 IP 地址的 ping 操作。
192.168.1.0 网络 ping 192.168.2.0 网络时会遇到麻烦,除非您可以让 192.168.1.0 网络知道 192.168.2.0 网络的存在(自动发现功能可能会帮到您,但过去我在这方面取得的成功参差不齐)
您可能会发现在 Linux 路由器上设置 NAT 更容易,这样对 192.168.1.0 网络的所有请求都来自 192.168.1.23 IP 地址。
按照:如何在基于 Linux 的计算机上设置 NAT 路由器:
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
iptables -A FORWARD -i enp4s0 -j ACCEPT
(希望我已经正确理解了 enpsx)