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.
III. W przypadku awarii/niedostępności łącza głównego, udostępnianie połączenia internetowego działa na łączu zapasowym.
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] – polityka NAT dla łącza zapasowego, domyślnie ma nie działać, gdy działa łącze główne, zatem umieszczamy ją na dole listy („Bottom”) (*)
Pozostałe opcje pozostawiamy przy ustawieniach domyślnych.
Politykę SNAT zatwierdzamy naciskając OK.
(*) – w opisywanym przykładzie nie ma to większego znaczenia, ponieważ w pkt. 4 ustawimy routing o wyższym priorytecie dla łącza głównego, aczkolwiek rekomendowane jest zachowanie zalecanego porządku.
WARIANT A – Dwóch operatorów, w tym jeden z preferowanym pierwszeństwem routingu.
4a. 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 „1” dla routingu głównego i „2” dla zapasowego.
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.
5a. Test.
Wygenerowany ruch sieciowy przechodzi przez SNAT dla łącza głównego (Hit Count dla zapasowego wynosi 0):
Aktywny jest routing z pierwszeństwem:
Zgodny z założeniem jest również adres IP pierwszego operatora:
6a. Symulacja awarii
Załóżmy, połączenie od pierwszego operatora staje się nieczynne:
Zgodnie założeniami, ruch sieciowy zostaje przekierowany na drugą regułę NAT (Hit Count) i przewiduje dostęp tylko dla jednego interfejsu:
Nie działa routing przy pierwszej bramie, zatem ruch trasujący przechodzi do drugiej:
Zmienia się również zewnętrzny adres IP: