我有一个带有两个NIC的系统。这台机器和一些附带的设备将被移动并连接到不同的LAN,或者有时它将使用拨号。
eth0:
- 10.x.x.x address space
- no internet gateway
- only a few devices
eth1 (when used):
- 172.16.x.x or 192.168.x.x or other address spaces
- access to the gateway from LAN to internet
ppp0 (when used):
- internet access through dialup using KPPP
我正在使用ifconfig来打开或关闭接口(除了ppp0,它由KPPP处理)。
如果我首先启动eth1,它会从其DHCP中获取一个地址并获取网关,并将其添加到路由中,因此到达LAN和Internet不会有任何麻烦。
如果我首先或第二次启动eth0,它将获取其地址并将默认网关设置为其地址空间内(在10.xxx范围内)。如果我先启动eth0,然后启动eth1,则默认网关仍保持在10.xxx范围内。
因此,无论我做什么,eth0都会覆盖eth1并“声明”路由中的网关。
有什么方法可以防止eth0声明网关,或确保eth1(如果是第2个启动的话)使用其网关?还是我可以以某种方式优先使用哪个接口的网关,而不是其他接口?
我基本上想确保eth1的默认地址空间网关(如果处于活动状态)被使用,否则,则使用ppp0的默认网关。我希望能够防止eth0拥有默认网关。
ifconfig
会导致任何类型的DHCP交互。通常ifup
,可以通过启动来做到这一点dhclient
。您的eth *接口是否可能是由系统引导过程(例如/etc/init.d/network
)或NetworkManager 引导的?