Что такое перенаправление портов и для чего оно используется?

Существует много вопросов на 'перенаправлении портов', но, кажется, нет того, который ясно указывает, что это и для чего это используется. Так:

  1. Что такое перенаправление портов?

  2. Что это используется для, и почему мне был бы нужен он?

216
задан 02.04.2019, 04:17

0 ответов

Основы

Для реального объяснения перенаправления портов сначала необходимо понять немного больше о том, что делает маршрутизатор. Ваш интернет-провайдер присваивает один IP-адрес Вашему интернет-соединению. Всем компьютерам в Интернете нужен уникальный IP-адрес, но у Вас есть несколько компьютеров в Вашем доме и только один адрес. Таким образом, как это работает?

Если Вы знаете то, что это, и просто хотят знать, как сделать это: http://portforward.com/ имеет практическое руководство со снимками экрана для буквально сотен различных маршрутизаторов. Документация там скрыта позади страницы рекламы для их автоматического portconfig инструмента. (Просто нажмите вокруг немного Вас, найдет его.)

NAT - Что это? Почему мы используем его?

Ваш домашний маршрутизатор имеет функцию под названием Преобразование сетевых адресов или NAT, встроенный. В Вашей сети компьютеры имеют адреса как 192.168.1.100. Все адреса в 192.168.* диапазон (или в 10.*), диапазон "частные" или "зарезервированные" адреса. Эти адреса официально присвоены IANA использоваться в частных сетях. Ваш маршрутизатор автоматически присваивает такой адрес каждому компьютеру, подключенному через DHCP. Эти адреса - то, как компьютеры в Вашей сети связываются с маршрутизатором и друг с другом.

Ваш маршрутизатор имеет отдельный сетевой интерфейс, который подключает его к Интернету. Этот интерфейс имеет совсем другой адрес, который присвоен Вашим ISP. Это - один адрес, который я упомянул прежде, и Ваш маршрутизатор использует его для общения с другими компьютерами в Интернете. Компьютеры в Вашей сети имеют non-routable частные IP-адреса, означая, что, если они отправляют пакеты непосредственно в Интернет, пакеты будут автоматически отброшены (пакетам с частными адресами не позволяют пересечь Интернет по причинам устойчивости). Но Ваш маршрутизатор имеет routable адрес. Преобразование сетевых адресов, как его имя предполагает, переводит между этими двумя видами адресов, позволяя несколько компьютеров в Вашей сети появиться к Интернету как один компьютер с одним адресом.

Детали

Хотя это могло бы звучать сложным, это на самом деле довольно просто, как Ваш маршрутизатор делает это. Каждый раз, когда компьютер в Вашей сети хочет соединиться с компьютером в Интернете, это отправляет запрос на установление соединения на маршрутизатор (это знает для отправки его в маршрутизатор, потому что его Параметр шлюза По умолчанию установлен на адрес маршрутизатора). Маршрутизатор затем берет тот запрос на установление соединения ("запрос SYN" в TCP/IP) и изменяет исходный адрес ("ответ - к" или обратный адрес) и изменяет его от частного IP компьютера к общедоступному IP маршрутизатора, так, чтобы ответ был отправлен на маршрутизатор. Это затем обращает внимание в базе данных (названный таблицей NAT), что соединение инициировалось, так, чтобы это помнило это позже.

То, когда ответ возвращается из удаленного компьютера ("SYN-ACK"), виды маршрутизатора в его таблице NAT и видит, что соединение с тем хостом на том порте ранее инициировалось частным компьютером в Вашей сети, изменяет адрес назначения на частный адрес компьютера и вперед этого в Вашей сети. Таким образом пакеты могут продолжить передавать транзитом назад и вперед между сетями с маршрутизатором, прозрачно изменяющим адреса так, чтобы он работал. Когда соединение завершается, маршрутизатор просто удаляет его из таблицы NAT.

Или думайте о нем этот путь

Это могло бы быть немного легче визуализировать с метафорой - скажем, Вы - грузовое средство передачи в США, работающих с китайскими клиентами. Они должны отправить пакеты многим клиентам в США, но это легче по причинам таможни/документов только отправить пакеты в одно место. Так, пакет прибывает к Вам от одного из Ваших клиентов в Китае (частная сеть в этом примере) с фактическим местом назначения куда-нибудь в США (Интернет). Вы изменяете адресный ярлык на поле к американскому (общедоступному) адресу, и Вы изменяете обратный адрес на свой собственный общедоступный адрес (так как это не может быть возвращено прямо в Китай, не причиняя беспокойство клиенту), и вручите его почтовой службе. Если клиент возвращает продукт, он прибывает к Вам. Вы ищете его в своих записях и видите, из какой компании в Китае это прибыло, и измените место назначения на ту компанию (ее частный адрес) и обратный адрес к Вашему частному адресу, так, чтобы они могли передать замену обратно через Вас.

Это работает отлично, но существует определенная проблема. Что, если клиент должен отправить что-то компании, скажем, денежный перевод в оплате за что-то? Или, скажем, что компьютер в Интернете инициирует соединение с маршрутизатором (запрос SYN), скажите веб-серверу, который находится в сети. Буква/пакет только имеет общедоступный адрес маршрутизатора на нем, таким образом, маршрутизатор на самом деле не знает, куда отправить его! это могло быть предназначено для любого из компьютеров на частной сети, или ни для одного из них. Вы, возможно, испытали эту проблему при вызове чьего-то домашнего телефона - когда они звонят Вам, это не проблема, но когда Вы называете их нет никакого способа для них знать, кто призыв, таким образом, неправильный человек мог бы ответить.

