У меня есть машина Debian с двумя интерфейсами, настроенными по DHCP:
allow-hotplug eth0
iface eth0 inet dhcp
allow-hotplug eth1
iface eth1 inet dhcp
При загрузке к eth1 добавляется маршрут по умолчанию:
0.0.0.0 10.200.10.253 0.0.0.0 UG 0 0 0 eth1
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.200.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Но мне нужно, чтобы маршрут по умолчанию был шлюзом на eth0. Удаление маршрута по умолчанию и запуск dhclient после загрузки работает:
$ sudo route del default
$ sudo dhclient -v eth0
Я знаю, что могу это сделать rc.local
, но есть ли более «чистый» способ?
Я не могу использовать статический адрес.
решение1
Мне кажется, что оба DHCP-клиента, которые были созданы — каждый для своего соответствующего iface — получают шлюз по умолчанию и участвуют в гонке. Все происходит так, что тот, который включен, eth1
надежно побеждает (по какой-то причине).
Решение не кажется очевидным, поскольку оно зависит от вашей настройки. Получение GW по умолчанию с помощью DHCP логически означает, что вам все равно, где он находится.
На основеэтотиэтот, я бы попробовал добавить
interface eth1 {
supersede routers ""
}
и посмотреть /etc/dhcp/dhclient.conf
, что получится. Идея заключается в том, чтобы supersede
любой, routers
предоставленный DHCP-сервером, достиг через eth1
ничего.