Это теоретический вопрос.
Таким образом, чтобы включить NAT на машине "роутера", мы включаем маскирование, и все соединения в "частной" сети рассматриваются внешними службами (например, веб-сайтами), как если бы этот "маршрутизатор" инициировал их.
Но как насчет портов? Допустим, у меня есть 2 клиента в частной сети: A и B. Представьте, что они оба инициируют подключение к услуге (возможно, для разных), используя порт 5000. Как "маршрутизатор" справится с этим? Есть ли в iptables
внутренняя «таблица хеш-кодов» или что-то подобное (псевдокод):
• Прокси все запросы от A:5000 через порт 9000
• Прокси все запросы от B:5000 через порт 9001
И всякий раз , когда что - то переносит на порт 5000, "маршрутизатор" переслать эту связь через его порт 9000 и , когда внешние ответов веб - сервер, "маршрутизатор" получает ответ на порт 9000 и пересылает в порт A
«s 5000. То же самое касается B, но с портом 9001 на "роутере".
Это правильно?
Обновление: в настоящее время я тестирую с WireShark и Curl. Использование --local-port 5000
на обоих клиентах и одновременное подключение к одному и тому же сайту с регулированием скорости. И Wireshark показывает, что оба соединения используют один и тот же порт. Но как?