Желаемый результат: назначьте шлюз для конкретного интерфейса в случае, когда также принимаются общие настройки шлюза, предоставленные DHCP.
Текущая ситуация: настройка шлюза для конкретного интерфейса не распознается, вероятно, потому, что по умолчанию она имеет ту же метрику, что и шлюз, предоставляемый DHCP. Изменение метрики специфичного для интерфейса шлюза позволяет его распознать, но затем приводит к нежелательной ситуации, когда у зависящего от интерфейса шлюза нет более высокой метрики. Могу ли я что-нибудь сделать, если запретить изменение настроек, предоставляемых DHCP?
Подробности:
Я пытаюсь добавить шлюз для конкретного интерфейса, поэтому добавил строку:
default via 10.76.220.205 dev eth1
на route-eth0, но когда я перезапускаю сеть, я получаю следующую ошибку:
RTNETLINK отвечает: файл существует
Согласно Руководство по развертыванию RHEL:
Если шлюз по умолчанию уже назначен из DHCP, формат аргументов команды IP может вызвать одну из двух ошибок во время запуска или при выводе интерфейса из неактивного состояния с помощью команды ifup: «RTNETLINK отвечает: файл существует» или ' Ошибка: либо «to» - дубликат, либо «XXXX» - мусор. ', Где XXXX - шлюз, либо другой IP-адрес. Эти ошибки также могут возникать, если у вас есть другой маршрут к другой сети с использованием шлюза по умолчанию. Обе эти ошибки можно проигнорировать.
В настоящее время хосту назначен DHCP, но я хотел бы переопределить настройку шлюза для определенного интерфейса. Когда я запускаю «route», мой новый маршрут не отображается в списке, хотя я добавил указанную выше строку в файл route-eth0 и перезапустил сеть. Когда я добавляю метрику в файл route-eth0, например: default via 10.76.220.205 dev eth1 metric 1
Команда route показывает мой дополнительный шлюз. Похоже, что сеть распознает второй шлюз только в том случае, если у него другая метрика. (Метрика шлюза по умолчанию для шлюза, предоставленного dhcp, равна 0). Но в результате у меня, конечно, остается мой новый интерфейсный шлюз с метрикой выше, чем у шлюза, предоставляемого DHCP, и поэтому он остается неиспользованным. Есть предложения по решению этой проблемы?
Во-первых, я не думаю, что вы можете осмысленно устанавливать шлюз по умолчанию для каждого интерфейса отдельно.
Если вы говорите, что хотите, чтобы ваш шлюз по умолчанию исходил из вашей статической записи, а не из dhcp, вам нужно указать подсистеме DHCP не приобретать его.
Если не изменяет память, C62 использует dhclient
, который, к сожалению, не имеет простого флага времени выполнения, который говорит «не устанавливать маршрут по умолчанию». Вместо, man dhclient.conf
предлагает вам указать параметры, которые вы хотите установить dhclient, поэтому в /etc/dhcp/dhclient-eth0.conf
ты захочешь что-то вроде
request subnet-mask, broadcast-address, domain-name, domain-search, domain-name-servers;
Обратите внимание на отсутствие routers
. При этом в качестве рабочего шлюза по умолчанию для вашей системы должен остаться установленный вручную шлюз 10.76.220.205.