Кто-нибудь может уточнить назначение шлюза для меня?
В чем разница между добавлением шлюза в качестве 0.0.0.0
и назначением определенного IP-адреса в качестве шлюза?
linux
networking
routing
user2720323
источник
источник
Ответы:
0.0.0.0
имеет конкретное значение «не указано». Это примерно переводится как «нет ничего» в контексте шлюза. Конечно, это предполагает, что сеть локально подключена, так как промежуточный переход отсутствует.В качестве пункта назначения
0.0.0.0/0
он особенный: если нет сетевых битов, в сетевом номере также не может быть ничего. Итак, это естественно не определено.Однако, придерживаясь вашего вопроса, да, он имеет особое значение. Это означает, что сеть локально подключена к этому интерфейсу, и для перехода к ней больше не требуется.
источник
Со страницы Википедии 0.0.0.0
выдержка
Со страницы Википедии, Маршрут по умолчанию .
выдержка
пример
В ваших вопросах я буду предполагать, что у вас есть что-то вроде этого:
Это говорит о том, что для каждого из сетевых назначений (192.168.1.0 или 169.254.0.0) этим шлюзом по умолчанию является адресат 0.0.0.0, если пакет НЕ предназначен для какого-либо адреса в этой конкретной сети. Для пункта назначения 0.0.0.0 используйте IP-адрес 192.168.1.254.
Эти правила действуют для направления всего трафика, который не соответствует ни одному из известных нам маршрутов, на маршрут по умолчанию.
Пара образцов
Допустим, у нас есть пакет с IP 192.168.1.110. Первое правило проверяется, и этот IP-адрес соответствует этой сети, поэтому он доставляется.
Если бы у нас был пакет 150.12.13.1, 3-е правило было бы в силе, и пакет был бы направлен к 192.168.1.254.
источник
Посмотрите, 0.0.0.0 используется только в таблицах маршрутизации - НЕ для назначения хосту.
Хосты (компьютеры с IP-адресом) поддерживают таблицу маршрутизации, чтобы решить, как отправлять свои сообщения в правильное место.
Сценарий 1: ПК-А хочет отправить сообщение на ПК-Б в той же сети:
1) PC-A проверяет свою таблицу маршрутизации, чтобы определить, соответствует ли IP-адрес назначения. 2) Таблица маршрутизации показывает, что пункт назначения находится в той же сети, находит интерфейс, который подключен к этой сети, а затем пересылает сообщение из этого интерфейса непосредственно в пункт назначения.
Сценарий 2: ПК-А хочет отправить сообщение на Server-Z в ДИСТАНЦИОННОЙ СЕТИ (НЕ в той же сети):
1) PC-A проверяет свою таблицу маршрутизации и не может найти соответствие (конечно, потому что хосты не отслеживают хосты в удаленных сетях - это задания маршрутизаторов).
2) Однако на ПК настроены IP-адрес с четырьмя нулями и маска подсети, сопоставленная с вашим маршрутизатором (шлюз по умолчанию для ДРУГИХ, УДАЛЕННЫХ, РАЗНЫХ сетей), например:
(0.0.0.0 0.0.0.0 192.168.0.1 интерфейс)
Что означает ноль? Это означает, что нет. Итак, если ваш компьютер не отслеживает, где находятся удаленные хосты, и он проверяет свою таблицу маршрутизации каждый раз, когда хочет отправить сообщение, чтобы узнать, нужно ли ему отправлять его в ту же (локальную) сеть или если ему нужно чтобы отправить его в УДАЛЕННУЮ сеть, тогда как оно получает сообщение для удаленной сети?
Он отправляет его на маршрутизатор и позволяет маршрутизатору выполнять свою работу по маршрутизации пакета по наилучшему пути. Итак, хост / ПК / компьютер должен знать, что если он не может найти в своей таблице маршрутизации запись о том, куда отправлять сообщение (также известное как 0.0.0.0), то он знает, что нужно отправить его маршрутизатору, который является IP-адресом. адрес, связанный с записью (0.0.0.0 0.0.0.0 192.168.0.1 interface), и использует связанный интерфейс / NIC / сетевой адаптер, подключенный к нему.
Поэтому 0.0.0.0 используется таблицами маршрутизации на хостах и маршрутизаторах, чтобы знать, куда отправлять что-либо, когда он находит нулевые совпадения для того, как достичь пункта назначения, и должен быть сопоставлен с IP-адресом маршрутизатора и интерфейсом для достижения этого маршрутизатора.
источник