For faster navigation, this Iframe is preloading the Wikiwand page for Application-level gateway.

Application-level gateway

Материал из Википедии — свободной энциклопедии

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.

Это заготовка статьи о компьютерных сетях. Помогите Википедии, дополнив её.
{{bottomLinkPreText}} {{bottomLinkText}}
Application-level gateway
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?