如何使用 Linux 通过串行端口桥接两个 LAN 段?

如何使用 Linux 通过串行端口桥接两个 LAN 段?

我有一个应用程序,其中两个子网通过两个串行至以太网桥以及零调制解调器串行电缆(RS-232,仅 TX 和 RX)。此设置的行为与以太网电缆完全相同,只是速度和延迟不同。

我的应用图

这些桥对我来说相当昂贵,我想知道如何使用运行 Linux 的廉价 SBC(例如 Raspberry Pi)来实现它。我已经搜索了好几天,但没有成功。

我在论坛上看到 netcat、ppp 和 ser2net 都不能完成这项工作,而 brctl 仅适用于以太网接口。我考虑过使用 socat 或 bridge-utils,但我找不到任何与我的应用程序类似的应用程序的参考资料。我看到很多应用程序都是通过 TCP 连接桥接串行设备,而不是像我的情况那样反过来。

你能帮我解决这个问题吗?

我的网络知识很基础,对于任何错误我深表歉意。

答案1

Quickshot 未经socat测试:

socat TUN:10.10.1.4/24,tun-type=tap,tun-name=tap0,iff-up /dev/ttyS0,rawer

然后将其添加到桥中(例如br0):

ip link set tap0 master br0

rawer如果还不够原始,可能需要进行一些修改。如果我没记错的话,只需要 IP 地址就可以socat了。

或者,使用一些为通过串行链路联网而制定的协议,如 SLIP 或 PPP,这些协议可以正确转义奇怪的字符并在紧急情况下进行流量控制,然后在其上运行第 2 层隧道。效率较低且设置起来更困难。

相关内容