我正在使用 DHCP 服务器和路由表将一些嵌入式 Linux 设备连接到主 LAN。在主 LAN (192.168.1.0/24) 上,我连接了一台 PC 和第一台嵌入式 Linux 设备。嵌入式 Linux 设备有两个以太网端口。一些 Linux 设备使用软件以太网桥连接在一起。每个嵌入式设备应如何运行有两种情况:
链的头部。我编写了一个简单的 bash 脚本,通过提取它看到的网关的 MAC 来检测它是否在主 LAN 上。如果它是头部,它会从主 LAN DHCP 服务器接收 IP 地址并在第二个以太网端口 (192.168.50.0/24) 上创建一个新的子网。
不是头部。当 bash 脚本发现某个设备不是头部时,它只会桥接两个以太网端口。
我尝试了一些简单的路由命令(ip route、route)。目前,从除主机之外的其他设备,我可以 ping 通 50.1 服务器、主机设备上的主 LAN 端口(1.101),但无法 ping 通主 DHCP 服务器(1.1)或主 LAN PC(1.100)。从主 LAN PC,我可以 ping 通第一台设备(1.2)的 LAN 端,但无法 ping 通子网端(50.1)。
头戴式设备:
$ ip route
192.168.50.0/24 dev eth1 src 192.168.50.1
192.168.1.0/24 dev eth0 src 192.168.1.2
default via 192.168.1.1 dev eth0
在链接的设备上:
$ ip route
192.168.50.0/24 dev eth0 proto kernel scope link src 192.168.50.254
127.0.0.0/8 dev lo scope link
default via 192.168.50.1 dev eth0
这里的最终目标是让所有嵌入式设备能够与主 LAN 上的 PC 通信。
还应该知道,也可以有多个链连接到主 LAN。