设置两个可能的networkingconfiguration,但只使用一个

我有一台仪器,它通过一个运行rasbian的覆盆子pi有一个networking接口。 我正在尝试设置接口文件,所以它将自动在我们的子网中使用静态IP工作。 基本上当在子网0(或默认)应该有以下内容:

auto eth0 iface eth0 inet static address 192.168.0.77 netmask 255.255.255.0 gateway 192.168.0.254 

而在其他子网(1)中应该有:

 auto eth0 iface eth0 inet static address 192.168.1.77 netmask 255.255.255.0 gateway 192.168.1.254 

我最后的尝试如下:

 # etc/networking/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.77 netmask 255.255.255.0 gateway 192.168.0.254 up ip route add default via 192.168.1.254 table cbs up ip rule add from 192.168.1.77 table cbs up ip route add default via 192.168.0.254 auto eth0:0 iface eth0:0 inet static address 192.168.1.77 netmask 255.255.255.0 

不使用DHCP的原因是,仪器可以直接连接到笔记本电脑(无路由器),并且仍然具有已知的IP。 当前设置的问题是在子网0上时,任何指向子网1的数据包将从192.168.1.77开始,然后直接指向192.168.1.254,这只能通过192.168.0.254获得。 解决这个问题的最好方法是什么? 也许一个启动脚本检测它在哪个networking,并设置该会话的默认网关和IP? 而我将如何执行这个?

还是有一种通过DHCP请求特定地址的方法?

最后我修改了Nath的答案(谢谢!)。 我的接口文件现在看起来像这样:

 # etc/networking/interfaces auto lo iface lo inet loopback iface eth0 inet manual 

而我的dhcpcd.conf有这个追加:

 # etc/dhcpcd.conf interface eth0 arping 192.168.1.254 arping 192.168.0.254 fallback nicutpi2 profile 192.168.1.254 static ip_address=192.168.1.77 static routers=192.168.1.254 static domain_name_servers=192.168.1.254 profile 192.168.0.254 static ip_address=192.168.0.77 static routers=192.168.0.254 static domain_name_servers=192.168.0.254 profile nicutpi2 static ip_address=192.168.0.77 

通过在本地networking上查找匹配的服务器(注意,这可以是任何一直在开的IP,而不仅仅是DHCP服务器),如果发现它使用相应的configuration文件。 如果没有findconfiguration文件,它将在标准的DHCP上运行。 如果networking中没有DHCP服务器(技术上DHCP失败),则应用回退configuration文件。

重要要点:

  • 这需要dhcpcd5(而不是dhcpcd)包,这是与raspbian Jessie标准,但不是Wheezy(我必须在Wheezy上安装)

  • iputils-arping与dhcpcd.conf中使用的arping冲突,如果你有这个,你将需要卸载并干净地安装dhcpcd5。

DHCP服务器可以configuration为向同一个以太网MAC提供相同的IP地址。 这应该允许你每次都得到相同的IP。

我认为最好的办法是在连接到networking时执行静态DHCP分配,然后使用dhcpcd.conf fallback profile选项让dhcp客户端只有在无法从dhcp获得静态IP时才生成静态IP,有关使用fallback profile更多详细信息,请参阅https://raspberrypi.stackexchange.com/questions/37920/how-do-i-set-up-networking-wifi-static-ip