В то время как для людей достаточно легко уладить это, это намного более коварно для компьютеров, потому что не каждый компьютер в Вашей сети знает все другие компьютеры.

И наконец мы добираемся до Перенаправления портов

Перенаправление портов состоит в том, как мы решаем эту проблему: это - способ сказать Ваш маршрутизатор, к чему должен быть направлен компьютер в сетевых входящих соединениях. У нас есть три различных способа, которыми мы можем сделать это:

  • Поддельная демилитаризованная зона: много маршрутизаторов имеет функцию, названную демилитаризованной зоной. Это обозначает Демилитаризованную зону, которая является своего рода конфигурацией сетевой безопасности. Демилитаризованная зона на домашних маршрутизаторах часто упоминается как поддельная демилитаризованная зона, потому что она испытывает недостаток в функциях фактической демилитаризованной зоны. То, что это действительно делает, является самым простым видом обработки входящего соединения: все запросы входящего соединения будут отправлены к одному указанному в Вашей сети. Это очень просто - Вы вводите IP-адрес к конфигурации своего маршрутизатора, и все входящие соединения идут туда. Это не всегда работает, тем не менее, потому что у Вас могло бы быть несколько компьютеров, которые должны принять входящие соединения. Для этого мы имеем...
  • Перенаправление портов: Все запросы сетевого соединения включают "порт". Порт является просто числом, и это - часть того, как компьютер знает, каков пакет. IANA указала, что Порт 80 используется для HTTP. Это означает, что входящий пакет, который говорит, что номер порта 80 должен быть запросом, предназначенным для веб-сервера. Перенаправление портов на Вашем маршрутизаторе позволяет Вам вводить номер порта (или возможно диапазон или комбинация чисел, в зависимости от маршрутизатора), и IP-адрес. Все входящие соединения с числом соответствующего порта будут переданы внутреннему компьютеру с тем адресом.
  • Порт UPnP вперед: UPnP передавая работает тот же самый путь перенаправлением портов, но вместо Вас настраивающий его, программное обеспечение на компьютере в сети автоматически устанавливает маршрутизатор для передачи трафика на данном порте к нему.

Пример

Давайте посмотрим на пример использования. Много многопользовательских видеоигр (как пример, Встречная Забастовка) позволяет Вам выполнять игровой сервер на своем компьютере, который другие люди могут подключить с тем, для проигрывания с Вами. Ваш компьютер не знает всех людей, которые хотят играть, таким образом, он не может соединиться с ними - вместо этого, они должны отправить новые запросы на установление соединения на Ваш компьютер из Интернета.

Если бы у Вас ничего не было, настраивают на маршрутизаторе, он получил бы эти запросы на установление соединения, но он не знал бы, какой компьютер в сети имел игровой сервер, таким образом, он просто проигнорирует их (или, более конкретно, он передал бы обратно пакет, указывающий, что он не может соединиться). К счастью Вы знаете номер порта, который будет на запросах на установление соединения на игровой сервер. Так, на маршрутизаторе Вы устанавливаете порт вперед с номером порта, который игровой сервер ожидает (например, 27015) и IP-адрес компьютера с игровым сервером (например, 192.168.1.105).
Маршрутизатор будет знать для передачи запросов входящего соединения к 192.168.1.105 внутренней части сеть, и компьютеры снаружи смогут соединиться в.

Другим примером была бы локальная сеть с двумя машинами, где вторая с IP 192.168.1.10 хоста веб-сайт с помощью Apache. Поэтому маршрутизатор должен передать входящему порту 80 запросов к этой машине. Используя перенаправление портов, обе машины могут работать в той же сети одновременно.

Port forwarding example graph

Видеоигры являются, возможно, наиболее распространенным местом, повседневные пользователи встретятся с перенаправлением портов, хотя самые современные игры используют UPnP так, чтобы Вы не делали этого вручную (вместо этого, это полностью автоматически). Необходимо будет сделать это каждый раз, когда Вы хотите смочь соединиться непосредственно с чем-то в Вашей сети хотя (а не через некоторого посредника в Интернете). Это могло бы включать выполнение Вашего собственного веб-сервера или соединение с помощью Протокола удаленного рабочего стола к одному из Ваших компьютеров.

Примечание по безопасности

Одна из хороших вещей о NAT - то, что он обеспечивает некоторую встроенную безопасность без усилий. Много людей блуждает Интернет, ища машины, которые уязвимы..., и они делают это путем попытки открыть соединения с различными портами. Это входящие соединения, таким образом, как обсуждено выше, маршрутизатор отбросит их. Это означает, что в конфигурации NAT, только сам маршрутизатор уязвим для нападений, включающих входящие соединения. Это - хорошая вещь, потому что маршрутизатор намного более прост (и таким образом менее вероятно быть уязвимым), чем компьютер, выполняющий полную операционную систему с большим количеством программного обеспечения. Необходимо иметь в виду, затем DMZing компьютер в сети (установка его как место назначения демилитаризованной зоны) потерю того уровня безопасности для того компьютера: это теперь абсолютно открыто для входящих соединений из Интернета, таким образом, необходимо защитить его, как будто это было непосредственно соединено. Конечно, любое время, которое Вы передаете порту, компьютеру в принимающем конце, становится уязвимым на том определенном порте. Поэтому удостоверьтесь, что Вы доходите до программного обеспечения, которое хорошо настроено.

321
ответ дан 07.12.2019, 07:40

Теги

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