2

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

Но это не всегда верно. Например, SSH-туннели часто называют защищенными туннелями. Но они действительно туннели? Данные, которые передаются по этим защищенным каналам, являются данными приложения, а не данными протокола IP.

Может быть, я слишком анализирую это, и они оба ссылаются на одно и то же.

Таким образом, для следующего сценария, где у меня есть Приложение A, B, C. A - это клиентское приложение, которое подключается к B. B просто пересылает данные в Приложение C. Будет ли B считаться переадресацией портов, потому что нет никакого дополнительного "значения" "добавляется в поток данных? Если да, то как насчет того же сценария, но предположим, что соединение между A и B не зашифровано, а соединение между B и C зашифровано. Будет ли B в этом случае туннелировать данные, в отличие от переадресации портов, поскольку теперь существует "добавленная стоимость" шифрования?

3 ответа3

8

Туннелирование позволяет вам делать несколько разных вещей, инкапсулируя данные внутри другой формы данных:

  • Безопасность - вы можете использовать зашифрованный туннель для безопасной передачи данных по ненадежной сети, такой как незашифрованные сети Wi-Fi или общедоступный Интернет.
  • Obscurity - вы можете использовать туннель на одном порту для передачи данных, которые обычно передаются на другой порт, минуя сетевую безопасность и прозрачность как для клиента, так и для сервера
  • Универсальность - вы можете использовать туннель для соединения двух устройств или сетей, используя что-то другое, собственный протокол транспортной сети. Вы можете запустить TCP/IP через MPLS, например

Переадресация портов намного проще, она просто переадресует и позволяет маршрутизировать соединения в сети.

3

@Bert дал хороший ответ (+1), но я думаю, что два самых больших различия между ними заключаются в том, что:

  1. переадресация портов может выполняться только с использованием данных, доступных в конверте сетевых пакетов. Туннелирование требует проверки данных внутри пакета (по крайней мере, для установки туннеля).
  2. переадресация портов не требует сохранения состояния в том смысле, что все данные, соответствующие правилам, пересылаются. Туннели имеют состояние и управляются извне сетевого протокола, а данные из одного пакета связаны с данными в другом / зависят от них.

В результате, переадресация портов может выполняться сетевым механизмом низкой спецификации, все, что он делает, это проверяет входящую комбинацию порт / хост, переписывает конверт и перенаправляет пакет куда-то еще. Туннелирование требует добавления логики в поток, подразумевает более высокую нагрузку и более мощную систему для ее реализации.

1

Переадресация портов не включает PDU одного протокола в другой, поэтому не является синонимом туннелирования. Переадресация портов, как правило, является частью средства NAT, которое принимает трафик от разрешенного порта, затем изменяет адрес назначения на настроенный сопоставленный IP-адрес и отмечает это, чтобы правильно направлять исходящий трафик обратно.

Как правило, единственная причина, по которой вы хотите инкапсулировать блоки PDU одного протокола в другой, состоит в том, чтобы скрыть или защитить его, как правило, по соображениям безопасности. (PPP является возможным заметным исключением из этого). Таким образом, подавляющее большинство, если не все, сценариев реального туннелирования будут связаны с туннелированием пользователя на сервер, который затем может перенаправлять трафик в другое место, если не что иное, на локальный хост в этой системе для достижения другого типа сервера (HTTP и т.д.). Обычно для этого используется сервер туннелирования или доступа, то есть сервер SSH, сервер VPN и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .