我想通过以太网电缆可靠地连接两台机器。一台机器称为积极的(我的笔记本电脑),另一台机器称为被动的(未连接互联网,只是坐下来从其调查界面收集数据)。我认为可能有效的方法是:
- 设置我的笔记本电脑以通过 DHCP 向其他人提供 IP 地址(
dnsmasq
?) - 被动的机器是一个简单的 Linux 安装 - 默认情况下,它们准备通过以太网连接并通过 DHCP 获取地址
- 我带着笔记本电脑走到需要收集数据的机器上,只需插入以太网电缆即可连接两者。 DHCP 服务器设置为仅提供一个地址,因此我始终可以通过主动计算机的相同地址访问被动计算机。
根据网卡是否可以检测交叉,我使用交叉电缆或普通电缆。
我正在考虑这样一种情况:笔记本电脑很容易重新配置,但无源机器可能有很多(但一次只能连接到一台),并且它们可能不会配置相同的 IP。那么为他们提供 DHCP 地址可能是一个“有效”的解决方案,可以避免依赖静态配置的某个 IP。
您能否向我提供有关这是否有效的提示/警告?
答案1
你提到a)其他人参与,b)简单的linux安装。我会给出以下提示:注意安装 avahi-daemon 的软件包。
还设置一个描述性主机名。使用 MDNS,您无需保证主机名是唯一的。事实上,MDNS 规范说你不“应该”通过附加一个随机的数字或一个大的ID,如 MAC 地址;这被认为是无缘无故地推迟用户。 sensor5
不过是合理的。该协议通过将序列号(带有破折号)附加到 MDNS 主机名来自动解决冲突。
或者,如果您要使用 Samba 下载数据文件,则可以检查使用 NMBD(TCP 上的 netbios)的旧版 IPv4 发现是否正常运行。系统应该显示在smbtree -N
. NMB 确实不是倾向于解决命名冲突。自动生成主机名的人们倾向于附加 MAC 地址的最后几个字符,以避免这个问题。
启用 MDNS (avahi-daemon) 等发现协议的优点是,它提供了一种可靠的方法来发现 IP 地址,即使有人静态配置它也是如此。
- 为简单起见,请禁用笔记本电脑上的其他(无线)网络连接。
tcpdump -n
/wireshark/tshark。即监听所有接口。如果您在特定接口上监听,当 NetworkManager 发现电缆已拔出时,它可能会停止/拒绝运行。- 将笔记本电脑插入设备。
- 如果设备没有响应(软件不响应链路更改),只需重新启动设备即可。
步骤 2 还将显示设备何时配置为 DHCP 客户端。 (然后您可以启动 DHCP 服务器)。数据包捕获还将确认 IP 地址分配。
或者,可以将设备插入网络(大概提供 DHCP 服务器,至少对您的笔记本电脑有利)。如果您连接到同一网络,发现协议和地址将在数据包捕获中可见,和它要么是未启用多播过滤的基本网络交换机,要么您正在运行特定的发现协议。我相信任何当前的消费者以太网交换机都可以工作(包括消费者路由器内置的有线以太网交换机)。
如果某些设备需要连接到网络,您应该附加一个带有其主机名的标签。 (如果它有静态IP,这也确实想要被标记)。
这对于不同的发现协议来说是不是很好?消费者网络设备将始终运行某种发现协议,因此许多“高级用户”都知道(或可以使用 Google 发现)该技术。但是,如果您从最小的嵌入式 Linux 安装开始,那么您可能没有任何默认情况下启用发现协议。
其他最重要的发现协议是 LLMNR(Windows、systemd-resolved)、LLDP(企业路由器、IP 电话等)和用于 UPnP 设备(包括消费者路由器)的 SSDP。这就是标准的伟大之处...。
答案2
我同意,静态 IP 将是直接机器对机器系统的更好方法。使用与其他支持网络的设备所使用的不同的 IP 地址范围。
我还推荐交叉电缆。默认情况下您需要它,并且使用它可以减少硬件在设置连接时错误识别自身的可能性。