Перейти к содержимому

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

2

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

Например:

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

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

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

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

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

658 просмотров
Andrew Li спросил 7 лет назад
A 120

2 ответа

3
Принятый ответ

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

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

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

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

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

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

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

Пакет IP после роутера сохраняет оригинал?

Andrew Li · 7 лет назад · 0

Да. (Почему бы и нет?)

grawity · 7 лет назад · 0

Спасибо за вашу помощь.

Andrew Li · 7 лет назад · 0
grawity ответил 7 лет назад
G 229 123
2

На основании информации, представленной в вопросе, невозможно узнать, выполняет ли маршрутизатор 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 · 7 лет назад · 0

@ Акина, ты прав. Я предполагаю, что в примере сети OP маршрутизатор, подключенный к каждой подсети, служит шлюзом по умолчанию для этой сети.

Twisty Impersonator · 7 лет назад · 0

192.168.1.3 и 192.168.2.4 могли общаться друг с другом в одном и том же Lan?

Andrew Li · 7 лет назад · 0

@ AndrewLi прямо, без роутера? Только когда их маска подсети / 22 или более широкая, иначе нет.

Akina · 7 лет назад · 1

Без роутера. @Akina

Andrew Li · 7 лет назад · 0

Я думаю, что маршрутизатор делает таблицу пересылки. роутер использует ip forwarding?

Andrew Li · 7 лет назад · 0

@AndrewLi Нет. Маршрутизатор (без NAT / маскарад / и т. Д.) Не имеет таблицы пересылки. Каждый пакет данных маршрутизируется отдельно с использованием адреса источника, адреса назначения и таблицы локальной маршрутизации. Таблица пересылки необходима только тогда, когда какой-либо адрес пакета изменяется во время передачи - простая маршрутизация не делает этого никогда.

Akina · 7 лет назад · 0

Маршрутизатор создает таблицу маршрутизации. Он строит его динамически за счет использования протоколов маршрутизации. Это позволяет ему определить лучший интерфейс для передачи пакетов на основе множества факторов, включая их адрес назначения, стоимость канала, условия сети и т. Д.

Twisty Impersonator · 7 лет назад · 0

@ Акина целевой ПК разрешить IP с другой подсети? Что делает роутер?

Andrew Li · 7 лет назад · 0

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

grawity · 7 лет назад · 1

@AndrewLi * целевой компьютер разрешает IP с другой подсетью? * Я не понимаю, что вы имеете в виду.

Akina · 7 лет назад · 0

@ Grammity Хмммм хорошо. Я пытаюсь предложить OP простой * способ проверить это с использованием чего-то вроде Wireshark. Какие-либо предложения?

Twisty Impersonator · 7 лет назад · 0

Я думаю, что сетевой пакет включает в себя исходный IP и порт. При передаче пакета через маршрутизатор исходный IP и порт изменяются как NAT?

Andrew Li · 7 лет назад · 0

Нет, когда NAT не происходит, адресация источника * не * изменяется. Как отмечает @grawity, это самый надежный способ узнать, что NAT не используется.

Twisty Impersonator · 7 лет назад · 0

@TwistyImpersonator: Если ПК принимает какую-либо форму соединения TCP (например, SMB на порту 445 или Удаленный рабочий стол на 3389 или SSH на 22 ...), OP может запустить netstat -n на принимающем ПК, когда соединение установлено, и посмотрите на столбец «Удаленный адрес». Я не уверен, что это проще, чем установка Wireshark - он просто избегает необходимости загружать дополнительные материалы.

grawity · 7 лет назад · 0

@ Grawity согласился. Спасибо за указание на необходимое улучшение. Я оценю это, когда выйду из мобильного телефона.

Twisty Impersonator · 7 лет назад · 0
Twisty Impersonator ответил 7 лет назад
T 17 243