Маршрутизатор использует NAT?

524
Andrew Li

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

Например:

  • ПК A находится в подсети, 192.168.1.0/24а B находится в 192.168.2.0/24.

  • А и В соединены с маршрутизатором C с интерфейсами 192.168.1.1, 192.168.2.1.

При отправке пакета от A до B маршрутизатор отправляет пакет с помощью NAT (трансляция сетевых адресов) ?

Если нет, как А и Б могли общаться друг с другом?

Я новичок в сети.

2
Если бы все эти устройства были вашими, а подключение к Интернету отсутствовало, то не было бы NAT. NAT - это процесс общения с ограниченным набором IP-адресов и маскировка других, которые вы получили. Самый распространенный пример - ваш доступ в Интернет дома. Вы используете частные IP-адреса для своего ПК, телевизора и телефона и только один общедоступный IP-адрес для доступа в Интернет. Просто общение между подсетями будет простой маршрутизацией. Проверьте некоторые другие сетевые вопросы или статью в Википедии о NAT и маршрутизации для получения дополнительной информации. Добро пожаловать в СУ. Seth 6 лет назад 3
Читайте о ** маршрутизации ** (именно поэтому эти устройства называются «маршрутизаторами»). Если C является шлюзом по умолчанию для A и B, вам нужно только установить маршруты на C. Большинство маршрутизаторов являются встроенными Linux-блоками, поэтому `ip route add ...` для учетной записи root или любых файлов конфигурации, которые он использует. dirkt 6 лет назад 1

2 ответа на вопрос

3
grawity

При отправке пакета от A до B маршрутизатор отправляет пакет с помощью NAT (трансляция сетевых адресов)?

Обычно нет. Это технически мог, но он не должен - нет необходимости NAT в этой ситуации.

(Я предполагаю, что C действует как A и B как «шлюз по умолчанию».)

Если нет, как А и Б могли общаться друг с другом?

Попробуйте противоположный вопрос: почему это NAT необходимо для некоторых видов связи?

NAT становится необходимым, потому что Интернет не знает, где находятся «внутренние» адреса; он только знает, где находится ваш «публичный» адрес. Таким образом, единственный способ получить ответы от интернет-хостов - сделать вид, что они были отправлены с публичного адреса маршрутизатора.

Но в вашем примере маршрутизатор прекрасно знает, где находятся обе подсети. И если маршрутизатор является шлюзом по умолчанию для обоих хостов, это означает, что хосты также достаточно хорошо знают, как достичь противоположной подсети: A имеет маршрут к B, B имеет маршрут к A, C имеет маршруты к обоим. Поэтому ранее упомянутая причина для NAT не применяется.

Пакет IP после роутера сохраняет оригинал? Andrew Li 6 лет назад 0
Да. (Почему бы и нет?) grawity 6 лет назад 0
Спасибо за вашу помощь. Andrew Li 6 лет назад 0
2
Twisty Impersonator

На основании информации, представленной в вопросе, невозможно узнать, выполняет ли маршрутизатор NAT или нет. Тем не менее, можно использовать простой тест, чтобы определить, используется ли NAT:

Если вы можете успешно пропинговать ПК B с ПК A и наоборот, используя фактический IP-адрес каждого ПК, то маршрутизатор не выполняет NAT. (Предполагается, что брандмауэры не блокируют пинг, поэтому вам может потребоваться отключить любой, в том числе на ПК.)

И наоборот, если NAT используется, ПК «позади» NAT будет пинговать другой компьютер, но он не будет работать наоборот. Например, ПК A находится позади маршрутизатора, выполняющего NAT, он мог бы пропинговать B, но B не мог бы пропинговать A (используя фактический IP-адрес A). Это связано с тем, что NAT переводит (то есть маскирует) IP-адрес ПК A, чтобы он выглядел так, как будто он имеет IP-адрес в той же подсети, что и ПК B. Это полезно, когда в подсети A много устройств, каждое из которых имеет свои собственные IP-адрес, но у вас есть только один IP-адрес в подсети B (это может быть Интернет). NAT позволяет всем этим устройствам связываться с остальной частью сети / Интернет через один IP-адрес. Это широко используется для смягчения последствий исчерпания IP v4 .

Если NAT не используется, то маршрутизатор просто делает то, что делают все маршрутизаторы ... он отправляет пакеты с ПК A, предназначенные для ПК B, с правильного интерфейса, чтобы они достигли своего места назначения. Большинство маршрутизаторов имеют несколько интерфейсов, подключенных к различным сетям, как, например, в организации, где несколько зданий имеют свои собственные сети, связанные центральным маршрутизатором.

