Обычный NAT реализует функцию преобразования IP-адреса и порта в заголовке UDP или TCP, но не может ничего сделать с полями полезной нагрузки данных прикладного уровня. Во многих протоколах прикладного уровня, таких как протоколы мультимедиа (H.323, SIP, и т. д.), FTP, SQLNET и т. д. Полезная нагрузка TCP / UDP содержит информацию об адресе или порте. Это содержимое не может быть эффективно преобразовано NAT, что может вызвать проблемы. Технология NAT ALG (шлюз прикладного уровня, шлюз прикладного уровня) может выполнять анализ информации сообщений прикладного уровня и преобразование адресов для многоканальных протоколов, соответствующих IP-адресу и порту в полезной нагрузке, которые нуждаются в трансляции адресов, или полях, требующих специальной обработки. Преобразование и обработка для обеспечения правильности связи на уровне приложений.
Например, приложение FTP завершается соединением для передачи данных и соединением для управления, а установление соединения для передачи данных динамически определяется информацией поля нагрузки в соединении управления, что требует от ALG завершения преобразования информации поля нагрузки в убедитесь в правильности настройки последующего подключения для передачи данных.
35 Функции (def) в Python. Определение и вызов функции
2NAT ALGособенности
NAT ALG обеспечивает управление доступом на основе приложений для связи между внутренней и внешней сетями со следующими преимуществами:
(1) ALG анализирует и обрабатывает все сообщения протокола прикладного уровня единообразно, избегая повторного анализа того же типа протокола прикладного уровня сообщений другими модулями, и может эффективно повысить эффективность пересылки сообщений.
(2) Он может поддерживать несколько протоколов прикладного уровня: FTP, H.323 (включая RAS, H.225, H.245), SIP, DNS, ILS, MSN / QQ, NBT, RTSP, SQLNET, TFTP и т. Д.
3NAT ALGТехническая реализация
Сначала представьте две концепции, задействованные в ALG:
Сеанс: записывает информацию о взаимодействии между пакетами транспортного уровня, включая IP-адрес источника, порт источника, IP-адрес назначения, порт назначения, тип протокола и экземпляр VPN, которому принадлежит IP-адрес источника / назначения. Пакеты с одинаковой информацией об обмене принадлежат одному потоку.Как правило, каждый сеанс соответствует двум потокам: исходящему и входящему.
Динамический канал: когда сообщение протокола прикладного уровня несет адресную информацию, адресная информация будет использоваться для установления динамического канала, а последующие соединения, которые соответствуют адресной информации, будут использовать установленный динамический канал для передачи данных.
Следующий протокол многоканального приложенияПриложение ALG для FTP в сетевой среде NAT определяет процесс преобразования пакетной нагрузки.
3.1ALGПриложение с FTP
Два разных режима работы FTP: PORT (активный режим) и PASV (пассивный режим).
Для FTP требуется два соединения: управляющее соединение и соединение для передачи данных. Управляющее соединение предназначено для передачи команд управления FTP и информации о выполнении команд; соединение для передачи данных предназначено для передачи данных (выгрузка / загрузка).
3.1.1 Активный режим (ПОРТ) процесс подключения
Такие как Рисунок 1 Как показано, клиент, расположенный во внутренней сети, обращается к FTP-серверу внешней сети в режиме PORT и выполняет трансляцию NAT через промежуточное устройство, и на устройстве включена функция ALG.
Рисунок 1 FTP-ПОРТСхема обработки ALG полезной нагрузки пакета режима
Хост на стороне частной сети на рисунке 1 должен иметь доступ к FTP-серверу в общедоступной сети. Преобразование адреса частной сети 192.168.1.2 в адрес общедоступной сети 8.8.8.11 настроено на устройстве NAT для реализации NAT-преобразования адреса для поддержки доступа хоста частной сети к общедоступной сети. В сети, если нет ALG, обрабатывающего загрузку сообщения, после того, как сообщение PORT, отправленное узлом частной сети, прибывает на сервер, сервер не может обращаться в соответствии с адресом частной сети, и невозможно установить правильное соединение для передачи данных. Весь процесс коммуникации включает следующие четыре этапа:
(1) Управляющее соединение успешно установлено между узлом частной сети и FTP-сервером общедоступной сети посредством трехстороннего установления связи TCP.
(2) После того, как контрольное соединение установлено, хост частной сети отправляет сообщение PORT на FTP-сервер. Сообщение содержит адрес назначения и порт соединения для передачи данных, назначенный хостом частной сети, чтобы уведомить сервер об использовании адреса и порт для подключения к самому себе.
(3) Когда сообщение PORT проходит через устройство NAT, которое поддерживает функцию ALG, адрес частной сети и порт в полезной нагрузке сообщения будут преобразованы в соответствующие общедоступные сетевой адрес и порт. То есть устройство преобразует адрес частной сети 192.168.1.2 в полученном пакете PORT в адрес общедоступной сети 8.8.8.11, а порт 1084 — в 12487.
(4) После того, как FTP-сервер в общедоступной сети получает сообщение PORT, он анализирует его содержимое и инициирует соединение для передачи данных с хостом частной сети. Адрес назначения соединения для передачи данных — 8.8.8.11, а порт назначения — 12487 (Примечание. : Обычно порт источника сообщения — 20, но поскольку протокол FTP не оговаривается строго, порт источника подключения данных, отправляемый некоторыми серверами, является случайным портом больше 1024. Например, в этом случае используется сервер wftpd. пример, а используемый порт источника — 3004). Поскольку адрес назначения является адресом общедоступной сети, последующие соединения для передачи данных могут быть успешно установлены, тем самым реализуя доступ хоста частной сети к серверу общедоступной сети.
Захватывайте пакеты на HOST (FTP-клиент), как показано на рисунке 2:
Рисунок 2 ПОРТРежим захвата FTP-клиента
Захватывайте пакеты на стороне FTP-сервера, как показано на рисунке 3:
Рисунок 3 ПОРТРежим захвата пакетов на стороне сервера FTP
Из приведенного выше захвата пакета мы видим, что процесс подключения в активном режиме (PORT) таков: клиентская программа сначала случайным образом выделяет TCP-порт для себя, она использует этот порт для отправки запроса на подключение к FTP-порту сервера (21 по по умолчанию), и сервер принимает запрос. После этого будет установлена контрольная ссылка, и затем клиентская программа выдаст серверу команду PORT (обычно в формате PORT A1, A2, A3, A4, P1, P2 , где A1, A2, A3, A4 — IP-адреса клиента, P1, P2 — это случайный номер порта подключения данных, номер порта равен P1 * 256 + P2), сообщая серверу, что его порт канала данных открыт . Когда необходимо передать данные, сервер отправляет запрос на соединение на случайный порт, предоставленный клиентом. После принятия запроса начинается передача данных. В активном режиме обработка ALG требуется для пакета PORT, отправленного клиентом, например как на FTP-клиенте. В 13-м перехваченном пакете одно из полей, содержащих адрес и порт, — Request arg, как показано на рисунке 4:
Рисунок 4ALGСообщение PORT перед преобразованием
После того, как сообщение PORT, отправленное FTP-клиентом, проходит через устройство NAT, оно соответствует 13-му сообщению, захваченному на FTP-сервере. Адрес частной сети 192.168.1.2 преобразуется в общедоступный сетевой адрес 8.8.8.11, а порт 1084 — преобразован в 12487, как показано на рисунке 5. Показать:
Рисунок 5ALGПреобразованное сообщение PORT
3.1.2 Пассивный режим (PASV) процесс подключения
Такие как Рисунок 6 Как показано, FTP-клиент, расположенный во внешней сети, обращается к FTP-серверу внутренней сети в режиме PASV и выполняет трансляцию NAT через промежуточное устройство, а функция ALG включена на устройстве.
Рисунок 6 FTPСхема обработки ALG полезной нагрузки пакета PASV
Устройство NAT на рисунке 2 настроено с отображением адреса частной сети 192.168.1.1 на адрес общедоступной сети 8.8.8.2 для реализации преобразования адреса через NAT. Весь процесс коммуникации включает следующие четыре этапа:
(1) Установите канал управления
Клиент отправляет серверу запрос на TCP-соединение. После успешного установления TCP-соединения сервер и клиент входят в фазу аутентификации пользователя. В случае сбоя TCP-соединения сервер отключится от клиента.
(2) Аутентификация пользователя
Клиент отправляет запрос аутентификации на сервер, и сообщение содержит команду FTP (USER, PASSWORD) и соответствующее содержимое команды. Когда сообщение с запросом аутентификации, отправленное клиентом, проходит через устройство, сконфигурированное с помощью ALG, командное слово, содержащееся в полезной нагрузке сообщения, будет проанализировано, чтобы проверить правильность процесса преобразования конечного автомата. Если при переходе конечного автомата возникает ошибка, сообщение отбрасывается. Это может помешать клиенту отправлять сообщения с ошибками конечного автомата для атаки на сервер или незаконного входа на сервер, тем самым защищая сервер. После того как сообщение запроса аутентификации клиента обработано ALG, оно достигает сервера, и сервер ответит на него.
(3) Создайте канал данных
Только если статус аутентификации правильный и пользователь является клиентом, авторизованным сервером, может быть установлено соединение для передачи данных с сервером для взаимодействия с данными. Такие как Рисунок 6 Как показано, когда клиент отправляет команду «PASV» для инициирования соединения, сервер будет содержать свой собственный адрес частной сети и номер порта (IP1, Port1) в ответном сообщении PASV, отправленном клиенту, и ответное сообщение будет передается через устройство ALG. Анализ, адрес частной сети и номер порта сервера, переносимого в нем, преобразуются в соответствующий общедоступный сетевой адрес и номер порта (IP2, Port2), а затем устанавливается канал данных между адресом и порт, а также адрес и порт клиента.
(4) Взаимодействие с данными
Взаимодействие с данными между клиентом и сервером может осуществляться напрямую через канал данных.
Захватывайте пакеты на стороне FTP-сервера, как показано на рисунке 7:
Рисунок 7 PASVРежим захвата пакетов на стороне сервера FTP
Из приведенного выше захвата пакетов видно, что процесс подключения в пассивном режиме (PASV) заключается в том, что клиентская программа сначала случайным образом выделяет TCP-порт для себя и использует этот порт для отправки запроса на подключение к FTP-порту сервера. сервер принимает запрос, он устанавливает канал управления. Затем клиентская программа отправляет команду PASV, чтобы запросить сервер установить соединение для передачи данных в режиме PASV.
Сервер случайным образом выделяет порт канала данных для себя и сообщает клиентской программе, что номер порта (обычно в формате: переход в пассивный режим (A1, A2, A3, A4, P1, P2), где A1, A2, A3 и A4 — IP-адреса сервера, а P1, P2 — случайные номера портов). Когда необходимо передать данные, клиентская программа использует другой случайный порт для отправки запроса на подключение к порту канала данных, предоставленному сервером. После того, как запрос принят, он начинает передачу данных. Канал связи данных открывается. В пассивном режиме обработка ALG должна выполняться. Ответное сообщение Pasv , отправленное сервером, как показано в 14-м пакете в приведенном выше фрагменте, имеет поле, содержащее адрес и порт в качестве ответа arg, как показано на рисунке 8:
Рисунок 8 нужно сделатьОтветное сообщение ALG Pasv
3.2ALGПриложение с H323 / SIP
3.2.1ALGПриложение с H323
Протокол H.323 используется для инициирования сеансов. Он может управлять установлением и завершением мультимедийных сеансов, в которых участвует несколько участников, а также может динамически настраивать и изменять атрибуты сеанса, такие как требования к пропускной способности сеанса, типы среды передачи (голос, видео и т. Д.) .), Формат кодирования и декодирования мультимедиа, поддержка трансляции и т. Д.
Протокол H.323 принимает модель клиент / сервер.Например, в голосовой сети, показанной на рисунке 9, связь между шлюзом (шлюзом) и привратником (привратником) используется для завершения процесса установления пользовательского вызова.
Шлюз (Gateway): используется для подключения телефонных терминалов H323;
Гейткипер: пользователя, на сервере регистрации SIP.
Сообщение SIP-ответа используется для ответа на сообщение запроса, указывая на успешное или неудачное состояние вызова или регистрации. Основными типами полей адреса, которые должны обрабатываться ALG в сообщениях запроса и ответа, являются: Via, Record_Route, Contact и SDP.
Процесс обработки ALG состоит из следующих трех шагов:
Во-первых, ALG декодирует сообщение в соответствии с типом протокола идентификатора сеанса. Если обнаруживается, что сообщение является ненужным ALG или декодирование обнаруживает, что сообщение является полем ошибки, оно завершается, и декодирование обнаруживает, что оно нуждается в дальнейшей обработке во время преобразование полей;
Во-вторых, ALG просматривает конфигурацию NAT на интерфейсе, преобразует IP-адрес, порт, идентификатор вызова и другую информацию в сообщении в соответствии с конфигурацией NAT и устанавливает таблицу ассоциаций, в которой записываются отношения преобразования адреса загрузки;
Наконец, ALG регулирует поле длины в полезной нагрузке сообщения. Например, поле длины содержимого в заголовке сообщения sip определяет длину тела сообщения. После того, как ALG переведет адрес в теле сообщения, длина тела сообщения может change, и необходимо установить значение поля длины содержимого.
Источник: russianblogs.com
Стоит ли отключить ALG?
Вы должны отключить SIP ALG, потому что он: прерывает SIP-трафик, такой как звонки и приложения для конференц-связи. Влияет на воспринимаемую надежность настольных телефонов и приложений VoIP. Не требуется при использовании облачных провайдеров VoIP.
Стоит ли включать ALG?
SIP ALG неожиданным образом изменяет пакеты SIP, повреждая их и делая нечитаемыми. . Поэтому, если у вас возникли проблемы, мы рекомендуем вам проверить свой роутер. настройки и выключите SIP ALG, если он включен.
Стоит ли отключать FTP ALG?
ALG для протокола ICMP включен по умолчанию, и нет возможности отключить его. ALG для протокола TFTP по умолчанию отключен. . Пример конфигурации LSN для FTP ALG: В следующем примере конфигурации LSN FTP ALG включен для абонентов, имеющих IP-адрес в диапазоне 192.0.0.1.
Что такое сквозная передача ALG?
Шлюзы уровня приложений (ALG) управляют определенными протоколами, перехватывая трафик по мере его прохождения. через устройство безопасности. После анализа трафика ALG выделяет ресурсы для безопасного прохождения трафика. По умолчанию все ALG включены на устройстве безопасности.
Стоит ли отключать сквозную пересылку NAT?
Преимущество отключения сквозной передачи VPN заключается в повышении безопасности за счет блокирование открытых портов связи через брандмауэр, который в противном случае был бы открыт и доступен. Недостатком является то, что пользователь за шлюзом не сможет установить VPN-соединение, поскольку необходимые VPN-порты заблокированы брандмауэром.
Почему SIP ALG плохой?
SIP ALG может переписывать заголовки SIP-пакетов, что может помешать процессу доставки. Это может заставить устройство, которому вы звоните, поверить, что ваш телефон не находится за NAT, хотя на самом деле это так. Если ALG прерывает вызов, это может привести к сбою входящего вызова и отмене регистрации телефонов.
Стоит ли выключить Ван?
Не будь Ван, Просто отключите WAN!
Если вы решите включить WAN-соединение из своей локальной домашней сети, любое количество хакеров или других злоумышленников может присоединиться к вашей локальной сети и либо лишить вас бесплатного Интернета, либо разработать более коварные схемы.
Стоит ли отключить DMZ?
Таким образом, когда вы настраиваете «домашний» DMZ или хост DMZ, вы должны быть очень осторожны. По факту, вам вообще не следует использовать функцию DMZ домашнего маршрутизатора если можно этого избежать. Следует отметить, что DMZ или DMZ Host не улучшают скорость или задержку соединения вашего маршрутизатора с сервером.
Какова цель ALG?
ALG или шлюз прикладного уровня — это программный компонент, который управляет определенными протоколами приложений, такими как SIP (протокол инициации сеанса) и FTP (протокол передачи файлов). ALG действует как посредник между Интернетом и сервером приложений, который может понимать протокол приложения.
Стоит ли отключать прокси IGMP?
IGMP проксирование следует оставить включенным, если это не вызовет проблем. Это позволяет маршрутизатору преобразовывать многоадресный трафик в одноадресный, что позволяет сети, особенно беспроводным устройствам, работать более эффективно.
Нужен ли мне сквозной VPN?
VPN Passthrough необходим, потому что все используемые недавно маршрутизаторы состоят из преобразования сетевых адресов (NAT — который позволяет нескольким компьютерам использовать одно и то же подключение к Интернету), а PPTP и IPSec не работают с NAT. . Примечание: Нет необходимости открывать порты для включите сквозной VPN, он будет работать автоматически.
Что такое отключить SIP ALG?
ALG — это инструмент преобразования сетевых адресов (NAT), который преобразует частные IP-адреса и порты в общедоступные IP-адреса и порты. SIP ALG действует как независимая программа прошивки для предотвращения проблем, связанных с брандмауэром на маршрутизаторе. . Вот почему многие ведущие провайдеры SIP советуют вам отключить эту функцию на вашем маршрутизаторе.
Нужен ли UPnP для игр?
Многие игры работают нормально, просто полагаясь на UPnP (Универсальный Plug and Play), чтобы открыть порт, когда он запрашивается вашей машиной, а затем закрыть его, когда приложение будет выполнено. Прежде чем беспокоиться об открытии портов, найдите параметр UPnP в своем маршрутизаторе и убедитесь, что он включен.
Источник: alloya.ru
Что такое alg в программе информатика
ALG обрабатывает динамические политики брандмауэра, необходимыe определенным протоколам, таким как FTP. Многие подобные протоколы были разработаны без учета безопасности или других средств контроля доступа, что может вызвать проблемы при внедрении брандмауэров.
Например, FTP использует несколько сеансов для облегчения передачи файлов — первичный командный канал и вторичные каналы данных для списков каталогов и передачи файлов. Часто эти каналы данных идут в направлении, противоположном исходному командному каналу.
Поскольку эти каналы данных могут подключаться к любому порту, практически невозможно создать статическую политику брандмауэра, которая бы разрешала эти каналы данных и при этом обеспечивала адекватную защиту.
FTP ALG автоматически решает эту проблему путем мониторинга командного канала FTP, поиска команд порта FTP, которые указывают, какие порты источника и назначения запрашиваются. ALG динамически открывает определенную комбинацию IP-портов источника и назначения в политике брандмауэра, которая позволяет установить сессию. Как только сессия завершена, шлюз немедленно закрывается.
FTP ALG также обрабатывает особый случай, когда FTP-сессия проходит через интерфейс NAT. В этом случае конечные точки не всегда понимают, что их адреса переводятся в середине потока. Команды порта FTP используют IP-адреса, которые настроены на интерфейсах конечных узлов, что в случае узла, находящегося за брандмауэром NAT, обычно недостижимо из интернета. ALG решает эту проблему на прикладном уровне, заменяя внутренний IP на адрес интерфейса NAT.
Принцип работы ALG схож с прокси-сервером, шлюз обеспечивает возможность использования протокола клиентами.
Примеры протоколов, для которых требуется ALG
- PASV передает IP-адрес и номер порта клиента в команде PORT с помощью ALG.
- У протокола PPTP нет понятия «номер порта», что создает проблемы с преобразованием адреса во внешний мир. ALG позволяет создать больше одного PPTP-соединения.
- Протокол H.323. Шлюз прикладного уровня состоит из набора протоколов H.225.0 и H.245 для обеспечения сеанса аудиовизуальной связи в любой сети.
- Также ALG работает в протоколах передачи файлов в некоторых мессенджерах, участвует в создании игровых серверов и помогает организовывать файлообменные сети.
Источник: vasexperts.ru