如何在三台基于 Linux 的机器之间建立连接?

如何在三台基于 Linux 的机器之间建立连接?

就硬件设置而言,我的 Linux 桌面(ubuntu 14.04)和 jetson tx1(ubuntu 16.04)之间有基于以太网的连接。Raspberry Pi 3 通过 USB-3.0 转以太网适配器(AX11789)连接到 jetson 主板。

硬件设置完成后,软件设置就完成了。首先,/etc/network/interface我桌面上的文件编辑如下:

auto eth0
iface eth0 iface static
address 192.168.1.42
netmask 255.255.255.0
gateway 192.168.1.26

然后在我的 Jetson 中,

auto eth0
iface eth0 inet static
address 192.168.1.26
netmask 255.255.255.0

因为将 jetson 配置为网关(路由器)似乎是正确的,所以 jetson 的 ip 地址应该在桌面和 pi 板上用作网关地址。所以在 pi 板上,

auto eth0
iface eth0 inet static
address 192.168.1.102
netmask 255.255.255.0
gateway 192.168.1.26

在此之后,ping桌面和 jetson 之间以及 jetson 和 pi 之间的请求可以完美运行,但桌面和 pi 板之间的 ping 请求不起作用,并显示Ping from 192.168.1.102: Destination host unreachable

在这种情况下,我是否遗漏了任何关键信息或步骤?这可能是由于以太网转 USB 适配器的配置所致,但我对此并不 100% 确定。

答案1

了解“子网掩码”设置的含义非常重要:它定义哪些地址位于同一以太网段,因此无需网关即可访问。

例如,如果您的桌面地址是192.168.1.42/255.255.255.0,并且您要求它访问 处的 Rpi 192.168.1.102,它将看到两个地址都在同一个子网中,并且根据定义它不会使用网关来访问该地址。(相反,它会立即尝试发送该地址的 ARP 查询。)

路由器/网关通常不以这种方式工作。(路由器位于之间子网,并且假设路由器上的每个端口都属于不同的子网。)因此,如果您希望两个以太网端口属于同一个子网,则与您的需要相反。


为了实现你描述的链接,你需要将 Jetson 设置为(网桥仅根据目标 MAC 地址进行转发。以太网交换机只是硬件加速的网桥。)

该配置有所不同:您必须添加一个虚拟“桥接”接口br0,然后将两个以太网端口配置为其成员:

iface br0 inet static
    address 192.168.1.26/24
    bridge_ports eth0 usb0

(各个“端口”接口仍然没有地址。)


或者,如果你Jetson 充当路由器,那么它的两个接口都需要属于不同的子网(正如 G-Man 在评论中所述)。例如:

iface eth0 inet static
    address 192.168.1.26/24

iface usb0 inet static
    address 192.168.2.26/24

由于Raspberry Pi连接到路由器的usb0,它将属于192.168.2.*网络并使用相应的网关地址。

相关内容