Показать меню

Application-level gateway

17.12.2020
41

Application-level gateway, или ALG (с англ. — «шлюз прикладного уровня») — компонент NAT-маршрутизатора, который понимает какой-либо прикладной протокол, и при прохождении через него пакетов этого протокола модифицирует их таким образом, что находящиеся за NAT пользователи могут пользоваться протоколом.

Описание

NAT-маршрутизатор ретранслирует пакеты, поступающие изнутри локальной сети и отправляет их во внешнюю сеть, используя свой внешний IP-адрес как адрес отправителя. Также может подменяться порт. Но некоторые сетевые протоколы в содержании своих пакетов передают и пытаются использовать локальный IP-адрес или порт отправителя. Конечно же, после прохождения NAT и подмены локального IP на внешний эти параметры становятся неверными — а значит, удалённая сторона не может наладить соединение.

ALG, идентифицировав пакет как относящийся к данному протоколу, подставляет в качестве IP-адреса и порта свои адрес и порт. Если, по протоколу, соединение по этому порту налаживает удалённый компьютер, автоматически включается ретрансляция.

ALG похож на прокси-сервер; обычно понятием «прокси-сервер» называют сервер, который выполняет дополнительные операции наподобие кэширования, в то время как задача ALG — обеспечить, чтобы клиенты могли пользоваться протоколом.

Протоколы, требующие ALG

  • FTP без пассивного режима (PASV). Передает IP-адрес и номер порта на клиенте в команде PORT.
  • PPTP. Протокол основан на GRE (по сути PPTP есть PPP поверх GRE с дополнительным управляющим TCP-соединением, которое не используется для данных), а значит, на «сыром» IP. Так как «сырой» IP не имеет понятия «номер порта», возникают проблемы с NAT-отображением этого протокола во внешний мир. Без наличия PPTP ALG в NAT (например, natd в старых версиях FreeBSD) из всей внутренней сети возможно только одно PPTP-подключение к внешнему миру, попытка кого угодно во внутренней сети создать еще одно исходящее PPTP-подключение приводит к ошибке (ошибка 619 в Windows).
  • H.323
  • Протоколы передачи файлов в некоторых мессенджерах (например, MSN Messenger)
  • Создание сервера в некоторых играх
  • Некоторые файлообменные сети

Реализации в ОС

Windows Встроенный NAT в ОС Windows (ipnat.sys, в интерфейсе пользователя возможность называется Internet Connection Sharing) использует исполняемые в режиме пользователя ALG-модули, которые загружаются в адресное пространство процесса ALG.EXE (он же сервис по имени alg). В Platform SDK есть заголовочные файлы для разработки ALG-модулей для ранее не поддерживаемых протоколов. Тем не менее, документация на эти интерфейсы не опубликована. Linux Встроенный в ядро межсетевой экран netfilter поддерживает такие протоколы, как AMANDA, FTP, TFTP, IRC, PPTP, H.323, SIP, SNMP, DCCP, GRE и др. Кроме того, обеспечена поддержка подгружаемых модулей, позволяющих реализовать ALG функционал для любых других протоколов, существующих и будущих. В силу свободного статуса самой Linux вся документация на интерфейсы свободно и бесплатно доступна всем.

Реализация в маршрутизаторах

Практически все маршрутизаторы, имеющие NAT, умеют работать с PPTP, IPsec, RTSP, SIP, H.323, SMTP, DNS, TFTP.

Еще по этой теме:
quagga
11:09, 16 декабрь
quagga
Quagga — пакет свободного программного обеспечения, поддерживающий протоколы динамической маршрутизации IP. Компьютер с установленным и сконфигурированным пакетом Quagga становится способен
Office Mail Server
05:26, 14 декабрь
Office Mail Server
Office Mail Server — бесплатный почтовый сервер под платформу Windows. Поддерживает почтовые протоколы POP3 и SMTP, но не IMAP. Механизм работы В организации подключать к интернету для приёма и
L2TP
19:12, 11 декабрь
L2TP
L2TP (англ. Layer 2 Tunneling Protocol — протокол туннелирования второго уровня) — в компьютерных сетях туннельный протокол, использующийся для поддержки виртуальных частных сетей. Главное
Xerox Network Services
15:10, 11 декабрь
Xerox Network Services
Стек протоколов XNS (англ. Xerox network services) – это набор протоколов, разработанных корпорацией «Xerox» в конце 1970 – начале 1980 годов. Протоколы XNS делятся на 5 уровней, соответствующих 7‑и
Zeroconf
09:06, 05 декабрь
Zeroconf
Zeroconf или Zero Configuration Networking — набор технологий, которые автоматически создают IP-сеть без конфигурации или специальных серверов. Также известен как Automatic Private IP Addressing
NOP
03:16, 02 декабрь
NOP
В информатике NOP или NOOP (сокращение от английского: «No OPeration») инструкция процессора на языке ассемблера, или команда протокола, которая предписывает ничего не делать. NOP как машинная
Комментарии:
Добавить комментарий
Ваше Имя:
Ваш E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent