Реклама


Application-level gateway

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

Описание[ | код]

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

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

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

Протоколы, требующие ALG[ | код]

Реализации в ОС[ | код]

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.

Ссылки[ | код]

Реклама