正确的networking接口在启动时自动检测并获得dhcp

在准备迷你鉴证系统时,我挂着一个问题:让我们想象一下,我们为很多不同的工作站准备了一个usb-flash引导的linux。 在设置networking(ipv4 dhcp)的同时,我们可以find多个局域网接口,有人连接,有人不在,但希望其中一个连接到专用局域网(例如192.168.20.0/24),只有这个界面应该设置。

也许它可以用一些udev规则来解决,但是我找不到它们在哪里以及它们如何被修改。 目前我使用我自己的/etc/rc.local脚本来修改dhclient.conf(拒绝networking),但是即使它以某种方式运行(更好地说:它走),它是不可靠的,很多时候它不完成即使在同一台工作站上,本地CIF也能成功安装。

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

细节:

  • 专用LAN与一个可pipe理的交换机隔离
  • 本地dnsmasq服务器响应专门在这个私人局域网
  • 每个工作站可以有1〜4个(电线)网卡
  • 一些工作站不仅连接到专用局域网,还可以有一些其他DHCP服务器configuration的网卡或可以有静态IP – 但这些接口应该被忽略

目标是:启动后获得dhcp地址并连接到本地networking数据。

非常感谢

没有办法检测哪个网卡在专用LAN上而不激活它们。

我的build议是:一个接一个地激活网卡并执行一个DHCP请求。 如果你得到一个超时,该网卡不在一个DHCP局域网(静态IP),你可以再次禁用它。 如果得到响应,则知道该NIC是否在正确的子网上,如果它是错误的子网,则可以将其保留为启用或禁用。

或者,您可以在dhcp范围内“保留”一个IP,以便它不会被分发给其他客户端。 然后,您可以依次将该ip分配给每个NIC,激活它们,并检查是否可以访问networking存储。 如果不能,请禁用该网卡并转到下一个网卡。 一旦你find了正确的网卡,你可以保留保留的ip(如果你只有一个可启动的usb在使用中),或者重新configuration网卡以获得与dhcp不同的ip。