Маршрут по умолчанию в Debian с двумя интерфейсами

Маршрут по умолчанию в Debian с двумя интерфейсами

У меня есть машина 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ничего.

Связанный контент