Как работает преобразование сетевых адресов (NAT) на домашнем маршрутизаторе? [Дубликат]

-3

У меня дома три компьютера подключены к роутеру. Я уверен, что мой маршрутизатор имеет только один адрес. Когда пакет поступает с компьютера 1, IP-адрес источника преобразуется в IP-адрес маршрутизатора.

Допустим, оба компьютера 1 и 2 имеют доступ к одному и тому же пункту назначения, на этот раз запись в NAT будет иметь один и тот же адрес назначения. Итак, как пакет пересылается сюда?

Когда пакет прибывает из пункта назначения, как пакеты различаются между компьютером 1 и 2? У меня есть маршрутизатор Belkin, он генерирует много адресов источника. Например, динамический NAT, каждый источник IP преобразуется в другой IP-адрес? Как это генерирует пул адресов.

dexterous_stranger
источник
Теперь это совершенно другой вопрос, так почему же вы просто не начали новый? Сказав это, если вы делаете, пожалуйста, сделайте это лучше и конкретнее, чем этот беспорядок. В нынешнем виде это все еще СЛИШКОМ широкий и содержит множество нечетких вопросов, просто украшенных скриншотами и рисунками.
Ƭᴇcʜιᴇ007

Ответы:

2

Маршрутизатор не только переводит адрес источника, но также переводит порт источника. Когда две машины в сети делают похожие запросы, например, посещая superuser.com по адресу 198.252.206.16:80, маршрутизатор переводит исходные порты в уникальные. Когда ответы поступают, маршрутизатор может различать оба на основе своих портов назначения и обращается к таблице соединений, чтобы увидеть, какой из них должен быть перенаправлен на какой компьютер. В примере двух пользователей, просматривающих Super User, таблица соединений может выглядеть примерно так:

root@FAKEROUTER:~# grep 198.252.206.16 /proc/net/ip_conntrack
tcp      6 3597 ESTABLISHED src=192.168.1.1 dst=198.252.206.16 sport=50000 dport=80 packets=8 bytes=1637 \ 
    src=198.252.206.16 dst=203.0.113.1 sport=80 dport=50000 packets=14 bytes=14747 [ASSURED] mark=20 secmark=0 use=1
tcp      6 3598 ESTABLISHED src=192.168.1.2 dst=198.252.206.16 sport=50000 dport=80 packets=8 bytes=1637 \
    src=198.252.206.16 dst=203.0.113.1 sport=80 dport=50001 packets=14 bytes=14747 [ASSURED] mark=20 secmark=0 use=1
Маркс Томас
источник
Этот скриншот снят с роутера? Как я могу подключиться к маршрутизатору для выполнения таких команд?
dexterous_stranger
@SHREYASJOSHI: Это очень просто. Вы запускаете клиент telnet и подключаетесь к маршрутизатору, но я не думаю, что ваш поддерживает эту функцию. В руководстве не упоминается telnet или SSH. Конечно, вы можете попробовать. Если это не сработает, вам придется установить другую прошивку.
отмечает Томас
Нет, я не мог связаться с ним по телнету. Похоже, мне нужно искать другую прошивку. Я не знаю, может ли Белкин помочь мне в этом или нет.
dexterous_stranger
1

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

user2313067
источник
Итак, Src IP такой же на домашнем маршрутизаторе, т.е. на IP маршрутизатора. Однако номер порта будет отличаться для разных компьютеров. Я прав на это?
dexterous_stranger
Да, каждое соединение имеет свой номер порта. Порт напрямую не связан с компьютером, а связан с подключением к компьютеру. Как только это соединение будет установлено через другой компьютер, новое соединение теоретически может получить этот номер порта.
user2313067
при отправке пакета, где этот номер внешнего порта будет инкапсулирован в пакет. Я уверен, что это не может изменить номер порта TCP, поскольку вы упомянули, что он является внешним. Теперь, где этот внешний номер порта будет инкапсулирован, чтобы при возврате он мог идентифицировать его обратно.
dexterous_stranger
Под внешним я имел в виду внешний вид домашней сети. Это меняет номер порта TCP (или UDP).
user2313067
Просто NAT используется где в сети? Используется ли он провайдером? Но зачем интернет-провайдеру это делать?
dexterous_stranger