Большинство «маршрутизаторов», которые соединяют две сети, в частности, ЛВС с Интернетом, в строгом смысле слова не являются реальными маршрутизаторами, а являются резидентными шлюзами .

Оба компьютера должны иметь шлюз (шлюз по умолчанию или общий маршрут) к подсети другого компьютера через адрес маршрутизатора в их подсети. В противном случае это вызовет однонаправленный или нулевой пинг во время NAT, и ни один пинг без него не зависит от того, какой ПК имеет или не имеет правильную настройку шлюза. Дополнительную информацию можно получить, посмотрев на ошибку пинга (тайм-аут или недостижимый пункт назначения). Akina 6 лет назад 0
@ Акина, ты прав. Я предполагаю, что в примере сети OP маршрутизатор, подключенный к каждой подсети, служит шлюзом по умолчанию для этой сети. Twisty Impersonator 6 лет назад 0
192.168.1.3 и 192.168.2.4 могли общаться друг с другом в одном и том же Lan? Andrew Li 6 лет назад 0
@ AndrewLi прямо, без роутера? Только когда их маска подсети / 22 или более широкая, иначе нет. Akina 6 лет назад 1
Без роутера. @Akina Andrew Li 6 лет назад 0
Я думаю, что маршрутизатор делает таблицу пересылки. роутер использует ip forwarding? Andrew Li 6 лет назад 0
@AndrewLi Нет. Маршрутизатор (без NAT / маскарад / и т. Д.) Не имеет таблицы пересылки. Каждый пакет данных маршрутизируется отдельно с использованием адреса источника, адреса назначения и таблицы локальной маршрутизации. Таблица пересылки необходима только тогда, когда какой-либо адрес пакета изменяется во время передачи - простая маршрутизация не делает этого никогда. Akina 6 лет назад 0
Маршрутизатор создает [таблицу маршрутизации] (https://en.wikipedia.org/wiki/Routing_table?wprov=sfla1). Он строит его динамически за счет использования протоколов маршрутизации. Это позволяет ему определить лучший интерфейс для передачи пакетов на основе множества факторов, включая их адрес назначения, стоимость канала, условия сети и т. Д. Twisty Impersonator 6 лет назад 0
@ Акина целевой ПК разрешить IP с другой подсети? Что делает роутер? Andrew Li 6 лет назад 0
«Если вы можете успешно пропинговать ПК B с ПК A и наоборот, используя фактический IP-адрес каждого ПК, то маршрутизатор не выполняет NAT» - нет, это не обязательно так. Хотя SNAT транслирует исходящие пакеты, он волшебным образом не блокирует входящие. Пока _firewall_ разрешает это (и пока существуют маршруты), вполне возможно пинговать / достигать подсети, которая будет исходить через NAT. Вам нужно проверить, есть ли у пакетов, полученных ПК, IP-адрес источника ПК А, а не маршрутизатор. grawity 6 лет назад 1
@AndrewLi * целевой компьютер разрешает IP с другой подсетью? * Я не понимаю, что вы имеете в виду. Akina 6 лет назад 0
@ Grammity Хмммм хорошо. Я пытаюсь предложить OP простой * способ проверить это с использованием чего-то вроде Wireshark. Какие-либо предложения? Twisty Impersonator 6 лет назад 0
Я думаю, что сетевой пакет включает в себя исходный IP и порт. При передаче пакета через маршрутизатор исходный IP и порт изменяются как NAT? Andrew Li 6 лет назад 0
Нет, когда NAT не происходит, адресация источника * не * изменяется. Как отмечает @grawity, это самый надежный способ узнать, что NAT не используется. Twisty Impersonator 6 лет назад 0
@TwistyImpersonator: Если ПК принимает какую-либо форму соединения TCP (например, SMB на порту 445 или Удаленный рабочий стол на 3389 или SSH на 22 ...), OP может запустить `netstat -n` на принимающем ПК, когда соединение установлено, и посмотрите на столбец «Удаленный адрес». Я не уверен, что это проще, чем установка Wireshark - он просто избегает необходимости загружать дополнительные материалы. grawity 6 лет назад 0
@ Grawity согласился. Спасибо за указание на необходимое улучшение. Я оценю это, когда выйду из мобильного телефона. Twisty Impersonator 6 лет назад 0

Похожие вопросы