通过串行链路透明地桥接网络

通过串行链路透明地桥接网络

我有两个 Linux 设备 - 为简单起见,我们将它们称为 Raspberry Pi - 在一个盒子中,我想通过单个以太网链路连接到网络。

它们都需要可以在网络上单独访问。我可以很容易地通过串行端口将一个连接到另一个。

它看起来像是pppdslip可能是答案,但是到目前为止我看到的所有示例都使用固定配置,这对我来说没有用 -两个都董事会需要能够承担任何IP 地址可以通过 DHCP 或手动配置,与其他配置无关。

感觉使用 Linux 应该相当容易完成,但要么我没有找到正确的信息,要么我在搜索时使用了错误的术语。

任何想法表示赞赏。

答案1

你可以装备一些东西和桥梁。

在串行端口的两端,您可以使用它的变体

socat TUN,tun-type=tap,iff-up /dev/ttyS0

,您将在串行连接的两端获得一个 TAP 以太网设备。

索卡特TAP 设备的一系列选项并为串行端口

您可能需要手动选择最佳串行端口速度,并且必须对两端的 TAP 设备进行桥接和其他网络集成。

答案2

这里有一个先有鸡还是先有蛋的问题:要建立 PPP/SLIP 连接,您需要 IP 参数,但串行连接设备在 PPP/SLIP 连接建立之前无法发出 DHCP 请求。 PPP 有自己的方法将配置信息从 PPP 服务器传递到客户端,但如果我没记错的话,SLIP 可能需要串行链路两端预先存在的配置信息。

据我所知,您有两种选择:

A.) 使用固定专用 IP 来设置 PPP/SLIP 链路,如果连接了链路,则让以太网连接设备为其自身配置第二个 IP 地址(通过运行 DHCP 客户端的第二个实例或通过手动方式)配置)并使用 NAT 将第二个 IP 地址的流量重定向到串行链路上使用的固定地址。

在这种方法中,串行连接的客户端不一定知道其真实IP地址,如果您需要使用不支持NAT的网络协议,这可能会出现问题。另一方面,在实际建立连接之前不必保留第二个地址。

B.) 让以太网连接的设备始终配置有两个以太网端 IP 地址(例如,如果使用 DHCP,则运行 DHCP 客户端的两个实例),一旦知道第二个地址,就用它来配置以太网端的服务器端。串行链接。如果使用pppd,请使用其proxyarp选项。如果使用 SLIP,请以其他方式配置代理 ARP(例如echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp)。

如果配置为准备串行连接,此方法将使以太网连接设备始终保留两个 IP 地址,但将允许串行连接设备实际保留可访问的 IP 地址。

对于这两种方法,串行连接设备的大部分网络配置必须在以太网连接设备上进行。

相关内容