Назад | Перейти на главную страницу

Несколько шлюзов по умолчанию на одном интерфейсе

Допустимо ли иметь несколько шлюзов по умолчанию, связанных с одним и тем же интерфейсом. Я думал, что это не имеет смысла, но я вижу это на своем ноутбуке

$ route
Kernel IP routing table                                                                                                              
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.1.0.0        *               255.255.248.0   U     1      0        0 eth0
default         10.1.1.1        0.0.0.0         UG    0      0        0 eth0
default         10.1.1.1        0.0.0.0         UG    202    0        0 eth0

Причина, по которой я спрашиваю, заключается в том, что во встроенной системе, для которой мы разрабатываем, нам нужно получить шлюз по умолчанию, связанный с конкретным интерфейсом. Это просто проблема отображения, когда один и тот же шлюз по умолчанию отображается дважды? Или наличие нескольких шлюзов по умолчанию на одном интерфейсе означает то, что я должен принять во внимание.

Неверно иметь несколько шлюзов по умолчанию на одном компьютере, не говоря уже об одном интерфейсе. Конечно, есть некоторые крошечные крайние случаи, когда это может помочь, но я никогда не встречал ничего, что приходило бы в голову. Обычно у вас есть статика по умолчанию для всего, что находится за пределами этого.

Если вы посмотрите внимательно, вы увидите разные значения в столбце «метрика». Все остальное одинаково, поэтому я подозреваю некоторую неправильную (-auto-) конфигурацию.

С "настоящим" протоколом маршрутизации вы жестяная банка иметь разные маршруты с одним и тем же местом назначения (хотя нельзя говорить о нескольких шлюзах по умолчанию), которые будут выбраны в соответствии с их «стоимостью» маршрутизации, например чем выше "метрика" маршрута, тем меньше вероятность того, что маршрут действительно используется. Когда возникает конфликт в сети, показатели будут динамически адаптироваться, чтобы отразить это, так что в этом случае можно было бы выбрать другой маршрут к тому же пункту назначения.

На самом деле нет смысла иметь более одного шлюза по умолчанию в одной таблице маршрутизации. Обычно в Linux для выбора маршрута используется только адрес назначения пакета. Маршруты будут проверяться от наиболее конкретных до наименее конкретных, чтобы определить, применим ли этот маршрут к пункту назначения. Если конкретный маршрут не найден, будет использоваться маршрут по умолчанию с самой низкой метрикой.

Если вы хотите или вам нужно выбрать маршрут на основе других критериев, таких как исходный адрес, вам нужно будет использовать расширенные функции маршрутизации. Это будет означать создание нескольких таблиц маршрутов и использование ip rule выбрать подходящую таблицу на основе любых критериев.


Похоже, вы пытаетесь отобразить маршрут в каком-то графическом интерфейсе, который вы разрабатываете? Надеюсь, что в вашей встроенной настройке у вас не будет ситуации, когда будет установлено несколько шлюзов по умолчанию. В любом случае вам, вероятно, не следует управлять шлюзом по умолчанию для каждого интерфейса. Маршруты по умолчанию и большинство маршрутов должны управляться отдельно от конфигурации IP для конкретного интерфейса. Маршруты действительно являются общесистемными, а не индивидуальными.

Маршрут по умолчанию, даже как показано выше в двух строках, остается тем же узлом. (10.1.1.1) Единственное различие между ними - это столбец "Метрика". Обычно это количество хмеля. Изменилось ли что-нибудь в топологии вашей сети, что могло бы повлиять на это поле? Вероятно, из-за этого он отображается только дважды. Перезагрузите или перезапустите сетевые службы, и это должно очиститься.

Какой дистрибутив вы используете? В Red Hat вы можете проверить шлюз по умолчанию в / etc / sysconfig / network. Используя команду маршрута, вы получите любой непредвиденный результат, как вы видите здесь. Придерживайтесь получения маршрута по умолчанию из задокументированной конфигурации ОС, а не из другого двоичного файла.