SNAT (Source Network Address Translation) jest techniką adresacji polegającą na tłumaczeniu źródłowych adresów IP (inicjujących połączenia) na inne, gdy zachodzi taka potrzeba.
W praktyce – najczęściej są to adresy hostów z puli przeznaczonej dla sieci lokalnych, tłumaczone na adres najbliższej bramy/routera dysponującego adresem publicznym, umożliwiającym poruszanie się w globalnej sieci Internet.
W niniejszym przykładzie posłużymy się m. in. translacją SNAT aby podłączyć sieć lokalną i urządzenie Hillstone z siecią globalną, posiadając dwa łącza różnych operatorów/dostawców usług internetowych (ang. ISP – Internet Service Provider).
W scenariuszu zamierzamy używać usług dwóch dostawców, jako łącza głównego (roboczego) i łącza zapasowego, według poniższego schematu:
ZAŁOŻENIA/OPIS:
I. Połączenie przewodowe z Internetem (po lewej stronie) jest łączem głównym.
II. Połączenie bezprzewodowe z Internetem (po prawej stronie) jest łączem zapasowym aczkolwiek pracującym równolegle.
III. W przypadku słabej jakości/zakłóceń łącza zapasowego, udostępnianie połączenia internetowego działa jedynie na łączu głównym.
IV. Z łącza zapasowego korzysta wyłącznie „Critical Asset” (zasób krytyczny) – komputer wymagający nieprzerwanego połączenia, oznaczony na schemacie jako „PC – sekretariat”
V. Na łączu zapasowym, zależy nam głównie na dostępie do stron internetowych oraz na zapisie jego działania w dzienniku, jeśli będzie ono potrzebne.
1. Konfiguracja interfejsów i przypisanie ich do stref
Wybieramy zakładkę Network -> Interface [1], wskazujemy interfejs, który należy skonfigurować, naciskamy Edit [2], a następnie w oknie Ethernet Interface ustawiamy opcje (tu: odnośniki naniesione na okno główne):
– Binding Zone – strefa powiązana – (tu, dla wszystkich: „Layer 3 Zone”)
– Zone [3] – używamy stref predefiniowanych:
——„trust” (domyślna zaufana dla LAN; „ethernet0/3”, „ethernet0/4”)
——„untrust” (domyślna niezaufana dla WAN; „ethernet0/1” „ethernet0/5”)
——„mgt” (domyślna zarządzająca; „ethernet0/0”)
– Type [4] – typ adresacji – (tu, dla wszystkich: „Static IP”)
– IP Address [5] – adres IP – według powyższego schematu lub poniższego zrzutu ekranu
– Netmask [5] – maska sieciowa – (tu, dla wszystkich: „255.255.255.0”; 24-bitowa)
Konfigurację interfejsów zatwierdzamy naciskając OK.
2. Włączenie źródłowej translacji adresów – SNAT (łącze główne)
Wybieramy zakładkę Policy -> NAT -> SNAT, naciskamy New, a następnie w oknie SNAT Configuration ustawiamy pola:
– Source Address [1] – adres IP hosta źródłowego (inicjującego połączenie z wewnątrz). Wskazujemy na dowolny (“Address Entry”, “Any”)
– Destination Address [2] – adres IP hosta docelowego (wskazany na zewnątrz). Wskazujemy na dowolny (“Address Entry”, “Any”)
– Ingress Traffic [3] – interfejs z ruchem przychodzącym, objętym regułą SNAT. Obejmujemy cały ruch („All Traffic”).
– Egress [4] – interfejs z ruchem wychodzącym, objętym regułą SNAT. Wybieramy interfejs NAT-ujący łącze główne („Egress Interface”; „ethernet0/1”).
– Service [5] – jedna z usług (lub grup usług), którą zamierzamy przekierować przez SNAT (dozwolona jedna pozycja). Dopuszczamy wszystkie („Any”)
Pozostałe opcje pozostawiamy przy ustawieniach domyślnych.
Politykę SNAT zatwierdzamy naciskając OK.
3. Włączenie źródłowej translacji adresów – SNAT (łącze zapasowe)
Na łączu zapasowym zamierzamy dopuścić do ruchu jedynie usługi DNS (port 53), HTTP (port 80) oraz HTTPS (port 443).
Z powodu ograniczenia w polu „Service”, gdzie nie możemy umieścić listy a jedynie jedną pozycję, oraz braku odpowiedniej usługi na liście; definiujemy własną usługę.
Wybieramy zakładkę Object -> Service Book -> Service Group [1], naciskamy New, a następnie w oknie Service Group Configuration ustawiamy:
– Name [2] – nazwa własna grupy usług (obowiązkowa)
W tabeli z ruchem dopuszczonym do usługi (Member) naciskamy plus [+] [3] i dodajemy usługi HTTP, HTTPS oraz DNS.
Opcjonalnie dodajemy opis (pole Description) i zatwierdzamy konfigurację usługi naciskając OK [4].
Wybieramy zakładkę Policy -> NAT -> SNAT [5], naciskamy New, a następnie w oknie SNAT Configuration ustawiamy pola:
– Source Address [6] – adres IP hosta źródłowego (inicjującego połączenie z wewnątrz). Wskazujemy na dowolny (“Address Entry”, “Any”)
– Destination Address [7] – adres IP hosta docelowego (wskazany na zewnątrz). Wskazujemy na dowolny (“Address Entry”, “Any”)
– Ingress Traffic [8] – interfejs z ruchem przychodzącym, objętym regułą SNAT. Wybieramy interfejs zarezerwowany dla komputera „PC – sekretariat” („ethernet0/3”).
– Egress [9] – interfejs z ruchem wychodzącym, objętym regułą SNAT. Wybieramy interfejs NAT-ujący łącze awaryjne („Egress Interface”; „ethernet0/5”).
– Service [10] – jedna z usług (lub grup usług), którą zamierzamy przekierować przez SNAT. Wybieramy zdefiniowaną wcześniej grupę („Awaria1”).
– NAT Log [11] – włączamy, zgodnie z założeniami logowanie do dziennika ruchu na łączu zapasowym.
– Position [12] – domyślnie ustawiamy nową politykę SNAT na dole listy.
Politykę SNAT zatwierdzamy naciskając OK.
WARIANT B – Dwóch operatorów działających równolegle. Load Balancing i Track Object.
4b. Routing dla interfejsów NAT-ujących
Wybieramy zakładkę Network -> Routing -> Destination Route (1), naciskamy New, a następnie w oknach Destination Route Configuration (*) uzupełniamy pola:
– Destination/Netmask [2/3] – docelowy adres IP oraz maska sieciowa. Chcąc dopuścić routing wszystkich możliwych adresów – zerujemy oba pola.
– Next-hop [4] – punkt następnego przeskoku. Routing realizujemy przez dobrane do tego celu interfejsy, zatem wskazujemy „Interface”.
– Interface [5] – interfejsy NAT-ujące (tu: „ethernet0/1” oraz „ethernet0/5”)
– Gateway [6] – adresy IP bram sieciowych na obu łączach (przy urządzeniach na schemacie).
– Precedence [7] – pierwszeństwo trasowania. Ustawiamy tę samą wartość (tu: „1”) dla obu routingów.
Pozostałe opcje pozostawiamy przy ustawieniach domyślnych.
(*) – screen poglądowy/edytowany. W rzeczywistości oba okna/routingi należy otworzyć i skonfigurować osobno.
Skonfigurowane routingi, zatwierdzamy naciskając OK.
5b. Test.
Wygenerowany ruch sieciowy jest podzielony przez algorytm optymalnego równoważenia obciążenia łącza (Load Balancing):
Aktywne są routingi wyprowadzone dla łącz obu operatorów:
Aktualny publiczny IP, z którego zgłaszamy się do sieci, zależy od operatora, do którego Hillstone skieruje bieżącą sesję. Może się on zmieniać w trakcie przeglądania różnych stron internetowych:
6b. Obiekt śledzony jako narzędzie do wykrywania zakłóceń lub awarii
Załóżmy, że w pobliżu znajduje się nieznane źródło zakłóceń, aktywne w różnych porach i w nieregularnych odstępach czasu.
Wiemy, że na zakłócenia podatne jest łącze bezprzewodowe.
Niedostępność roboczej strony internetowej (tu: „www.stronafirmowa.pl”) jest sytuacją nieakceptowalną, zatem definiujemy ją jako obiekt śledzony i w wypadku braku łączności, nie korzystamy z operatora bezprzewodowego (Hillstone automatycznie dezaktywuje routing) do czasu ustąpienia zakłóceń.
Track Object (*)
Aby zdefiniować obiekt śledzony, wybieramy zakładkę Object -> Track Object [1], naciskamy ⊕New i w oknie Track Object Configuration ustawiamy:
– Name [2] – obowiązkowa nazwa własna obiektu śledzonego
– Track Type [3] – typ obiektu śledzonego (tu: „Protocol”).
– Add Track Members [4] – dodajemy protokół HTTP jako pozycję śledzoną (⊕Add -> HTTP), a następnie w oknie Add HTTP Member ustawiamy:
– IP/Host [5] – śledzony adres IP lub domena (tu: „www.stronafirmowa.pl”).
– Egress Interface [6] – interfejs wyjściowy (tu: obsługujący łącze bezprzewodowe „ethernet 0/5”).
Obiekt śledzony zatwierdzamy, dwukrotnie naciskając [OK].
(*) – uogólniona instrukcja korzystania z obiektów śledzonych – w podręczniku Track Object – (zabezpieczenia.it)
Wybieramy zakładkę Network -> Routing -> Destination Route, a następnie edytujemy routing wyznaczony dla operatora bezprzewodowego i w polu Track Object dobieramy z listy zdefiniowany obiekt śledzony.
Track Object Failed – reakcja na awarię
Gdy obiekt śledzony przestaje odpowiadać 3 razy z rzędu w 3-sekundowych interwałach czasowych (*), system uznaje niepowodzenie i zmienia mu status na „Failed”:
W odróżnieniu od sytuacji, gdy mamy do czynienia z fizyczną awarią łącza, tutaj routing operatora z awarią nadal działa, ale jest nieaktywny z powodu niedostatecznej jakości połączenia z obiektem śledzonym:
(*) – ustawienia domyślne. Istnieje możliwość ustawiania wartości od 1 do 255.