Ubuntu 22.04 作为路由器。2 个 LAN(带 Internet 的 LAN + 带 AP 的 LAN)。AP 网络看不到第一个网络的 IP 地址

Ubuntu 22.04 作为路由器。2 个 LAN(带 Internet 的 LAN + 带 AP 的 LAN)。AP 网络看不到第一个网络的 IP 地址

我已经有一段时间没有设置类似的配置了...这就是为什么我有点困惑。

所以我有一个装有 Ubuntu 22.04 的盒子,上面有两张 LAN 卡。我的网络看起来就是这样的。

路由器[192.168.88.1/24]:

  • 乌班图盒 [192.168.88.13]
  • UBUNTU BOX [192.168.0.1] LAN <-> WiFi 路由器 [192.168.0.2] LAN + 客户端 DHCP 服务器 [192.168.89.0] WiFi

目前,我可以为连接到 AccessPoint 的客户端设置互联网。

因此每个客户端都可以连接到 IP 地址为 192.168.89.X 的 WiFi 并 ping 任何互联网地址。不幸的是,此 WiFi 的任何客户端都无法 ping 192.168.89.X 的任何地址。88.X 网络。

我已经关闭了 IP 转发,并向 iptables 添加了一些规则。我认为现在规则太多了,因为我尝试了几种方法……

网络

enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.88.13  netmask 255.255.255.0  broadcast 192.168.88.255
        inet6 fe80::2ce9:d972:ce72:f7d8  prefixlen 64  scopeid 0x20<link>
        ether 00:be:43:84:cd:35  txqueuelen 1000  (Ethernet)
        RX packets 48016092  bytes 26505597173 (26.5 GB)
        RX errors 0  dropped 47765  overruns 0  frame 0
        TX packets 123449070  bytes 180432950103 (180.4 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 125  base 0x1000

enx9cebe88109ac: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.1  netmask 255.255.255.0  broadcast 192.168.0.255
        ether 9c:eb:e8:81:09:ac  txqueuelen 1000  (Ethernet)
        RX packets 77389  bytes 58389787 (58.3 MB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 109331  bytes 103341907 (103.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 10728417  bytes 3340060879 (3.3 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10728417  bytes 3340060879 (3.3 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp0s12f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.88.7  netmask 255.255.255.0  broadcast 192.168.88.255
        inet6 fe80::c9a2:b0e3:aafb:f440  prefixlen 64  scopeid 0x20<link>
        ether 80:38:fb:fc:ce:7a  txqueuelen 1000  (Ethernet)
        RX packets 123977727  bytes 160442634118 (160.4 GB)
        RX errors 0  dropped 2  overruns 0  frame 0
        TX packets 47523184  bytes 17237110530 (17.2 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

iptables

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i enx9cebe88109ac -o enp1s0 -j ACCEPT
-A FORWARD -i enp1s0 -o enx9cebe88109ac -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j ACCEPT

端口转发已开启。

感谢帮助。

答案1

从您的描述中我不清楚设备是如何相互连接的。请画一张简单的图,包括设备、它们的接口以及它们之间的网络(互联网路由器、作为 LAN 之间路由器的 Linux 机箱、Wi-Fi 路由器等)。然后应该很容易确定连接断开的原因。

第一个可能的问题

很可能某个设备的路由表中缺少数据,该设备(可能是 Wi-Fi 路由器)不知道将数据包路由到 192.168.88.0/24 网络的何处。为了便于分析,您需要附上设备(包括 Wi-Fi 路由器)的路由表列表。

ip route

网络上的邻居列表也很有用:

ip neigh

每个路由器(包括 Ubuntu 盒)都必须启用 IP 转发,否则路由器无法在其接口之间将数据包从一个网络转发到另一个网络!

假设解决方案:

在Wi-Fi路由器上添加路由条目:

  • 目标网络:192.168.88.0
  • 掩码:255.255.255.0
  • 下一跳地址(网关):192.168.0.1

第二个问题

如果两个接口enp1s0wlp0s12f0都属于同一设备,则这是错误的。接口位于同一网络上,只是地址不同,同一设备在同一网络上通信时有两个并发路径,这可能会造成混乱。关闭接口wlp0s12f0。以太网enp1s0比无线网络具有更好的性能,尤其是可靠性。

相关内容