Tag: NAT

  • (K) Konfiguracja protokołu NAT64*

    (K) Konfiguracja protokołu NAT64*

    Konfiguracja protokołu NAT64

    Konfiguracja interfejsu IPv6

    (config)# ipv6 unicast-routing

    Aktywuje funkcję routingu względem protokołu IPv6.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego (IPv6).

    (config-if)# ipv6 address prefix/prefix-length

    Przypisuje adres IPv6, do konfigurowanego interfejsu sieciowego.

    (config-if)# nat64 enable

    Aktywuje protokół NAT64, na konfigurowanym interfejsie sieciowym.

    Konfiguracja interfejsu IPv4

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego (IPv4).

    (config-if)# ip address adres-IPv4 maska

    Przypisuje adres IPv4, do konfigurowanego interfejsu sieciowego.

    (config-if)# nat64 enable

    Aktywuje protokół NAT64, na konfigurowanym interfejsie sieciowym.

    Pozostałe tematy związane z konfiguracją protokołu IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Teoria protokołu NAT**

    (T) Teoria protokołu NAT**

    Wstęp do translacji adresów IPv4

    • NAT (Network Address Translation) – Umożliwia statyczną bądź dynamiczną translację prywatnych adresów IPv4 na adresy publiczne. W przypadku protokołu IPv6, translacja adresów nie jest powszechnie stosowana.
      • Statyczna translacja NAT – Umożliwia zamianę jednego adresu IP na inny, statycznie określony adres IP.
      • Dynamiczna translacja NAT – Umożliwia zamianę puli adresów IP, na inną pulę w proporcji jeden do jednego.
    Network Address Translation
    • PAT (Port Address Translation) – Umożliwia translację wielu adresów IP na jeden adres statyczny, bądź wiele adresów IP z możliwością przepełnienia.
    • Zarówno w przypadku translacji NAT jak i PAT rutery Cisco wyróżniają cztery rodzaje adresów, z których każdy uczestniczy w procesie translacji:
      • Wewnętrzny Lokalny (Inside Local) – Adres urządzenia inicjującego ruch sieciowy.
      • Wewnętrzny Globalny (Inside Global) – Adres publiczny rutera brzegowego.
      • Zewnętrzny Globalny (Outside Global) – Adres hosta docelowego.
    Port Address Translation

    Wstępne założenia

    • Publiczne adresy IP w przeciwieństwie do adresów prywatnych, są routowalne w Internecie, a tym samym pakiety na nie kierowane są globalnie dostępne. Aby hosty adresowane z prywatnej puli adresów IP, mogły uczestniczyć w globalnym ruchu sieciowym, muszą posiadać adres publiczny bądź skorzystać z translacji NAT czy PAT.
    • Istnieją dwie wersje protokołu NAT: Dynamiczna Dynamic NAT(DNAT) oraz statyczna Static NAT (SNAT).
      • DNAT – Przypisuje nadchodzący adres prywatny ,do adresu publicznego wybranego z puli wolnych adresów IP.
      • SNAT – Wprowadza statyczne przypisywanie jednego adresu prywatnego do jednego adresu publicznego.
    • Protokół PAT zwany również przeciążonym NAT-em (Overload NAT), umożliwia przypisanie wielu adresów prywatnych do jednego adresu publicznego. Dzięki czemu wszystkie komputery z sieci lokalnej mogą współdzielić jeden adres publiczny, pozostawiając resztę wolnych adresów publicznych dla serwerów czy innych usług zewnętrznych.

    Zalety protokołu NAT, PAT

    • Zwiększa bezpieczeństwo sieci, ukrywając topologię sieci lokalnej LAN.
    • Umożliwia stworzenie nadmiarowych połączeń, w komunikacji z siecią Internet.
    • Zmniejsza zapotrzebowanie na publiczne adresy IP.
    • Umożliwia zmianę adresacji publicznej, bez wpływu na adresację wewnętrzną (Np. zmiana ISP).

    Wady protokołu NAT, PAT

    • Performance is degraded – Zmniejsza wydajność przetwarzania nachodzących pakietów.
    • End-to-end functionality is degraded – Niektóre aplikacje związane np. z głosem (VoIP), umieszczają w swoich pakietach informacje o adresie nadawcy. Przy próbie odesłania takiej wiadomości odbiorca może kierować swoją odpowiedź na docelowy adres IP przed translacją NAT zapisany przez nadawcę w pakiecie, zamiast właściwego adresu IP wynikającego z translacji NAT. Dodatkowy problem może stanowić również port źródłowy, zamieniony przez translację PAT na inny losowo wygenerowany.
    • End-to-end IP tracebility is lost – Wielokrotna zmiana adresu IP utrudnia proces troubleshooting-u sieci.
    • Tunneling is more complicated – NAT utrudnia proces tunelowania ruchu sieciowego, poprzez wprowadzanie zmian w zawartość nagłówka pakietu. Co wpływa na sumę kontrolną wykorzystywaną przez np. protokół IPsec-a.
    • Service can be disrupted – Praca serwisów wymagających wstępnej inicjacji, może być zakłócona.

    Nazewnictwo związane z protokołem NAT, PAT

    • NVI (NAT Virtual Interface) – Określa interfejs stworzony przez instancję protokołu NAT.
    • Adres Inside Local (10.1.1.1) – Określa prywatny adres IP znajdujący się wewnątrz sieci lokalnej LAN (Adres IP hosta).
    • Adres Inside Global (198.51.100.1) – Określa publiczny adres IP znajdujący się na brzegu sieci lokalnej (Jest to adres IP jakim posługuje się urządzenia w sieci zewnętrznej (Adres ten widziany jest przez inne urządzenia znajdujące się w sieci globalnej, jako adres źródłowy nadającego hosta)).
    • Adres Outside Global (203.0.113.2) – Określa publiczny adres IP urządzenia będącego drugą stroną komunikacji, z punktu widzenia sieci globalnej.
    • Adres Outside Local (203.0.113.2) – Określa publiczny adres IP urządzenia będącego drugą stroną komunikacji, z punktu widzenia sieci lokalnej.

    Pozostałe tematy związane z protokołem NAT

    NATv6

  • (Ts) Troubleshooting protokołu NAT**

    (Ts) Troubleshooting protokołu NAT**

    Błędy popełniane podczas konfiguracji protokołu NAT

    • Zła konfiguracja interfejsów – W przypadku pomylenia roli jaką pełnią interfejsy sieciowe (Zewnętrze bądź wewnętrzne), translacja NAT nie będzie działać prawidłowo [show ip nat statistics].
    • Błędna konfiguracja puli adresów – Pula adresów może zawierać błędne adresy IP [show ip nat statistics].
    • Adres publiczny jest nie osiągalny poprzez Internet – Pakiety odesłane przez drugą stronę komunikacji (Serwer) muszą dotrzeć do adresu publicznego firmy, jeśli nie jest on osiągalny komunikacja nie będzie możliwa.
    • Problem z błędną konfiguracją list ACL – Lista ACL określa jakie adresy wewnętrzne, będą tłumaczone na adresy zewnętrzne, w procesie translacji protokołu NAT. Jeśli zostaną one źle określone, translacja NAT może nie dojść do skutku, bądź też dotyczyć będzie niewłaściwych adresów IP.
    • Złe mapowanie list ACL oraz puli adresów – Do translacji NAT może zostać przypisana niewłaściwa lista ACL.
    • Brak komendy przeładowującej – W przypadku konfiguracji protokołu PAT, należy użyć pod-komendy [overload] na końcu komendy [ip nat inside source ].

    Coś nie działa, Co sprawdzić !

    • Jeżeli proces translacji protokołu NAT czy PAT nie działa prawidłowo, należy sprawdzić konfigurację:
      • Interfejsów zewnętrznych oraz wewnętrznych pod kontem ustawień [ip nat inside] oraz [ip nat outside].
      • Konfiguracją list ACL oraz ich przypisanie do translacji NAT bądź PAT.
      • Komedę przeładowującą [overload] w przypadku translacji PAT.
      • Inne listy ACL uniemożliwiające przepływ ruchu sieciowego.
      • Główną komendę [ip nat inside …].
      • Pulę adresów [ip nat pool].
      • Wpisy w tablicy routingu.

    Pozostałe tematy związane z protokołem NAT

    NATv6

  • (K) Konfiguracja statycznej translacji NAT**

    (K) Konfiguracja statycznej translacji NAT**

    Konfiguracja statycznej translacji NAT

    Określenie roli interfejsów sieciowych

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji interfejsu znajdującego się wewnątrz sieci LAN.

    (config-if)# ip nat inside

    Określa role konfigurowanego interfejs sieciowego, jako interfejsu wewnętrznego względem statycznej translacji NAT.

    (config-if)# interface interfejs

    Przechodzi do poziomu konfiguracji interfejsu znajdującego się na zewnątrz sieci LAN.

    (config-if)# ip nat outside

    Określa role konfigurowanego interfejs sieciowego, jako interfejsu zewnętrznego względem statycznej translacji NAT.

    Mapowanie prywatnego adresu IP na adres publiczny

    (config)# ip nat inside source static wewnętrzny-adres-IP(Inside local) zewnętrzny-adres-IP(Inside global)

    Przypisuje wewnętrzny adres IP (Inside local IP address) do adresu zewnętrznego (Inside global IP address), tworząc statyczną translację NAT.

    (config)# ip nat inside source static {tcp / udp} wewnętrzny-adres-IP(Inside local) port-lokalny zewnętrzny-adres-IP(Inside global) port-zewnętrzny

    Przypisuje wewnętrzny adres IP (Inside local IP address) do adresu zewnętrznego (Inside global IP address), tworząc statyczną translację NAT. Pod-komendy TCP / UDP umożliwiają określenie źródłowego oraz docelowego portu warstwy czwartej modelu OSI.

    # show running-config | section nat inside

    Wyświetla konfigurację protokołu NAT.

    Komendy Show, Clear oraz Debug

    Komendy Show

    # show ip nat translations

    Wyświetla listę przeprowadzonych translacji NAT oraz PAT.

    # show ip nat statistics

    Wyświetla statystyki protokołu NAT oraz PAT.

    Komendy Clear

    # clear ip nat statistics

    Czyści wszystkie zapisane statystyki protokołu NAT oraz PAT.

    # clear ip nat translations*

    Czyści wszystkie zapisane statystyki translacji protokołu NAT oraz PAT.
    Przypadku usuwania konfiguracji protokołu PAT, wpierw należy użyć komendę [clear ip nat translations *].

    Komendy Debug

    # debug ip nat

    Rozpoczyna debugowanie zdarzeń protokołu NAT oraz PAT.

    # debug ip icmp

    Rozpoczyna debugowanie zdarzeń protokołu ICMP, dzięki czemu możemy zobaczyć z jakiego adresu IP nadchodzą wysyłane wiadomości ICMP, a tym samym potwierdzić czy translacja NAT doszła do skutku.

    Pozostałe tematy związane z protokołem NAT

    NATv6

  • (KP) NAT Static High Availability**

    (KP) NAT Static High Availability**

    Połączenie do dwóch dostawców ISP (Static NAT)

    Konfiguracja interfejsów

    (config)# interface interfejs(LAN)

    Przechodzi do poziomu konfiguracji interfejsu znajdującego się wewnątrz sieci LAN.

    (config-if)# ip nat inside

    Określa konfigurowany interfejs, jako interfejs wewnętrzny względem, translacji NAT.

    (config-if)# interface interfejs(WAN-1)

    Przechodzi do poziomu konfiguracji pierwszego interfejsu zewnętrznego.

    (config-if)# ip nat outside

    Określa konfigurowany interfejs, jako pierwszy interfejs zewnętrzny, względem translacji NAT.

    (config-if)# interface interfejs(WAN-2)

    Przechodzi do poziomu konfiguracji drugiego interfejsu zewnętrznego.

    (config-if)# ip nat outside

    Określa konfigurowany interfejs, jako drugi interfejs zewnętrzny, względem translacji NAT.

    Konfiguracja ruter mapy

    Konfiguracja Router Mapy została opisana w artykule: Router Map.

    (config)# route-map nazwa-1 permit sequence

    Tworzy router mapę względem pierwszego interfejsu zewnętrznego WAN.

    (config-route-map)# match interface interfejs-1

    Przypisuje do konfigurowanej router mapy, pierwszy interfejs sieciowy WAN-owy.

    (config-route-map)# route-map nazwa-2 permit sequence

    Tworzy router mapę względem drugiego interfejsu zewnętrznego WAN.

    (config-route-map)# match interface interfejs-2

    Przypisuje do konfigurowanej router mapy, drugi interfejs sieciowy WAN-owy.

    # show route-map [nazwa-router-mapy]

    Wyświetla określoną / wszystkie skonfigurowane na danym urządzeniu Router Mapy.

    Konfiguracja statycznej translacji NAT (Z portami)

    (config)# ip nat inside source static {tcp / udp} wewnętrzny-adres-IP(Inside local) port-lokalny zewnętrzny-adres-IP(Inside global) port-zewnętrzny route-map nazwa-1

    Przypisuje wewnętrzny adres IP (Inside local IP address) do adresu zewnętrznego (Inside global IP address), tworząc statyczną translację NAT.
    * tcp / udp – Umożliwia określenie źródłowego oraz docelowego portu warstwy czwartej modelu OSI.
    * router-map – Tworzy wpis względem pierwszego interfejsu sieciowego WAN.

    (config)# ip nat inside source static {tcp / udp} wewnętrzny-adres-IP(Inside local) port-lokalny zewnętrzny-adres-IP(Inside global) port-zewnętrzny route-map nazwa-2

    Przypisuje wewnętrzny adres IP (Inside local IP address) do adresu zewnętrznego (Inside global IP address), tworząc statyczną translację NAT.
    * tcp / udp – Umożliwia określenie źródłowego oraz docelowego portu warstwy czwartej modelu OSI.
    * router-map – Tworzy wpis względem drugiego interfejsu sieciowego WAN.

    Konfiguracja statycznej translacji NAT (Bez portów)

    (config)# ip nat inside source static wewnętrzny-adres-IP(Inside local) zewnętrzny-adres-IP(Inside global) route-map nazwa-1

    Przypisuje wewnętrzny adres IP (Inside local IP address) do adresu zewnętrznego (Inside global IP address), tworząc statyczną translację NAT.
    * router-map – Tworzy wpis względem pierwszego interfejsu sieciowego WAN.

    (config)# ip nat inside source static wewnętrzny-adres-IP(Inside local) zewnętrzny-adres-IP(Inside global) route-map nazwa-2

    Przypisuje wewnętrzny adres IP (Inside local IP address) do adresu zewnętrznego (Inside global IP address), tworząc statyczną translację NAT.
    * router-map – Tworzy wpis względem drugiego interfejsu sieciowego WAN.

    # show running-config | section nat inside

    Wyświetla konfigurację protokołu NAT.

    Komendy Show, Clear oraz Debug

    Komendy Show

    # show ip nat translations

    Wyświetla listę przeprowadzonych translacji NAT oraz PAT.

    # show ip nat statistics

    Wyświetla statystyki protokołu NAT oraz PAT.

    Komendy Clear

    # clear ip nat statistics

    Czyści wszystkie zapisane statystyki protokołu NAT oraz PAT.

    # clear ip nat translations*

    Czyści wszystkie zapisane statystyki translacji protokołu NAT oraz PAT.
    Przypadku usuwania konfiguracji protokołu PAT, wpierw należy użyć komendę [clear ip nat translations *].

    Komendy Debug

    # debug ip nat

    Rozpoczyna debugowanie zdarzeń protokołu NAT oraz PAT.

    # debug ip icmp

    Rozpoczyna debugowanie zdarzeń protokołu ICMP, dzięki czemu możemy zobaczyć z jakiego adresu IP nadchodzą wysyłane wiadomości ICMP, a tym samym potwierdzić czy translacja NAT doszła do skutku.

    Pozostałe tematy związane z protokołem NAT

    NATv6

  • (K) Konfiguracja list ACL*

    (K) Konfiguracja list ACL*

    Konfiguracja list ACL

    Konfiguracja Listy Standard ACL

    (config)# access-list ID {permit / deny} {any / host adres-IP / adres-IP dzika-maska} [log / log-inut]

    Tworzy nową listę standard ACL.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group ID {in / out}

    Przypisuje listę standard ACL do konfigurowanego interfejsu sieciowego.

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.
    W przypadku tworzenia podstawowej listy ACL, dotyczącej jednego adresu IP, słowo kluczowe „host” nie jest potrzebne.

    Konfiguracja Listy Extended ACL

    (config)# access-list ID {permit / deny} protokół(IP, UDP, TCP, ICMP, GRE, ESP, AHP czy OSPF) {any / host źródłowy-adres-IP / źródłowy-adres-IP dzika-maska} źródłowy-port {any / host docelowy-adres-IP / docelowy-adres-IP dzika-maska} docelowy-port [log / log-input]

    Tworzy nową listę extended ACL. Poniższe wartości odnoszą się do zakresu portów protokołu UDP bądź TCP.
    * eq =równy.
    * ne nie równy.
    * it < mniejszy od.
    * gt > większy od.
    * range range:x to yzakres od x do y.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group ID {in / out}

    Przypisuje listę extended ACL do konfigurowanego interfejsu sieciowego.

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.
    Numer portu Protokół Aplikacja Klucz w ACL
    20 TCP FTP data ftp-data
    21 TCP FTP control ftp
    22 TCP SSH
    23 TCP Telnet telnet
    25 TCP SMTP smtp
    53 UDP, TCP DNS domain
    67 UDP DHCP Server bootps
    68 UDP DHCP Client bootpc
    69 UDP TFTP tftp
    80 TCP HTTP www
    110 TCP POP3 pop3
    161 UDP SNMP snmp
    443 TCP SSL
    514 UDP Syslog
    16384 – 32767 UDP RTP (Voice, Video)

    Numery oraz nazwy portów TCP / UDP

    Lista nazwana (Named ACL)

    (config)# ip access-list {standard / extended} nazwa-ACL

    Tworzy nową listę named ACL.

    (config-ext-nacl)# {permit / deny} protokół(IP, UDP, TCP, ICMP, GRE, ESP, AHP czy OSPF) {any / host źródłowy-adres-IP / źródłowy-adres-IP dzika-maska} źródłowy-port {any / host docelowy-adres-IP / docelowy-adres-IP dzika-maska} docelowy-port [log / log-input]

    Dodaje nowy wpis do konfigurowanej listy named ACL, z numerem sekwencyjnym większym o 10. Poniższe wartości odnoszą się do zakresu portów protokołu UDP bądź TCP:
    * eq =równy.
    * ne nie równy.
    * it < mniejszy od.
    * gt > większy od.
    * range range:x to yzakres od x do y.

    (config-ext-nacl)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group nazwa-ACL {in / out}

    Przypisuje listę extended ACL do konfigurowanego interfejsu sieciowego.

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.

    Ograniczanie logów względem list ACL

    (config)# ip access-list logging interval 0-2147483647(milisekundy)

    Ogranicza liczbę zbieranych logów, do jednego na określoną w komendzie liczbę milisekund.

    Komendy SHOW

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.

    Pozostałe tematy związane z listami ACL

  • (Ts) Troubleshooting list ACL**

    (Ts) Troubleshooting list ACL**

    Troubleshooting list ACL

    Zasady postępowania

    1. Należy określić do jakich interfejsów została przypisana lista ACL oraz w jakim kierunku jest skierowana [show running-config / show ip interfaces].
    2. Przeanalizować konfigurację listy ACL [show access-list / show ip access-list / show running-config] pod kontem:
      1. Złej kolejności wpisów (najpierw najbardziej szczegółowe wpisy).
      2. Kierunku działania listy ACL (Jaka sieć i gdzie się znajduję).
      3. Kierunku działania portów (np. docelowym portem w ruchu od klienta do serwera jest port 80, natomiast w drodze powrotnej może to być port 40567).
      4. Ostatniego wpisu blokującego pozostały ruch sieciowy.
    Protokół ICMP nie należy ani do TCP ani UDP lecz może znajdować w się w zapisie IP lub dedykowanym ICMP.

    Pozostałe tematy związane z listami ACL

  • (T) Teoria list ACL**

    (T) Teoria list ACL**

    Teoria list ACL

    ACL (Access Control list)

    • W systemie Cisco IOS dostępne są następujące rodzaje list ACL:
      • Standard ACL – Definiowana numerami od 1 do 99 oraz od 1300 do 1999, stanowi podstawową wersję listy ACL, wykorzystywaną w systemie Cisco IOS. W swojej strukturze wykorzystuje jedynie źródłowy adres IP, przez co powinna być stosowana blisko puli adresów docelowych. Lista ta może być wykorzystana do sprecyzowania adresów korzystających z translacji NAT, PAT czy dostępu do zdalnej konfiguracji urządzenia np. za pomocą protokołu SSH.
      • Extended ACL – Definiowana numerami od 100 do 199 oraz od 2000 do 2699, stanowi rozszerzoną wersję listy ACL, wykorzystywaną w systemie Cisco IOS. W swojej strukturze wykorzystuje zarówno źródłowy jak i docelowy adres IP oraz źródłowy jak i docelowy port, bądź też zakres wielu portów warstwy czwartej. Lista ta powinna być wykorzystana blisko źródłowej puli adresów IP, dzięki czemu nadaje się do szczegółowej kontroli nad przesyłanym ruchem sieciowym czy do określania jaki ruch sieciowy powinien być zabezpieczony połączeniem IPSec.
      • Established ACL – Wykorzystuje proces ustanawiania sesji TCP, pomiędzy urządzeniami sieciowymi, badając gdzie znajduje się inicjator komunikacji. Tym samym sesja nawiązana przez urządzenie ze strefy wewnętrznej (LAN) zostanie przepuszczana, natomiast komunikacja zainicjowana ze strefy zewnętrznej (WAN) zostanie zablokowana.
      • Reflexive ACL – Umożliwia filtrowanie pakietów IP w oparciu o informacje zawarte w pamięci sesji, warstwy czwartej. Listy refleksyjne mogą być stosowane w celu przepuszczania bądź blokowania nadchodzącego ruch sieciowego, istniejącej sesji TCP bądź UDP, zgodnie ze strefą z której pochodzi dana sesja. W przypadku sesji zainicjowanej z sieci wewnętrznej (LAN) ruch zostanie przepuszczony, natomiast sesja zainicjowana z sieci zewnętrznej (WAN) zostanie porzucona.
      • Time-based ACL – Zawiera wpisy filtrujące ruchu sieciowy w określonym przedziale czasu.
      • Infrastructure ACL – Znajduje zastosowanie na ruterze brzegowym gdzie filtruje zbędny ruch sieciowy zezwalając na wymianę np. tras routingu pomiędzy ruterem a dostawcą ISP czy zdalnym zarządzaniem a blokując podejrzany ruch sieciowy, często wykorzystywany w atakach na sieci firmowe.
      • Dynamic ACL:
        • Lock-and-Key ACL – Rodzaj dynamicznej listy dostępu, wymagającej przeprowadzenia procesu uwierzytelniania użytkownika końcowego. Po odebraniu pierwszych danych nadchodzących z nowego adresu IP, lista Lock-and-Key ACL spróbuje uwierzytelnić użytkownika końcowego wysyłającego wskazany ruch sieciowy, za pomocą połączenia Telnet bądź SSH. Po przyznaniu dostępu, źródłowy adres IP nadchodzącej transmisji zostaje dopisany do listy ACL, a nadchodzący ruch sieciowy zostaje przepuszczony.

    Podstawowe listy ACL (Standard)

    • Rodzaje list Standard ACL:
      • Numeryczne – Od 1 do 99 oraz od 1300 do 1999.
      • Nazwane – Wykorzystują ciąg znaków (Nazwy).
    • Filtracja ruchu na podstawie:
      • Źródłowego adresu IP.

    Rozszerzone listy ACL (Extended)

    • Rodzaje list Extended ACL:
      • Numeryczne – Od 100 do 199 oraz od 2000 do 2699.
      • Nazwane – Wykorzystują ciąg znaków (Nazwy).
    • Filtracja ruchu na podstawie:
      • Źródłowego oraz docelowego adresu IP.
      • Źródłowego oraz docelowego numeru portu.
      • Rodzaju ruchu np. IP, UDP, TCP.
      • Oraz innych.

    Wspólne właściwości list ACL

    • Domyślnie każda lista ACL jest zakończona niewidoczną komendą blokującą cały ruch sieciowy [access-list 1 deny any] (Implicit deny). Jej przeciwieństwo stanowi komenda przepuszczająca cały ruch sieciowy [access-list 1 permit any].
    • Proces przeszukiwania listy ACL zaczyna się od góry i następuje do momentu znalezienia pierwszego pasującego wpisu. Dlatego zaleca się wstawianie bardziej szczegółowych wpisów nad wpisami mniej szczegółowymi. Np. adres 192.168.50.1/32 powinien znaleźć się nad wpisem 192.168.50.0/24.

    Dobre praktyki w tworzeniu list ACL

    • Lista ACL posiada licznik, wskazujący ile z przesłanych przez urządzenie pakietów, zostało dopasowanych do pojedynczego wpisu listy. Zasada ta nie dotyczy ostatniego domyślnego wpisu (Implicit deny), który domyślnie nie posada licznika, aby to zmienić należy ręcznie dopisać ostatnią komendę blokującą pozostały ruch sieciowy wraz z pod-komendą odblokowującą licznik [access-list 1 deny any log].
    • W przypadku usunięcia listy ACL z poziomu globalnej konfiguracji, bez jednoczesnego ucięcia wpisu ACL z poziomu interfejsu sieciowego. Nadchodzący bądź wychodzący ruch sieciowy nie bezie filtrowany.
    • W przypadku wprowadzania zmian w konfiguracji listy ACL, zaleca się jej tymczasowe odpięcie od interfejs sieciowego na czas przeprowadzanych zmian, w celu uniknięcia pomyłek mogących zablokować część bądź cały ruch sieciowy.

    Różnice pomiędzy listami ACL

    • Podstawowe listy ACL mogą zawierać pojedynczy źródłowy adres IP bez maski czy komendy host [access-list 1 deny 192.168.1.1].
    • Rozszerzone listy ACL nie mogą zawierać pojedynczego adres IP bez maski czy komendy host [access-list 101 deny ip host 192.168.1.1 any].
    • Podstawowe listy ACL powinny znajdować się jak najbliżej celu pakietu, dzięki czemu ryzyko przypadkowego zablokowania pożądanego ruchu sieciowego zostanie zmniejszone.
    • Rozszerzone listy ACL powinny znajdować się jak najbliżej źródła, aby uniknąć rozprzestrzeniania nadmiarowego ruchu sieciowego który i tak zostanie odrzucony.

    Pozostałe tematy związane z listami ACL

  • (TK) Teoria protokołu NPTv6**

    (TK) Teoria protokołu NPTv6**

    Konfiguracja protokołu NPTv6 została opisana w artykule: Konfiguracja translacji NAT względem protokołu IPv6.

    NPTv6 (Network Prefix Translation)

    • Protokół NPTv6 umożliwia statyczną translacją prefix-ów IPv6 na inne prefix-y IPv6, zgodnie z zasadą jeden do jednego (1:1) (Stateless address translation), nie umożliwiając przy tym translacji Stateful.
    • Protokół NPTv6 jest wykorzystywany w sieci, ponieważ:
      • Uniezależnia wewnętrzną adresację sieci od dostawcy ISP, tym samym zmiana globalnego prefix-u nie wymaga zmiany wewnętrznej adresacji IPv6.
      • Umożliwia translację adresów ULA (Unique Local Address) na GUA (Global Unicast Address).
    • Protokół NPTv6:
      • Nie wymaga mapowania przy translacji prefix-ów IPv6.
      • Nie umożliwia translacji adresów IPv6, a jedynie translację prefix-ów IPv6.
      • Generuje tą samą wartość sumy kontrolnej jaką generuje algorytm (Internet Checksum Algorithm).
    • Protokół NPTv6 nie umożliwia translacji adresu GUA, na inne adresy GUA.

    Konfiguracja protokołu NPTv6

    Konfiguracja NPTv6 względem interfejsu LAN

    (config)# ipv6 unicast-routing

    Aktywuje funkcję routingu dla protokołu IPv6.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego (LAN).

    (config-if)# ipv6 address prefix/prefix-length

    Przypisuje adres IPv6, do konfigurowanego interfejsu sieciowego.

    (config-if)# nat66 inside

    Określa konfigurowany interfejs jako interfejs wewnętrzny w procesie translacji NPTv6.

    Konfiguracja NPTv6 względem interfejsu WAN

    (config-if)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego (WAN).

    (config-if)# ipv6 address prefix/prefix-length

    Przypisuje adres IPv6, do konfigurowanego interfejsu sieciowego.

    (config-if)# nat66 outside

    Określa konfigurowany interfejs jako interfejs zewnętrzny w procesie translacji NPTv6.

    Globalna konfiguracja protokołu NPTv6

    (config)# nat66 prefix inside prefix/prefix-length(Prefix wewnętrzny)(Np. 2001:DB8:0:12::/64) outside prefix/prefix-length(Prefix zewnętrzny)(Np. 2001:DB8:0:2::/64)

    Określa jakie prefix-y IPv6 będą tłumaczone przez protokół NPTv6.

    # show nat66 prefix

    Wyświetla konfigurację protokołu NPTv6.

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Teoria protokołu NAT-PT**

    (T) Teoria protokołu NAT-PT**

    Protokół NAT-PT opisuje dokument referencyjny RFC 2766 oraz RFC 2765.

    Konfiguracja protokołu NPTv6 została opisana w artykule: Konfiguracja translacji NAT względem protokołu IPv6.

    Wstęp do protokołu NAT-PT

    • Protokół NAT-PT umożliwia statyczną (Static), dynamiczną (Dynamic) bądź przepełnioną (Overload) translacją adresów IPv6 na adresy IPv4 jak i odwrót. Na podstawie portów warstwy czwartej.
    • Translacja statyczna (Static):
      • Umożliwia mapowanie pojedynczego adresu IPv6 do jednego adresu IPv4 jak i na odwrót.
    • Translacja dynamiczna (Dynamic):
      • Umożliwia mapowanie wielu adresów IPv6 na wiele adresów IPv4 należących do skonfigurowanej przez administratora puli adresów.
    • Translacja przepełniona (Overload):
      • Umożliwia mapowanie wielu adresów IPv6 na jeden adres IPv4 z przepełnieniem.

    Ograniczenia protokołu NAT-PT

    • Nie wspiera funkcji Cisco Express Forwarding.
    • Wspiera jedynie protokół: DNS, FTP, ICMP oraz ALGs.
    • Nie zapewnia bezpieczeństwa (end-to-end security).

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Teoria protokołu NAT64**

    (T) Teoria protokołu NAT64**

    Konfiguracja protokołu NPTv6 została opisana w artykule: Konfiguracja translacji NAT względem protokołu IPv6.

    NAT64 (IPv4 <-> IPv6)

    Wprowadzenie do protokołu NAT64

    • NAT-PT opisuje referencja RFC 6144, 2766 oraz 4966.
    • NAT64 opisuje referencja RFC 6146, 6145 oraz 6052.
    • Protokół NAT64 umożliwia translację adresów IPv4 na adresy IPv6, jak i na odwrót.
    • Protokół NAT64 stanowi ulepszoną wersję protokołu NAT-PT.

    Komponenty protokołu NAT64

    • NAT64 prefix – Prefix-y IPv6 wykorzystywane w protokole NAT64: /32, /40, /48, /56, /64, /96.
    • DNS64 server – Serwer DNS odwzorowujący nazwy domenowe AAAA na adresy IPv6. Oprócz rekordów AAAA serwery DNS64 obsługują również rekordy A, dzięki czemu mogą również odwzorować adresy IPv4.
    • NAT64 router – Ruter na którym zachodzi proces translacji adresów IPv6 na adresy IPv4, jak i na odwrót.

    DNS (Domain Name System)

    • A Record – Odwzorowuje nazwę domenową na adres IPv4.
    • AAAA Record – Odwzorowuje nazwę domenową na adres IPv6.
    • Adres serwera DNS względem protokołu IPv6 można skonfigurować za pomocą komendy [ip name-server adresy-IPv6].
    • Statyczne odwzorowanie adresów IPv6 na nazwę domenową w systemie Cisco IOS, można skonfigurować za pomocą komendy [ipv6 host nazwa-domeny [port] adresy-IPv6].

    Proces działania protokołu NAT64 (IPv6 host to IPv4 server)

    Skrócony proces protokołu NAT64

    • Proces translacji IPv6 -> IPv4:
      1. Nadchodzący pakiet IPv6 zostaje przekierowany do wirtualnego interfejsu NVI (NAT Vitrual Interface).
      2. Protokół NAT64 przeprowadza translację docelowego adresu IPv6, wydobywając z niego docelowy adres IPv4.
      3. Protokół NAT64 dodaje do tablicy (Bind Databese) wpis o przeprowadzonej translacji.
    • Proces translacji IPv4 -> IPv6:
      1. Nadchodzący pakiet IPv4 zostaje przekierowany do wirtualnego interfejsu NVI (NAT Vitrual Interface).
      2. Docelowy adres IPv4 zostaje statycznie bądź dynamicznie mapowany na adres IPv6.
      3. Protokół NAT64 dodaje do tablicy (Bind Databese) wpis o przeprowadzonej translacji.

    Pełny proces protokołu NAT64

    Szczegółowy proces działania protokołu NAT64 (IPv6 host to IPv4 server)
    1. Host wysyła zapytanie Query (AAAA www.cisco.com) do serwera DNS64.
    2. Serwer DNS64 otrzymuje zapytanie Query od hosta. Jako że nie zna odwzorowania podanej nazwy domenowej na adres IPv6, wysyła zapytanie Query do zaufanego serwera DNS AAAA.
    3. Serwer DNS AAAA otrzymuje zapytanie Query od Serwer DNS64. Jako że nie zna odwzorowania podanej nazwy domenowej na adres IPv6, wysyła odpowiedź Response (Name Error: www.cisco.com), do serwera DNS64.
    4. Serwer DNS64 otrzymuje odpowiedź Response od serwera DNS AAAA. Następnie wysyła zapytania Query (A www.cisco.com) do serwera DNS A.
    5. Serwer DNS A otrzymuje zapytanie Query od serwera DNS64. Jako że posiada odwzorowanie podanej nazwy domenowej na adres IPv4, wysyła odpowiedź Response (www.cisco.com(A) = 10.10.10.10), do serwera DNS64.
    6. Serwer DNS64 otrzymuje odpowiedź Response od serwera DNS A. Jako że podany adres IP nie jest adresem protokołu IPv6, serwer DNS64 przekształca otrzymany adres IPv4 w specjalny adres IPv6 wykorzystywany przez protokół NAT64. Adres ten składa się z przekształconego adresu IPv4 (10.10.10.10 -> 0A0A:0A0A) oraz adresu IPv6 (2001:DB8:CAFE:AAAA::/96) co razem daje nowy, docelowy adres IPv6 w następującej postaci (2001:DB8:CAFE:AAAA::0A0A:0A0A/96).
    7. Serwer DNS64 wysyła odpowiedź Response (www.cisco.com(AAAAA) = 2001:DB8:CAFE:AAAA::0A0A:0A0A) do hosta.
    8. Host wysyła pakiet na docelowy adres IPv6 przekazany w odpowiedzi Response od serwera DNS64.
    9. Ruter NAT64 otrzymuje pakiet IPv6 od hosta, na interfejsie (NAT64 enable). Rozpoczynając tym samym proces Statefull NAT Translation (Prefix 2001:DB8:CAFE:AAAA::/96). Jako że pierwsze 96 bitów adresów IPv6 się nie zgadza, ruter NAT:
      1. Przekształca nagłówek pakietu IPv6 na nagłówek IPv4.
      2. Przekształca adres IPv6 na adres IPv4, usuwając z docelowego adresu IPv6 prefix 2001:DB8:CAFE:AAAA::/96) jak i zmieniając ostatnie bity adresu IPv6 z trybu szesnastkowego na dziesiętny (0A0A:0A0A -> 10.10.10.10).
      3. W zależności od konfiguracji protokołu NAT64, ruter przekształca źródłowy adres IPv6 na adres IPv4. Na zasadzie jeden do jednego (1:1) bądź poprzez przepełnienie (Overloading). Metoda ta jest podobna do protokołu PAT.
      4. Następnie następuje proces translacji adresów IP, a wyniki są zapisywane w tablicy NAT Translations.
    10. Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.
    11. Docelowy serwer IPv4 odpowiada na otrzymany pakiet IPv4.
    12. Ruter NAT64 otrzymuje pakiet IPv4 od serwera docelowego na interfejsie (NAT64 enable), sprawdzając czy w tablicy NAT Translations istnieje wpis odpowiadający informacją zawartym w otrzymanym pakiecie.
      1. Jeżeli ruter NAT64 nie posiada pasującego wpisu w tablicy NAT Translations, pakiet zostaje porzucony.
      2. Jeżeli ruter NAT64 posiada pasujący wpis w tablicy NAT Translations, następuje translacja z adresu IPv4 na IPv6.
    13. Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.

    Proces działania protokołu NAT64 (IPv4 host to IPv6 server)

    Szczegółowy proces działania protokołu NAT64 (IPv4 host to IPv6 server)
    1. Na ruterze NAT64 zostaje skonfigurowany protokół NAT64, ze statycznym mapowaniem adresu IPv6 na adres IPv4, za pomocą komendy [nat64 v6v4 static 2001:db8:feed:1::e 172.16.1.10], wydanej w trybie konfiguracji globalnej.
    2. Host wysyła zapytanie Query (A www.cisco.com) do serwera DNS.
    3. Serwer DNS otrzymuje zapytanie Query od hosta. Jako że posiada odwzorowanie podanej nazwy domenowej na adres IPv4, wysyła odpowiedź Response (www.cisco.com(A) = 172.16.1.10), do hosta.
    4. Host wysyła pakiet na docelowy adres IPv4 przekazany w odpowiedzi Response od serwera DNS.
    5. Ruter NAT64 otrzymuje pakiet IPv4 od hosta, na interfejsie (NAT64 enable). Rozpoczynając tym samym proces translacji:
      1. Ruter NAT64 przekształca nagłówek pakietu IPv4 na nagłówek IPv6, zmieniając docelowy adres IPv4 na adres IPv6.
      2. Ruter NAT64 przekształca źródłowy adres IPv4, na nowo stworzony adres IPv6 (192.0.2.10 -> C000:020A), co razem daje nowy docelowy adres IPv6, w następującej postaci (2001:DB8:CAFE:AAAA:: C000:020A).
    6. Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.
    7. Docelowy serwer IPv6 odpowiada na otrzymany pakiet IPv6.
    8. Ruter NAT64 otrzymuje pakiet IPv6 od serwera docelowego na interfejsie (NAT64 enable), rozpoczynając tym samym proces translacji NAT. Ruter NAT64:
      1. Przekształca nagłówek pakietu IPv6 na nagłówek IPv4, zmieniając źródłowy adres IPv6 na adres IPv4.
      2. Przekształca docelowy adres IPv6, na adres IPv4. Na podstawie oryginalnego docelowego adresu IPv6.
    9. Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.

    Porównanie Stateless NAT64 do Stateful NAT64

    Stateless NAT64 Stateful NAT64
    1:1 translation 1:N translation
    No conservation of IPv4 address Conserves IPv4 address
    Assures end-to-end address transparency and scalability Uses address Overloading, hence lacks in end-to-end address transparency
    No state or bindings created on the translations State or bindings are created every unique translation
    Requires IPv4-transable IPv6 addresses assignment No requirement on the nature of IPv6 address assignment
    Requires either manual or DHCPv6 based address assignment for IPv6 host Free to Choose any mode of IPv6 address assignment (Manual, DHCPv6, SLAAC).

    Porównanie metody Stateless NAT64 do metody Stateful NAT64

    Porównanie protokołów NAT

    NAT64 vs NPTv6

    • NAT64 – Modyfikuje sesje podczas transmisji.
    • NAT64 – Wykorzystuje określony adres IPv6 (Network-specyfic Prefix).
    • NPTv6 – Mapuje jeden adres IPv6 do drugiego adresu IPv6.
    • NPTv6 – Modyfikuje nagłówek pakietu podczas transmisji.

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6