Źródłowe tłumaczenie adresów sieciowych (SNAT) za pomocą usługi Azure NAT Gateway
Źródłowe tłumaczenie adresów sieciowych (SNAT) umożliwia ruch z prywatnej sieci wirtualnej do łączenia się z Internetem, a jednocześnie pozostaje w pełni prywatny. Funkcja SNAT ponownie zapisuje źródłowy adres IP i port pakietu źródłowego do publicznego adresu IP i kombinacji portów. Porty są używane jako unikatowe identyfikatory, aby odróżnić różne połączenia od siebie. Internet używa skrótu krotki z pięcioma krotkami (protokół, źródłowy adres IP/port, docelowy adres IP/port) w celu zapewnienia tego rozróżnienia.
Funkcja SNAT umożliwia również wielu wystąpień prywatnych w sieci wirtualnej używanie tego samego pojedynczego publicznego adresu IP lub zestawu adresów IP (prefiksu) do łączenia się z Internetem.
Brama translatora adresów sieciowych umożliwia korzystanie z wielu do jednego protokołu SNAT. Wiele wystąpień prywatnych w podsieci może SNAT nawiązać połączenie z publicznym adresem IP dołączonym do bramy translatora adresów sieciowych w celu nawiązania połączenia z Internetem. Gdy brama translatora adresów sieciowych wykonuje wiele połączeń z tym samym punktem końcowym docelowym, każde nowe połączenie używa innego portu SNAT, aby połączenia mogły się odróżnić od siebie.
Wyczerpanie portów SNAT występuje, gdy w źródłowym punkcie końcowym zabrakło dostępnych portów SNAT, aby odróżnić nowe połączenia. Gdy wystąpi wyczerpanie portów SNAT, połączenia kończą się niepowodzeniem.
Skalowanie translatora adresów sieciowych dla bramy translatora adresów sieciowych
Skalowanie bramy translatora adresów sieciowych jest przede wszystkim funkcją zarządzania udostępnionym dostępnym spisem portów SNAT.
Spis portów SNAT jest dostarczany przez publiczne adresy IP, prefiksy publicznych adresów IP lub oba dołączone do bramy translatora adresów sieciowych. Spis portów SNAT jest udostępniany na żądanie wszystkim wystąpieniom w podsieci dołączonej do bramy translatora adresów sieciowych. W miarę skalowania obciążenia wystąpień prywatnych podsieci brama translatora adresów sieciowych przydziela porty SNAT zgodnie z potrzebami.
Jeśli wiele podsieci w sieci wirtualnej jest dołączonych do tego samego zasobu bramy translatora adresów sieciowych, spis portów SNAT udostępniany przez bramę translatora adresów sieciowych jest współużytkowany we wszystkich podsieciach.
Pojedyncza brama translatora adresów sieciowych może skalować do 16 adresów IP. Każdy publiczny adres IP bramy translatora adresów sieciowych zapewnia 64 512 portów SNAT w celu nawiązywania połączeń wychodzących. Brama translatora adresów sieciowych może skalować do ponad 1 milionów portów SNAT. Protokoły TCP i UDP są oddzielnymi spisami portów SNAT i nie są powiązane z bramą translatora adresów sieciowych.
Brama translatora adresów sieciowych dynamicznie przydziela porty SNAT
Brama translatora adresów sieciowych dynamicznie przydziela porty SNAT w zasobach prywatnych podsieci, takich jak maszyny wirtualne. Wszystkie dostępne porty SNAT są używane na żądanie przez dowolną maszynę wirtualną w podsieciach skonfigurowanych z bramą translatora adresów sieciowych.
Rysunek: Alokacja portów SNAT
Wstępnelokalizacja portów SNAT do każdej maszyny wirtualnej jest wymagana dla innych metod SNAT. Ta wstępna alokacja portów SNAT może spowodować wyczerpanie portów SNAT na niektórych maszynach wirtualnych, podczas gdy inne nadal mają dostępne porty SNAT do nawiązywania połączenia wychodzącego.
W przypadku bramy translatora adresów sieciowych wstępnelokowanie portów SNAT nie jest wymagane, co oznacza, że porty SNAT nie są używane przez maszyny wirtualne, które nie potrzebują ich aktywnie.
Po wydaniu portu SNAT jest on dostępny do użycia przez dowolną maszynę wirtualną w podsieciach skonfigurowanych z bramą translatora adresów sieciowych. Alokacja na żądanie umożliwia dynamiczne i rozbieżne obciążenia w podsieciach do używania portów SNAT zgodnie z potrzebami. Jeśli porty SNAT są dostępne, przepływy SNAT kończą się powodzeniem.
Rysunek: Wyczerpanie portów SNAT
Wybór portu SNAT bramy translatora adresów sieciowych i ponowne użycie
Brama translatora adresów sieciowych wybiera losowo port SNAT z dostępnego spisu portów w celu utworzenia nowych połączeń wychodzących. Jeśli brama translatora adresów sieciowych nie znajdzie żadnych dostępnych portów SNAT, ponownie użyje portu SNAT. Ten sam port SNAT może służyć do łączenia się z wieloma różnymi miejscami docelowymi w tym samym czasie.
Port SNAT można użyć ponownie, aby nawiązać połączenie z tym samym docelowym punktem końcowym. Przed ponownym użyciem portu brama translatora adresów sieciowych umieszcza czasomierz ponownego użycia portu SNAT w celu schładzania na porcie po zamknięciu połączenia.
Czasomierz ponownego używania portu SNAT zapobiega zbyt szybkiemu wybieraniu portów w celu nawiązania połączenia z tym samym miejscem docelowym. Ten proces jest przydatny, gdy docelowe punkty końcowe mają skonfigurowane zapory lub inne usługi, które umieszczają czasomierz ochładzania na portach źródłowych. Ponowne użycie portów SNAT zależy od sposobu zamknięcia przepływu połączenia. Aby dowiedzieć się więcej, zobacz Ponowne użycie portów czasomierzy.
Rysunek: Ponowne użycie portów SNAT
Przykładowe przepływy SNAT dla bramy translatora adresów sieciowych
Wiele do jednego translatora adresów sieciowych z bramą translatora adresów sieciowych
Brama translatora adresów sieciowych udostępnia wiele do jednej konfiguracji, w której wiele wystąpień prywatnych w skonfigurowanej podsieci translatora adresów sieciowych może używać tego samego publicznego adresu IP do łączenia wychodzącego.
W poniższej tabeli dwie różne maszyny wirtualne (10.0.0.1 i 10.2.0.1) tworzą połączenia z https://microsoft.com docelowym adresem IP 23.53.254.142. Gdy brama translatora adresów sieciowych jest skonfigurowana przy użyciu publicznego adresu IP 65.52.1.1, adresy IP źródłowe każdej maszyny wirtualnej są tłumaczone na publiczny adres IP bramy translatora adresów sieciowych i port SNAT:
Flow | Krotka źródłowa | Krotka źródłowa po SNAT | Krotka docelowa |
---|---|---|---|
1 | 10.0.0.1:4283 | 65.52.1.1:1234 | 23.53.254.142:80 |
2 | 10.0.0.1:4284 | 65.52.1.1:1235 | 23.53.254.142:80 |
3 | 10.2.0.1:5768 | 65.52.1.1:1236 | 23.53.254.142:80 |
Maskowanie adresów IP lub maskowanie portów to czynność zastąpienia prywatnego adresu IP i portu publicznym adresem IP i portem przed nawiązaniem połączenia z Internetem. Wiele zasobów prywatnych można zamaskować za tym samym publicznym adresem IP bramy translatora adresów sieciowych.
Brama translatora adresów sieciowych ponownie używa portu SNAT w celu nawiązania połączenia z nowym miejscem docelowym
Jak wspomniano wcześniej, brama translatora adresów sieciowych może ponownie użyć tego samego portu SNAT, aby połączyć się jednocześnie z nowym docelowym punktem końcowym. W poniższej tabeli brama translatora adresów sieciowych tłumaczy przepływ 4 na port SNAT, który jest już używany dla innych miejsc docelowych (zobacz przepływ 1 z poprzedniej tabeli).
Flow | Krotka źródłowa | Krotka źródłowa po SNAT | Krotka docelowa |
---|---|---|---|
100 | 10.0.0.1:4285 | 65.52.1.1:1234 | 26.108.254.155:80 |
Port SNAT bramy translatora adresów sieciowych do ponownego użycia w tym samym miejscu docelowym
W scenariuszu, w którym brama translatora adresów sieciowych ponownie używa portu SNAT, aby nawiązać nowe połączenia z tym samym punktem końcowym docelowym, port SNAT jest najpierw umieszczany w fazie ponownego użycia portu SNAT w celu schładzania. Okres ponownego użycia portów SNAT pomaga zapewnić, że porty SNAT nie są zbyt szybko używane podczas nawiązywania połączenia z tym samym miejscem docelowym. Ponowne użycie portu SNAT w celu schładzania bramy translatora adresów sieciowych jest korzystne w scenariuszach, w których docelowy punkt końcowy ma zaporę z własnym czasomierzem portu źródłowego w celu ochładzania.
Aby zademonstrować ponowne użycie portu SNAT, przyjrzyjmy się bliżej przepływowi 4 z poprzedniej tabeli. Usługa Flow 4 łączyła się z docelowym punktem końcowym frontonu przez zaporę z 20-sekundowym portem źródłowym chłodzącym czasomierz.
Flow | Krotka źródłowa | Krotka źródłowa po SNAT | Krotka docelowa | Połączenie typu pakietu jest zamykane za pomocą polecenia | Docelowy czasomierz zapory do ochładzania dla portu źródłowego |
---|---|---|---|---|---|
100 | 10.0.0.1:4285 | 65.52.1.1:1234 | 26.108.254.155:80 | TCP FIN | 20 sekund |
przepływ Połączenie ion 4 zamyka się przy użyciu pakietu TCP FIN. Ponieważ połączenie jest zamykane z pakietem TCP FIN, brama TRANSLATOR adresów sieciowych umieszcza port SNAT 1234 w chłodzeniu przez 65 sekund, zanim będzie można użyć go ponownie. Ponieważ port 1234 jest w chłodzeniu dłużej niż czas trwania czasomierza schładzania portu źródłowego zapory przez 20 sekund, przepływ połączenia 5 kontynuuje ponowne używanie portu SNAT 1234 bez problemu.
Flow | Krotka źródłowa | Krotka źródłowa po SNAT | Krotka docelowa |
---|---|---|---|
5 | 10.2.0.1:5769 | 65.52.1.1:1234 | 26.108.254.155:80 |
Należy pamiętać, że brama translatora adresów sieciowych umieszcza porty SNAT w ramach innego portu SNAT ponownie używa czasomierzy schładzania w zależności od sposobu zamknięcia poprzedniego połączenia. Aby uzyskać więcej informacji na temat czasomierzy ponownego używania portów SNAT, zobacz Ponowne używanie czasomierzy portów.
Nie należy brać zależności od określonego sposobu przypisywanego portów źródłowych w powyższych przykładach. Powyższe są ilustracjami tylko podstawowych pojęć.