Может ли ПК иметь более одного шлюза по умолчанию?


12

Я знаю, что ПК может иметь несколько сетевых адаптеров, каждый из которых имеет разные сетевые идентификаторы (IP, MAC и т. Д.).

У меня вопрос, может ли определенный компьютер иметь более одного активного шлюза по умолчанию? И если да, то как ПК (или, лучше сказать, ОС) знает, какой адаптер используется для любого данного пакета?


ключевое слово "default", если оно просто говорит ip gateway, тогда все может быть иначе.
Тони Рот

1
Лучший способ сделать это - поместить метрику с более высоким маршрутом в одно из значений по умолчанию. Это хорошо работает как на Windows, так и на Linux. Маршрут с более низкой метрикой побеждает, пока этот интерфейс не выйдет из строя
Майк Пеннингтон

1
Мне бы очень хотелось узнать, чего вы пытаетесь достичь с помощью нескольких шлюзов по умолчанию. Балансировка нагрузки?? Возможно, есть более конкретный основной вопрос.
Пол Аккерман

Ответы:


25

Технически да, практически нет.

Ключ находится в термине «по умолчанию», это по умолчанию - у меня есть бутерброд по умолчанию, который я заказываю из Subway (Meatball Marinara с сыром и халапеньо), который я обычно изменяю, хотя по-прежнему мой по умолчанию, у меня нет двух значений по умолчанию.

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

Надеюсь, это поможет, и не заставит вас слишком голодать ...


7
+1 за аналогии с едой.
Том О'Коннор

1
+1 Хотя большинство операционных систем могут поддерживать несколько сетевых представлений, что позволяет использовать несколько шлюзов по умолчанию, хотя почти наверняка не в том смысле, о котором думает спрашивающий.
Крис С

Что происходит, когда у вас есть две сетевые карты, A и B, которые устанавливают шлюз по умолчанию, выходящий через A, и кто-то начинает разговор с вами через B? (Мне любопытно, потому что я написал ответ вокруг этой конкретной ситуации, и теперь я начинаю подвергать его сомнению)

1
@ArjunShankar затем передает обратно, используя NIC B, просто потому, что он знает об этом маршруте, маршрут по умолчанию используется только тогда, когда нет прямого маршрута к месту назначения.
Chopper3

Тем не менее, полезно отметить, что если вы получаете пакеты на B из сети, к которой вы не подключены (она была ROUTED для вас), то вы получите асимметричный диалог, потому что сеть назначения не находится в таблице маршрутизации и поэтому ответы будут отправлены на шлюз по умолчанию. Если это прямой маршрут, он должен работать в любом случае, но если он проходит через брандмауэр с отслеживанием состояния в любом месте, он может вас разозлить
SpacemanSpiff

18

Нет, он не может иметь более одного активного шлюза по умолчанию.

Любая операционная система может иметь несколько настроенных шлюзов по умолчанию (технически это маршрут по неопределенному адресу , т.е. 0.0.0.0или ::). В этом случае он делает то же, что и для любого маршрута с несколькими путями.

  • Он выбирает активный маршрут на основе значения предпочтения.
  • Если есть несколько с одинаковыми предпочтениями, он выбирает один на основе метрики
  • Если предпочтения и метрика одинаковы (что, вероятно, относится только к статическим маршрутам), метод выбора будет зависеть от операционной системы, но он выберет один и пометит его как активный.

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

И если вводится новый маршрут с более высокой метрикой или предпочтением, он переключается на наиболее предпочтительную, а затем на самую короткую метрику.

Но в любой момент времени он может иметь только один (или ноль) активный маршрут к какому-либо конкретному пункту назначения.


Обратите внимание, я намеренно пропустил более конкретные маршруты, потому что речь идет о значениях по умолчанию . Выбор маршрута происходит в следующем порядке: 1) наиболее конкретный 2) наиболее предпочтительный 3) кратчайший показатель. Если все равны, это более или менее произвольно.
Багамат

хороший ответ, имеет смысл, и короткий
SpacemanSpiff

@bahamat Если у меня есть два значения по умолчанию, и активное не может привести меня к месту назначения. Будет ли ОС сразу пытаться связаться со вторым?
AhmedWas

@AhmedWas К сожалению, ответ является более сложным, чем вписывается в комментарий обмена стека. Это действительно зависит от множества различных факторов. Иногда это может произойти, но иногда нет, в зависимости от того, как оно настроено и как ведут себя другие компоненты в сети.
Багамат

@bahamat Спасибо за комментарий. Не могли бы вы привести простой пример, когда ОС будет пытаться связаться со вторым доступным шлюзом?
AhmedWas

3

В Windows (по крайней мере, в Vista) хорошо иметь несколько маршрутов по умолчанию на одном интерфейсе с разными метриками. Windows автоматически переключится на маршрут со следующей наивысшей метрикой, если маршрутизатор с более низкой метрикой выйдет из строя. Если существует несколько маршрутов по умолчанию с одним и тем же показателем, Windows случайным образом выбирает один из них для использования.

Это позволяет вам иметь избыточные маршрутизаторы без настройки аварийного переключения на маршрутизаторах.

В Linux это не работает. У вас может быть несколько маршрутов по умолчанию с разными метриками, но в настоящее время ядро ​​Linux игнорирует значение метрики. Если маршрутизатор по умолчанию с наименьшей метрикой исчезнет, ​​трафик не будет передаваться.


Также интересно отметить, что вы можете установить шлюз по умолчанию для нескольких подключений, но если вы откроете меню расширенных настроек в разделе сетевых подключений, где вы можете выбрать порядок привязки, вы выберете тот, который NIC находится вверху, а затем идти вниз по линии. Мне смешно, как много людей копаются с некоторыми вещами через CLI, когда это просто щелчок.
SpacemanSpiff

1
Маршруты по умолчанию не совпадают с маршрутами по умолчанию. Два используются в разных контекстах.
Джон Гарденье

@JPW Если у меня есть два значения по умолчанию, и активное не может привести меня к месту назначения. Будет ли ОС сразу пытаться связаться со вторым?
AhmedWas

3

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

За исключением не совсем, потому что ваши правила маршрутизации могут быть более сложными. Современные версии Linux, например, поддерживают использование нескольких полностью независимых таблиц маршрутизации и определяют пакет за пакетом, к какой таблице обращаться. Например, возможно, у вас есть одна сетевая конфигурация, используемая для обычного трафика, но совершенно другая таблица маршрутизации для вашего веб-браузера. Или, возможно, у вас есть другая таблица маршрутизации, которая используется только для пакетов с определенными установленными битами TOS. Но у каждого будет свой собственный шлюз по умолчанию, который будет отражать маршрут по умолчанию для этой конкретной таблицы маршрутизации.

Обычно таблица маршрутизации проста: «локальный трафик к локальному интерфейсу, все остальное к маршрутизатору». Но если вы используете более сложную сетевую настройку, то существуют инструменты, позволяющие справиться с любым сетевым сценарием, который вы можете придумать.


это должен быть принятый ответ.
Прости

1

ПК может иметь более 1 шлюза по умолчанию, но в конфигурации статического IP-адреса вы вводите только 1 адрес, на самом деле это может быть несколько шлюзов по умолчанию, которые выводят вас за пределы вашей сети. Существует адрес, который называется плавающим адресом, этот адрес является только виртуальным, а не реальным. Адрес - это адрес, который находится между двумя маршрутизаторами в одной сети. плавающий адрес вводится на ПК, и когда он приходит к коммутатору на работе / до того, как он входит в маршрутизаторы, он делает свои собственные выводы о пути и выбирает один из двух или более шлюзов по умолчанию.

Трудно показать вам, как это работает, это инструменты профессионального уровня сети, протоколы, которые работают в сети, когда он используется: VRRP и HSRP. Протоколы Cisco и Juniper.


0

Да, ты можешь. Но какой в ​​этом смысл?

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

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

Это можно сделать, но не с помощью простых средств шлюза по умолчанию.


-2

для машины Windows: инструмент выбора, с которым можно поиграть, находится в командной строке: «route» «route print» отобразит вашу текущую таблицу маршрутизации

Вы можете иметь только один шлюз по умолчанию для каждого адаптера. ПК будет эффективно использовать только один шлюз - первая карта, указанная в маршрутизации порядка связывания NIC, будет выглядеть через вашу таблицу маршрутов, используя более конкретные правила и получая более универсальные данные при работе с таблицей.

Посмотрите на эту статью для идей ... Windows 7 не изменилась так много, так как win2k. http://support.microsoft.com/kb/140859


1
Кто-нибудь может поделиться мнением, почему они проголосовали за меня? Ответ, который я предоставил, начинает отвечать на некоторые дополнительные вопросы, которые были заданы.
cwheeler33

-5

Если ваш сервер / ПК является многосетевым, то есть он является частью двух отдельных сетей, у вас будет шлюз по умолчанию на каждом сетевом адаптере. Затем вы назначаете приоритеты сетевым адаптерам. Как уже говорили другие, у вас все еще есть только один шлюз по умолчанию, но он на сетевой адаптер.


4
Нет, нет, ты ДЕЙСТВИТЕЛЬНО не стал бы - это удивительно неправильный ответ
Chopper3

2
Вы путаете маршруты по умолчанию со шлюзами по умолчанию, которые являются совершенно разными животными.
Джон Гарденье
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.