Ubuntu 路由器:无法在两个网卡之间 ping 通

Ubuntu 路由器:无法在两个网卡之间 ping 通

我对网络还很陌生,只是想用我的准系统 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)

相关内容