
Я подключил компьютер (работающий под управлением Debian Wheezy) к двум разным DHCP-серверам (маршрутизаторам) через кабель и через устройство Wi-Fi. Если я посмотрю маршруты с помощью route
, я получу следующий результат
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.2.1 0.0.0.0 UG 202 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 303 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 303 0 0 wlan0
192.168.2.0 * 255.255.255.0 U 202 0 0 eth0
Если я выполняю a traceroute
на какой-то внешний адрес, я вижу, что он проходит через первый маршрутизатор 192.168.2.1
. Если я удаляю один маршрут с
$ route del default eth0
и запустив traceroute
по тому же адресу, я вижу, что теперь используется 192.168.1.1
.
Мои вопросы.
Какой из двух маршрутов по умолчанию выбирается? Всегда ли это первый маршрут, указанный route
, или он выбирается каждый раз по каким-то критериям?
Если один маршрут по умолчанию имеет более высокий приоритет, как он выбирается? Это просто интерфейс, который появился первым во время загрузки?
Если я хочу иметь предпочтительный маршрут или даже удалить один из двух маршрутов по умолчанию, как мне это сделать? Достаточно ли удалить маршрут с помощью
$ route del default eth0
или этот маршрут будет автоматически добавляться каждый раз, когда клиенту будет назначаться новый адрес?
Контекст моих вопросов: Компьютер X подключен к сетям A и B с помощью DHCP. Маршрутизатор A должен служить шлюзом для X, а маршрутизатор B — нет: маршрутизатор B должен разрешать X взаимодействовать только с компьютерами в сети B.