Gateway på applikationsnivå
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 16 april 2018; verifiering kräver
1 redigering .
Application-level gateway , eller ALG (från engelska - "application level gateway") - en komponent i en NAT- router som förstår alla applikationsprotokoll och när paket av detta protokoll passerar genom det, modifierar den dem på ett sådant sätt att användare bakom NAT kan använda protokollet.
Beskrivning
En NAT- router vidarebefordrar paket som kommer inifrån det lokala nätverket och skickar dem till det externa nätverket med dess externa IP-adress som källadress. Porten kan också ändras . Men vissa nätverksprotokoll i innehållet i sina paket överför och försöker använda den lokala IP-adressen eller källporten. Naturligtvis, efter att ha gått igenom NAT och ersatt den lokala IP-adressen med en extern, blir dessa parametrar felaktiga - vilket innebär att fjärrsidan inte kan upprätta en anslutning.
ALG, som har identifierat paketet som tillhörande detta protokoll, ersätter dess adress och port som IP-adress och port. Om, enligt protokollet, en fjärrdator upprättar en anslutning på den här porten, aktiveras relä automatiskt.
ALG är som en proxy ; vanligtvis hänvisar termen "proxy" till en server som utför ytterligare operationer som cachning , medan ALG:s uppgift är att säkerställa att klienter kan använda protokollet.
Protokoll som kräver ALGs
- FTP utan passivt läge ( PASV). Skickar IP-adressen och portnumret på klienten i PORT-kommandot.
- PPTP . Protokollet är baserat på GRE (i huvudsak är PPTP PPP över GRE med en extra kontroll TCP-anslutning som inte används för data), vilket betyder rå IP. Eftersom rå IP inte har något begrepp om ett portnummer, finns det problem med NAT-mappningen av detta protokoll till omvärlden. Utan en PPTP ALG i NAT (som natd i äldre versioner av FreeBSD ), är endast en PPTP-anslutning till omvärlden möjlig från hela det interna nätverket, ett försök från någon på det interna nätverket att skapa en annan utgående PPTP-anslutning resulterar i en fel (fel 619 på Windows).
- H.323
- Filöverföringsprotokoll i vissa meddelanden (som MSN Messenger )
- Skapa en server i vissa spel
- Vissa fildelningsnätverk
OS-implementationer
Windows
Inbyggd NAT i Windows OS (ipnat.sys, kallad Internet Connection Sharing i användargränssnittet) använder ALG-moduler i användarläge som laddas in i adressutrymmet för ALG.EXE-processen (alias tjänst som kallas alg). Platform-SDK:n har rubrikfiler för utveckling av ALG-moduler för protokoll som tidigare inte stöddes. Dokumentation för dessa gränssnitt har dock inte publicerats.
linux
Netfilterbrandväggen som är inbyggd i kärnan stöder protokoll som
AMANDA ,
FTP ,
TFTP ,
IRC ,
PPTP ,
H.323 ,
SIP ,
SNMP ,
DCCP ,
GRE , och andra protokoll, befintliga och framtida. På grund av den fria statusen för själva Linux är all gränssnittsdokumentation fritt och fritt tillgänglig för alla.
Implementering i routrar
Nästan alla routrar med NAT kan fungera med PPTP, IPsec, RTSP, SIP, H.323, SMTP, DNS, TFTP.
Länkar