启动时自动检测正确的网络接口并获取 dhcp

启动时自动检测正确的网络接口并获取 dhcp

在准备微型取证系统时,我遇到了一个问题:让我们想象一下,我们为许多不同的工作站准备一个 usb-flash 启动的 linux。在设置网络(ipv4 dhcp)时,我们可以找到多个 LAN 接口,有些已连接,有些未连接,但希望其中一个连接到私有 LAN(例如 192.168.20.0/24),并且只应设置此接口。

也许可以通过一些 udev 规则来解决,但我找不到它们在哪里以及如何修改它们。目前,我使用自己的 /etc/rc.local 脚本以及对 dhclient.conf 的一些修改(拒绝网络),但即使它以某种方式运行(更好地说:它行走),它也不可靠,而且很多时候它无法成功完成本地 cifs 挂载,即使在同一个工作站上也是如此。

有人可以告诉我如何解决这个问题吗?

细节:

  • 私有局域网与一个可管理的交换机隔离
  • 本地 dnsmasq 服务器仅响应此私有 LAN 中的请求
  • 每个工作站可以有 1 - 4 个(线路)NIC
  • 一些工作站不仅连接到私有 LAN,还可以通过其他 dhcp 服务器配置一些 NIC,或者可以拥有静态 IP - 但这些接口应该被忽略

目标是:开机后获取dhcp地址并连接本地网络数据存储。

非常感谢

答案1

如果不激活它们,就无法检测哪个 NIC 位于私有 LAN 上。

我的建议是:逐个激活 NIC 并执行 dhcp 请求。如果出现超时,则表示该 NIC 不在 dhcp LAN(静态 ip)上,您可以再次禁用它。如果收到响应,您就知道该 NIC 是否在正确的子网上,您可以将其保持启用状态,如果子网错误,则可以将其禁用。

或者,您可以“保留” dhcp 范围内的 ip,这样它就不会被分发给其他客户端。然后,您可以依次将该 ip 分配给每个 NIC,激活它们,并检查是否可以访问网络存储。如果不能,请禁用该 NIC 并转到下一个。找到正确的 NIC 后,您可以保留保留的 ip(如果您在任何时候只使用其中 1 个可启动 usb),或者重新配置 NIC 以从 dhcp 获取不同的 ip。

相关内容