Kategoria: Pozostałe protokoły warstwy III

  • (T) Teoria funkcji VRF*

    (T) Teoria funkcji VRF*

    Wstęp do zagadnienia

    • Funkcja VRF umożliwia stworzenie wirtualnego rutera posiadającego oddzielną wirtualną tablice routingu.

    Rodzaje wirtualizacji VRF

    • VRF (Virtual Routing and Forwarding) –
    • VRF Lite (Virtual Routing and Forwarding Lite) –
    VRF Lite nie wspiera między innymi protokołu MPLS.
    • EVN (Easy Virtual Network) –

    Zagadnienia związane z wirtualizacją VRF

    • RD (Route-Distinguisher) –
    • RT (Route-Target) –

    EVN – Easy Virtual Network

    Funkcja EVN nie stanowi nowego odrębnego rozwiązania, a jedynie uproszczenie konfiguracji funkcji VRF-Lite. Co zostało osiągnięte za pomocą komend EVN kryjących pod sobą, szereg makr (komand VRF-Lite).
    • Funkcja EVN stanowi wzbogaconą jak i uproszczoną pod względem konfiguracji funkcję VRF, w której konfiguracja połączeń trunk-owych (802.1Q) nie wymaga konfigurowania sub-interfejsów a jedynie użycia komendy [vnet trunk] względem pojedynczego interfejsu sieciowego. Tym samym interfejs (Agregujący wiele instancji EVN) w przeciwieństwie do funkcji VRF-Lite, wymaga z skonfigurowania jedynie jednego adresu IP.
    • Funkcja EVN wspiera następujące protokoły routingu dynamicznego:
      • EIGRP, OSPFv2 oraz BGP.
    • Funkcja EVN nie wspiera następujących protokołów routingu dynamicznego:
      • IS-IS, RIP oraz OSPFv3.
    • Funkcja EVN nie wspiera na połączeniach trunk-owych:
      • List dostępu ACL.
      • Komend protokołu BGP.
      • Protokołu NetFlow.
      • Translacji NAT.
      • Funkcji VRF-Lite.
    • Funkcja EVN wspiera na połączeniach trunk-owych:
      • Standart 802.1Q.
      • Protokół IPv6.
      • Funkcję EtherChannel.

    Pozostałe tematy związane z funkcją VRF, EVN

  • (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

  • (K) Konfiguracja protokołu DHCP**

    (K) Konfiguracja protokołu DHCP**

    Konfiguracja protokołu DHCP

    Konfiguracja serwera DHCP

    (config)# service dhcp

    Aktywuje funkcję serwera DHCP na konfigurowanym urządzeniu.

    (config)# ip dhcp excluded-address adres-IP(Początkowy adres IP) adres-IP(końcowy adres IP)

    Wyłącza zdefiniowane w komendzie adresy IP, z puli przydzielanych przez serwer DHCP adresów.

    (dhcp-config)# ip dhcp pool nazwa-puli

    Tworzy nową pule protokołu DHCP.

    (dhcp-config)# network sieć maska

    Określa pulę adresów jakie będą dzierżawione przez serwer.

    (dhcp-config)# default-router adres-IP(Adres IP bramy domyślnej)

    Rozpoczyna propagację adres IP, bramy domyślnej.

    (dhcp-config)# dns-server adres-IP(Adres IP serwera DNS)

    Rozpoczyna propagację adresów IP, serwera/serwerów DNS.

    (dhcp-config)# domain-name nazwa-domeny(nazwa-domeny.domena)

    Określa nazwę domenową konfigurowanego serwera DHCP.

    (dhcp-config)# lease {0-365(Dni) 0-23(Godziny) 0-59(Minuty) / infinite}

    Określa okres dzierżawy adresów IP.

    (dhcp-config)# option numer

    Pozwala wybrać dodatkową opcje konfiguracyjną za pośrednictwem liczby.
    * TFTP Cisco IP phonesoption 66.
    * AP Lightweightoption 43.
    * Client-name option 12.
    * Default-routeroption 3.
    * Domain-name option 15.
    * Dns-serveroption 6.
    * Lease option 58.
    * Host option 1.
    * SMTP option 69
    * TFTP option 150.
    * POP3 option 70.

    Przykładowa konfiguracja opcji protokołu DHCP

    (config)# ip dhcp pool nazwa-puli

    Tworzy nową pule protokołu DHCP.

    (dhcp-config)# option 15 ascii nazwa-domeny.com

    Określa nazwę domenową serwera DHCP.

    (dhcp-config)# option 66 ip adresy-IP

    Rozpoczyna propagację adresów IP, serwera TFTP.

    (dhcp-config)# option 42 ip adresy-IP

    Rozpoczyna propagację adresów IP, serwera NTP.

    (dhcp-config)# bootfile nazwa

    Określa nazwę domyślnego obrazu bootowalnego, dla urządzenia końcowego.

    Ruter jako klient DHCP

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip address dhcp

    Włącza funkcję klienta DHCP na konfigurowanym interfejsie. (informacje o przyznanym adresie IP można uzyskać za pomocą następujących komend [show ip interface brief] oraz [show ip interface]).

    (config-if)# no ip dhcp client request {[router(Opcja 3) / domain-name(Opcja 15) / dns-server(Opcja 6) / static-route(Opcja 33) / classless-static-route(Opcja 121) / vendor-specific(Opcja 43)]}

    Blokuje proces uczenia się określonych w komendzie danych, za pomocą protokołu DHCP.
    * router – Blokuje proces uczenia się trasy domyślnej za pomocą protokołu DHCP.
    * domain-name – Blokuje proces uczenia się nazwy domeny za pomocą protokołu DHCP.
    * dns-server – Blokuje proces uczenia się adresu serwera DNS za pomocą protokołu DHCP.
    * static-route – Blokuje proces uczenia się tras statycznych za pomocą protokołu DHCP.
    * classless-static-route – Blokuje proces uczenia się bezklasowych tras statycznych za pomocą protokołu DHCP.

    Zaawansowana konfiguracja wiadomości protokołu DHCP

    Przed przydzieleniem nowego adresu IP do hosta, serwer DHCP sprawdza jego dostępność za pomocą protokołu ICMP (ping). Jeśli nie otrzyma odpowiedzi po wysłaniu dwóch wiadomości ICMP, uzna dany adres za wolny i przydzieli go hosta.

    (config)# ip dhcp ping packets 0-10(Ilość pakietów ICMP)

    Określa ilość wysłanych pakietów ICMP.

    (config)# ip dhcp ping timeout 100-10000(Milisekundy)

    Ustala czas oczekiwania na odpowiedź ping w milisekundach.

    Komendy Show, Clear i Debug

    Komendy Show

    Komendy SHOW dotyczące protokołu DHCP

    # show ip dhcp binding

    Wyświetla listę wydzierżawionych adresów IP, wraz z przypisanymi do nich adresami MAC jak iczasem dzierżawy.

    # show ip dhcp conflict

    Wyświetla listę adresów powodujących konflikty w adresacji sieci.

    # show ip dhcp database

    Wyświetla informacje o bazach danych protokołu DHCP, podłączonych do urządzenia lokalnego.

    # show ip dhcp import

    Wyświetla informacje protokołu DHCP, zaimportowane z innych urządzeń (Serwerów).

    # show ip dhcp pool

    Wyświetla informacje o ustawieniach wszystkich puli protokołu DHCP.

    # show ip dhcp pool nazwa-puli

    Wyświetla informacje o ustawieniach konkretnej puli protokołu DHCP.

    # show ip dhcp server statistics

    Wyświetla statystyki serwera na temat wysłanych jak i odebranych wiadomości protokołu DHCP.

    # show ip dhcp relay information trusted-sources

    Wyświetla informacje o zaufanych interfejsach agenta DHCP.

    # show host

    Wyświetla informacje pozyskane za pomocą serwera DHCP (Nazwę domeny czy adres IP serwera DNS).

    # show ip interface interfejs

    Wyświetla informację o danym interfejsie sieciowym, wraz z ustawieniami funkcji „IP helper-address”.

    Komendy SHOW dotyczące protokołu DHCP w systemie Windows

    C:\> arp -a

    Wyświetla zawartość tablicy odwzorowania adresów MAC na adresy IP.

    C:\> netstat -rn

    Wyświetla zawartość lokalnej tablicy routingu.

    C:\> ipconfig

    Wyświetla adresację IP konfigurowanego urządzenia.

    Komendy Clear

    # clear ip dhcp binding [adres-IP]

    Czyści dane o wydzierżawionych adresach / adresie IP.

    # clear ip dhcp conflict

    Czyści dane o występujących w sieci konfliktach, w adresacji IP.

    # clear ip dhcp pool nazwa-puli

    Czyści dane puli adresów IP.

    # clear ip dhcp server statistics

    Czyści dane statystyczne serwera DHCP.

    Komendy Debug

    # debug ip dhcp server events

    Włącza debugowanie zwykłych czynności serwera DHCP.

    # debug ip dhcp server packet

    Włącza debugowanie procesu przypisywania adresów IP do adresów MAC.

    Pozostałe tematy związane protokołem DHCP

    DHCPv6

  • (K) Konfiguracja zabezpieczeń protokołu DHCP**

    (K) Konfiguracja zabezpieczeń protokołu DHCP**

    Konfiguracja zabezpieczeń protokołu DHCP

    Określenie interfejsów zaufanych i nie zaufanych

    Aby ochronić przełącznik przed fałszywymi serwerami DHCP czy urządzeniami końcowymi wysyłającymi setki zapytać „Discover”. Należy określić porty zaufane na których znajdują się legalne serwery jak i ograniczyć ilość zapytań protokołu DHCP, jakie mogą być wysyłane z portów nie zaufanych.

    Konfiguracja funkcji DHCP snooping

    (config)# [no] ip dhcp snooping

    Wyłącza / Włącza globalną funkcjonalność DHCP Snooping na przełączniku.

    (config)# ip dhcp snooping vlan vlan-ID

    Włącza funkcjonalność DHCP Snooping dla konkretnej sieci VLAN (Funkcja domyślnie uznaje każdy interfejs przypisany do danej sieci VLAN, za niezaufany).

    (config)# [no] ip dhcp snooping information option allow-untrasted

    Wyłącza / Włącza funkcję dopisywania opcji DHCP-82 w każdym wysłanym przez urządzenia końcowe zapytaniu „DHCP Discovery”. Dodawanie opcji 82 ma miejsce jedynie na interfejsach niezaufanych, zawarte w niej są dodatkowe dane na temat urządzenia końcowego oraz adres MAC przełącznika.

    (config)# ip dhcp snooping database url

    Określa miejsce przetrzymywania bazy funkcji DHCP snooping.

    (config)# ip dhcp snooping verify mac-address

    Włącza opcjonalną weryfikację adresu MAC, sprawdzając czy źródłowy adres MAC urządzenia końcowego, odpowiada adresowi podanemu w otrzymanym zapytaniu DHCP.

    Określenie interfejsów zaufanych

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip dhcp snooping trust

    Informuje przełącznik, że na tym porcie może znajdować się serwer.

    Określenie interfejsów nie zaufanych

    (config-if)# interface interfejsy

    Wchodzi na interfejs, za którym nie powinien znajdować się serwer DHCP (Domyślnie są to wszystkie interfejsy pracujące w trybie „access”).

    (config-if)# ip dhcp snooping limit rate 1-2048

    Ogranicza ilość pakietów DHCP wysyłanych na sekundę. Po przekroczeniu tej liczby port jest blokowany (Przechodzi w stan „Error-Disable State”). W celu ponownego uruchomienia portu należy go wyłączyć a następnie ponownie włączyć komendami [shutdown] a następnie [no shutdown] lub z korzystać z opcji opisanej w rozdziale „Przywracanie portów do pełnej funkcjonalności po wykryciu próby ataku”.

    Tworzenie lokalnej bazy DHCP Binding

    Konfiguracja bazy DHCP Binding

    (config)# ip source binding adres-MAC vlan vlan-ID adres-IP interface interfejs

    Statycznie przypisuje adres MAC do adresu IP, a następnie kojarząc obydwa adresy z określonym interfejsem sieciowym.
    Dynamiczne przypisywanie adresów IP do adresów MAC jest możliwe jedynie za pomocą funkcji DHCP Snooping.

    Konfiguracja funkcji IP guard

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip verify source [port-security]

    Rozpoczyna weryfikację źródłowych adresów IP nadchodzących z danego interfejsu. Dodatkowa pod-komanda „port-security” rozszerza zakres weryfikacje o adresy MAC.

    Komendy SHOW

    # show ip dhcp snooping binding

    Wyświetla zaufane oraz niezaufane porty przełącznika.

    # show ip dhcp snooping track host

    Wyświetla listę urządzeń końcowych śledzonych przez funkcjonalności DHCP Snooping.

    Pozostałe tematy związane protokołem DHCP

    DHCPv6

  • (T) Teoria protokołu DHCP**

    (T) Teoria protokołu DHCP**

    Wiadomości DHCP

    Wiadomości DHCP

    • Discover (255.255.255.255 Broadcast source MAC address) – Wiadomość wysyłana przez klienta protokołu DHCP w celu zlokalizowania serwera DHCP.
    • Offer (255.255.255.255 Unicast MAC source address) – Wiadomość wysyłana przez serwer DHCP w odpowiedzi na zapytanie klienta (Discover). Zawiera propozycję adresu IP.
    • Request (Przy pierwszym pobraniu adresu IP, 255.255.255.255; w przypadku odnowy dzierżawy unicast) – Wiadomość wysyłana przez klienta protokołu DHCP w celu potwierdzenia przyjęcia propozycji adresaci (Offer).
    • Acknowledgment (Przeważnie 255.255.255.255) – Wiadomość wysyłana przez serwer DHCP, w celu potwierdzenia rejestracji adresu. Ponadto zawiera dodatkowe informacje takie jak n. adres IP serwera DNS czy nazwę domenową.

    Wiadomości DHCP – Adresacja IP

    • Adres 0.0.0.0 Jest wykorzystywany przez klienta protokołu DHCP w wiadomości „Discover”, ponieważ nie posiada on innego adresu IPv4. Adres źródłowy MAC jest adresem klienta, natomiast docelowy stanowi adres rozgłoszeni-wy.
    • Adres 255.255.255.255 (Unicast MAC address) jest wykorzystywany zarówno przez hosta (ponieważ nie zna on adresu IP serwera), jak i sam serwer dzięki czemu odpowiedź protokołu DHCP jest w stanie dotrzeć z powrotem do klienta, który nie posiada jeszcze swojego własnego adresu IP. Ponadto wiadomość „Request” jest rozgłaszana poprzez adres rozgłoszeniowy, aby inne urządzenia sieciowe, mogły uniknąć zdublowanej adresacji IP.
    Wymiana wiadomości protokołu DHCP pomiędzy klientem a serwerem DHCP

    Zagadnienia związane z protokołem DHCP

    • Metoda Dynamic Allocation – Tymczasowo przypisuje adres IP do urządzenia końcowego, wraz z ustalonym okresem dzierżawy.
    • Metoda Automatic Allocation – Przypisuje adres IP do urządzenia końcowego na nieskończony okres czasu „Infinity”.
    • Metoda Static Allocation – Przypisuje adres IP do urządzenia końcowego względem jego adresu MAC, dzięki czemu wskazane przez administratora urządzenie zawsze będzie dostawało ten sam adres IP od serwera DHCP.

    DHCP Spoofing and Starvation

    Mechanizm działania i obrony przed atakiem „DHCP Spoofing”

    • Atak DHCP Spoofing polega na podszywaniu się przez osobę atakującą, pod serwer DHCP. Dzięki czemu jest ona w stanie propagować własną adresację IP. Atak ten może stanowić część bardziej złożonego ataku „Man-in-the-middle”, w którym atakujący host rozgłasza za pomocą fałszywego serwera DHCP, swój adres IP jako adres bramy domyślnej. Tym samym komunikacja ofiary w drodze poza sieć lokalną, zaczyna przechodzić przez podstawionego hosta.
    • Aby zabezpieczyć przełącznik przed podłączeniem do niego niechcianego serwera DHCP, należy pogrupować interfejsy przełącznika na zaufane oraz nie zaufane. Wszystkie interfejsy podłączone do użytkowników końcowych powinny znajdować się w stanie nie zaufanym natomiast te znajdujące się pod kontrolą administratora sieci, takie jak połączenia trunkowe czy interfejsy do który podłączone są znane urządzenia, powinny być zaufane.
    • Interfejsy zaufane nie blokują żadnych pakietów protokołu DHCP, natomiast nie zaufane blokują pakiety domyślnie wysyłane przez serwer DHCP w komunikacji DORA, a są to zapytania  „Offer” oraz „Acknowledgment”.
    • Dodatkową metodę ochrony przed atakami DHCP Spoofing, stanowi tablica DHCP binding. Zbudowana na podstawie przechwyconych przez przełącznik wiadomości protokołu DHCP, nadchodzących z zaufanych interfejsów urządzenia. Na ich podstawie następuje przypisanie adresu IP do interfejsu jak i opcjonalne adresu MAC. Dzięki czemu wszelkie pakiety wysłane z adresem IP innym niż pozyskanym za pomocą protokołu DHCP, zostaną zablokowane.

    Mechanizm działania i obrony przed atakiem „DHCP Starvation”

    • Serwer DHCP odpowiada na każde, wysłane
      przez użytkownika zapytanie „Discover”,
      w odpowiedzi oferując adres IP przy pomocy wiadomości „Offer”. Taka zależność niesie ze sobą zagrożenie, w którym
      atakujący sieć host będzie wysyłał wiele zapytań DHCP pod różnymi adresami MAC,
      a tym samym sztucznie zapełniał dostępną pulę adresów IP.
    • Aby zapobiec takiemu scenariuszowi
      administrator może zastosować prostą metodę ograniczającą ilość wysyłanych
      przez urządzenie końcowe, zapytań DHCP „Discover”,
      w ciągu jednej sekundy.

    Pozostałe tematy związane protokołem DHCP

    DHCPv6

  • (Ts) Troubleshooting protokołu DHCP**

    (Ts) Troubleshooting protokołu DHCP**

    T-Shoot protokołu DHCP

    Błędny popełniane przy konfiguracji komendy [network]

    Jeżeli w danej implementacji protokołu DHCP jest wykorzystywana funkcja agenta relay, adres bramy domyślnej musi znajdować się w puli serwera DHCP.
    1. Pakiety rozgłoszeni-owe protokołu DHCP, po dotarciu do agenta relay, są przetwarzane na wiadomości unicast z docelowym adresem serwera DHCP oraz źródłowym adresem bramy domyślnej, z której nadeszło rozpatrywane zapytanie DHCP.
    2. Po otrzymaniu wiadomości od agenta relay, serwer DHCP porównuje adres źródłowy zapytania z posiadanymi pulami adresów DHCP. Jeżeli nie znajdzie odpowiedniego wpisu bądź właściwa pula nie będzie zawierała adresu IP bramy domyślnej zapytanie zostanie porzucone.

    Wykrywanie konfliktów w adresacji IP

    • Protokół DHCP może wykrywać konflikty (Duplikację) adresów IP za pomocą wiadomości ICMP bądź ARP.

    Brak dostępu do serwera DHCP

    • W przypadku, w którym serwer DHCP znajduje się w sieci innej niż urządzenia końcowe, wymagana jest konfiguracja funkcji DHCP relay agent na ruterze. Błędna konfiguracja tej funkcji może zablokować nadawane przez urządzenie końcowe, zapytania DHCPDISCOVER.
    • Domyślnie w ruterach Cisco serwer DHCP jest domyślnie aktywny, co za tym idzie konfiguracja funkcji DHCP relay (Helper-address) nie wymaga aktywacji serwera DHCP. Może jednak zaistnieć sytuacja, w której serwer został zablokowany, aby go aktywować należy wykorzystać komendę [service dhcp] w trybie konfiguracji globalnej.
    • Domyślnie funkcja DHCP relay agent (Helper-address), zmienia rozgłoszeni-owe wiadomości protokołu DHCP, w wiadomości unicast-owe kierowane pod wskazany w komendzie [ip helper-address] adres IP, bądź wiele adresów IP jednocześnie. Ponadto funkcja ta działa na inne protokoły, takie jak: TFTP, DNS, NetBIOS, Boot, TACACS.
    • Jeżeli urządzenie końcowe nie otrzyma odpowiedzi od serwera DHCP w określonym przedziale czasu, samo przydzieli sobie adres IP zwany APIPA (Automatic Private IP Addressing).

    Przykładowe problemy związane z protokołem DHCP

    • Ruter blokuje ruch rozgłoszeniowy (Brak skonfigurowanej funkcji DHCP relay (Helper-address)).
    • Brak wolnych adresów IP w puli serwera DHCP.
    • Błędna konfiguracja serwera DHCP.
    • Duplikacja adresów IPv4 w sieci lokalnej (Statyczna konfiguracja adresu IPv4).
    • Brak komunikacji pomiędzy zapasowymi serwerami DHCP.
    • Błędna adresacja bramy domyślnej.

    Pozostałe tematy związane protokołem DHCP

    DHCPv6

  • (KP) Rezerwacja adresów IP**

    (KP) Rezerwacja adresów IP**

    Rezerwacja adresów IP (MAC to IP)

    Konfiguracja puli nadrzędnej

    (config)# ip dhcp pool nazwa-puli

    (dhcp-config)# network sieć maska

    (dhcp-config)# default-router adres-IP

    (dhcp-config)# dns-server adresy-IP

    (dhcp-config)# domain-name nazwa-domeny.com

    Konfiguracja puli z adresem przypisanym do hosta

    (config)# ip dhcp pool nazwa-puli

    Tworzy nową podrzędną pule DHCP przydzielającą adres statyczny dla danego hosta.

    (dhcp-config)# host adres-IP-hosta maska

    Określa adres IP przydzielany hostowi wraz z maską sieci w której będzie pracował, adres ten należy do sieci puli nadrzędnej.

    (dhcp-config)# client-identifier 01adres-MAC

    Dodaje identyfikator hosta w postaci adresu MAC poprzedzonego liczbami 01, przypisując go tym samym do wskazanego powyżej adresu IP.

    (dhcp-config)# client-name nazwa-hosta

    Przypisuje nazwę dla hosta.

    (dhcp-config)# default-router adres-IP

    (dhcp-config)# dns-server adresy-IP

    (dhcp-config)# domain-name nazwa-domeny.com

    Pozostałe tematy związane protokołem DHCP

    DHCPv6

  • (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