Routing & Switching

Protokoły WAN - HDLC, Point-to-point protocol PPP

Protokoły WAN HDLC i PPP
W: Routing & Switching

Wykupując od dostawcy dedykowane łącze, otrzymujemy usługę w warstwie 1 modelu ISO/OSI. Twój dostawca, zgodnie z umową, zobowiązuje się do dostarczenia każdego wysłanego bitu.

HDLC był powszechnie stosowany w technologiach WAN (połączenie klient -> ISP) jako protokół warstwy drugiej w połączeniach punkt-punkt.

Standardowa ramka HDLC zaproponowana przez IEEE spełnia tylko kilka istotnych funkcji. Jak każdy inny protokół warstwy łącza danych, posiada nagłówek pozwalający określić początek ramki oraz pole FCS, które pozwala określić, czy ramka nie uległa uszkodzeniu podczas transmisji.

Cisco dodało dodatkowe pole "Type", określające, jaki protokół warstwy wyższej jest używany. Pozwala to na równoczesne stosowanie dwóch różnych protokołów, np. IP w wersjach 4 i 6.

Mówiąc o łączach szeregowych, trzeba pamiętać, że nie są one udostępniane z standardowymi prędkościami znanych z interfejsów Ethernetowych. Prędkości nie są ujednolicone, istnieją dwie równoległe konwencje prędkości dostępne dla Ameryki (linia T) oraz dla Europy (linia E).

Nazwa standardu prędkości Prędkość wyrażona w kilobitach na sekundę
DS0 64Kbps.
Fractional T1 Wielokrotność 64Kbps, maksymalnie do x24.
DS1 (T1) 1.544Mbps (24 DS0)
E1 (Europa) 2.048Mbps (32 DS0)
DS3 (T3) 44.736 Mbps (28 DS1)
E3 (Europa) 34 Mbps (16 E1)

Konfiguracja HDLC

Standardowe interfejsy sieciowe nie wymagają konfiguracji warstwy pierwszej - wystarczy podłączony kabel, ani warstwy drugiej. W przypadku interfejsu administracyjnie zamkniętego może być konieczne wydanie komendy no shutdown. Podobnie jak w przypadku interfejsów Ethernetowych, wystarczające powinno być nadanie odpowiedniego adresu, na przykład poprzez wpisanie komendy ip address.

Wchodzimy do konfiguracji interfejsu i wydajemy polecenia:

  • ip address adres_ip mask
  • no shutdown

Pozostałe polecenia są opcjonalne, jeśli interfejs jest aktywny w warstwach pierwszej i drugiej (up/up), ale mogą być konieczne, jeśli interfejs jest w stanie (up/down):

  • encapsulation hdlc – wymuszamy enkapsulację HDLC na interfejsie
  • clock rate wybrana_prędkość
  • bandwidth wybrana_prędkość

PPP Point to Point protocol

Protokół PPP jest podobny do HDLC - oba są protokołami warstwy łącza danych używanymi w połączeniach szeregowych. Jednak w przeciwieństwie do HDLC, który jest standardem IEEE oraz Cisco HDLC, PPP wprowadzony w 1990 roku, posiada dodatkowe usprawnienia.

PPP, czyli Protokół Punkt-Punkt, został zdefiniowany w 1990 roku i wyposażony w kilka dodatkowych funkcji w porównaniu do swojego poprzednika, HDLC.

Funkcje PPP

  • Definiuje nagłówek i stopkę.
  • Wspiera zarówno połączenia synchroniczne, jak i asynchroniczne
  • Poprzez dodanie pola "Type" w nagłówku, możliwe jest obsługiwane różnych protokołów warstwy 3 przy użyciu pojedynczego połączenia.
  • Wspiera autentykację za pomocą protokołów Password Authentication Protocol (PAP) oraz Challenge Handshake Authentication Protocol (CHAP).
  • Wspiera funkcję Multilink, która pozwala na grupowanie kilku interfejsów WAN w jeden logiczny, z zastosowaniem load-balancingu.
  • Umożliwia detekcję błędów, pozwalając na ustalenie procentowej tolerancji dla błędów przed wyłączeniem interfejsu. Obsługuje również kompresję danych.
  • Definiuje podwarstwę Network Control Protocols (NCP), w której zdefiniowane są protokoły kontrolne wspierające integrację protokołów warstwy wyższej. Na przykład, dla IPv4 w PPP zdefiniowany jest IPCP, który odpowiada za połączenie między warstwą 2 i 3.

Elementy PPP

Ramka HDLC-podobna

Definiuje zawartość ramki, która została stworzona na bazie oryginalnie zaproponowanej przez IEEE ramki HDLC.

Protokół Kontroli Łącza LCP

Subwarstwa definiują funkcje, które ułatwiają komunikację z warstwą fizyczną oraz usprawniają pracę warstwy łącza danych. Zawiera funkcje takie jak:

  • Magic number – każdy router wysyłając ramkę umieszcza w niej swój losowo wybrany numer, jeśli otrzyma ramkę z tym numerem, ramka jest traktowana jako zapętlona, a interfejs powinien zostać automatycznie wyłączony.
  • Monitorowanie jakości łącza – wyłącza interfejs po przekroczeniu progu tolerancji na błędy.
  • Multilink PPP – pozwala na równoważenie ruchu poprzez kilka interfejsów połączonych ze sobą logicznie.
  • PAP lub CHAP – wspiera autentykację.

Subwarstwa PPP definiuje kategorie protokołów, z których każdy odpowiada za komunikację z innym protokołem wartstwy sieciowej. Na przykład dla IP w wersji 4 mamy zdefiniowany IPCP, dla IP w wersji 6 IPv6CP, dla Cisco Discovery Protocol CDP mamy CDPCP.

Autentykacja PPP

Jedną z fundamentalnych kwestii dotyczących bezpieczeństwa jest zweryfikowanie, czy druga strona naszej komunikacji jest tym, za kogo się podaje, oraz czy powinna otrzymać przesyłane do niej dane. Zazwyczaj nie jesteśmy w stanie fizycznie sprawdzić, jakie urządzenie znajduje się po drugiej stronie "kabla" i czy przypadkiem nie zostało podmienione.
W protokole PPP mamy do dyspozycji dwie metody autentykacji drugiej strony komunikacji:

  • Password authentication Protocol - PAP
  • Challenge Handshake Authentication Protocol - CHAP

Oba protokoły wymieniają dane między sobą, jednak z pewnymi różnicami.
Jedną z kluczowych różnic między tymi dwoma protokołami jest kwestia, kto inicjuje proces autentykacji.
W przypadku PAP jest to router, który ma zostać uwierzytelniony, natomiast w CHAP sytuacja wygląda odwrotnie - to router autentykujący stawia wyzwanie (challenge) drugiej stronie. Kolejną różnicą jest sposób przesyłania hasła: PAP przekazuje hasło w formie niezaszyfrowanej, co oznacza, że każdy podsłuchujący może je odczytać, podczas gdy CHAP korzysta z funkcji haszującej MD5.

Autentykacja PAP

Stosowanie protokołu PAP ze względów bezpieczeństwa nie jest najlepszym rozwiązaniem w dzisiejszych czasach. Istnieją jednak pewne wyjątki od tej zasady. PAP powinien być nadal używany w przypadku starszych urządzeń, które nie obsługują protokołu CHAP. Ponadto, gdy chcemy zasymulować proces logowania i uwierzytelniania użytkownika, konieczne jest zastosowanie PAP ze względu na jawność przekazywanych komunikatów.

hostname Bob
Bob(config)# username Ted password Buggie
Bob(config)# interface serial 0/0/0
Bob(config-if)# ip address 10.1.1.1 255.255.255.252
Bob(config-if)# encapsulation ppp
Bob(config-if)# ppp authentication pap
Bob(config-if)# ppp pap sent-username Bob password Fuzzy 
R2#hostname Ted
Ted(config)# username Bob password Fuzzy
Ted(config)# interface serial 0/0/0
Ted(config-if)# ip address 10.1.1.2 255.255.255.252
Ted(config-if)# encapsulation ppp
Ted(config-if)# ppp authentication pap
Ted(config-if)# ppp pap sent-username Ted password Buggie 

Uwierzytelnianie poprzez CHAP jest znacznie bezpieczniejsza od PAP ze względu na zastosowanie jednokierunkowej funkcji hashującej MD5. Oznacza to, że hash jest generowany każdorazowo (jest unikatowy) i losowo. Nawet jeśli zostanie podsłuchany, nie ma możliwości na jego podstawie odtworzenia oryginalnych danych do logowania ani ich ponownego wykorzystania.

PAP i CHAP działają w subwarstwie LCP. Jeśli proces uwierzytelniania nie powiedzie się, LCP pozostanie zamknięte.
R1#hostname Bob
Bob(config)# username Ted password Buggie
Bob(config)# interface serial 0/0/0
Bob(config-if)# ip address 10.1.1.1 255.255.255.252
Bob(config-if)# encapsulation ppp
Bob(config-if)# ppp authentication chap
R2#hostname Ted
Ted(config)# username Bob password Buggie
Ted(config)# interface serial 0/0/0
Ted(config-if)# ip address 10.1.1.2 255.255.255.252
Ted(config-if)# encapsulation ppp
Ted(config-if)# ppp authentication chap

Multilink PPP jest użyteczną funkcją w ramach protokołu PPP w sytuacji posiadania co najmniej dwóch równoległych interfejsów sieciowych pomiędzy dwoma urządzeniami.

Dzięki MLPPP możliwe jest połączenie tych fizycznych interfejsów w jeden interfejs logiczny. Przede wszystkim, umożliwia to zwiększenie przepustowości między urządzeniami, jednocześnie redukując skomplikowanie połączeń w warstwie 3 sieci. Dodatkowo, MLPPP wprowadza mechanizm rzeczywistego balansowania obciążenia, polegający na podziale ramek na mniejsze jednostki, które są wysyłane równocześnie przez wiele interfejsów i ponownie składane na urządzeniu docelowym.

Bez zastosowania MLPPP, konieczne byłoby przydzielenie osobnych podsieci dla każdego indywidualnego łącza, co skutkowałoby dodatkowymi relacjami sąsiedztwa w protokołach routingu oraz koniecznością wprowadzenia dodatkowych wpisów tras o równoważnym priorytecie.

Multilink PPP pomiędzy dwoma routerami
Bob(config)# interface serial 0/0
Bob(config-if)# encapsulation ppp
Bob(config-if)# ppp multilink group 1
Bob(config)# interface serial 0/1
Bob(config-if)# encapsulation ppp
Bob(config-if)# ppp multilink group 1
Bob(config)# interface multilink 1
Bob(config-if)# ip address 10.1.1.1 255.255.255.252
Bob(config-if)# encapsulation ppp
Bob(config-if)# ppp multilink
Bob(config-if)# ppp multilink group 1
Ted(config)# interface serial 0/0
Ted(config-if)# encapsulation ppp
Ted(config-if)# ppp multilink group 1
Ted(config)# interface serial 0/1
Ted(config-if)# encapsulation ppp
Ted(config-if)# ppp multilink group 1
Ted(config)# interface multilink 1
Ted(config-if)# ip address 10.1.1.2 255.255.255.252
Ted(config-if)# encapsulation ppp
Ted(config-if)# ppp multilink
Ted(config-if)# ppp multilink group 1

W celu zweryfikowania poprawnego działania multilinku można sprawdzić jego konfigurację zarówno jako interfejsu logicznego, jak również zweryfikować konfigurację jako elementu protokołu punkt-punkt. Na koniec warto również upewnić się, czy fizyczne interfejsy składowe są poprawnie podniesione (stan up/up).

Bob#show interfaces multilink 1
Multilink1 is up, line protocol is up
  Hardware is multilink group interface
  Internet address is 10.1.1.1/30
  MTU 1500 bytes, BW 3088 Kbit/sec, DLY 100000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation PPP, LCP Open, multilink Open
  Open: IPCP, CDPCP, loopback not set

Bob#show ppp multilink

Multilink1, bundle name is Ted
  Endpoint discriminator is Ted
  Bundle up for 00:46:33, total bandwidth 3088, load 1/255
  Receive buffer limit 24000 bytes, frag timeout 1000 ms
    0/0 fragments/bytes in reassembly list
    0 lost fragments, 1 reordered
    0/0 discarded fragments/bytes, 0 lost received
    0x6A received sequence, 0x70 sent sequence
  Member links: 2 active, 0 inactive (max not set, min not set)
    Se1/1, since 00:46:34
    Se1/0, since 00:46:33

Bob#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  administratively down down
FastEthernet0/1            unassigned      YES unset  administratively down down
Serial1/0                  unassigned      YES unset  up                    up
Serial1/1                  unassigned      YES unset  up                    up
Serial1/2                  unassigned      YES unset  administratively down down
Serial1/3                  unassigned      YES unset  administratively down down
Multilink1                 10.1.1.1        YES manual up                    up
Napisane przez
Rafał Rudewicz
Pasjonat sieci komputerowych i automatyzacji. CCNP Enterprise & DevNet Specialist. IP/MPLS SME. Dołącz do mnie, aby razem odkrywać fascynujący świat technologii!
Komentarze
Spis treści
Świetnie! Udało ci się pomyślnie zarejestrować.
Witaj z powrotem! Zalogowałeś się pomyślnie.
Pomyślnie subskrybowałeś Inna Sieć.
Twój link wygasł.
Sukces! Sprawdź swoją skrzynkę e-mailową, aby uzyskać magiczny link do logowania.
Sukces! Twoje informacje rozliczeniowe zostały zaktualizowane.
Twoje informacje rozliczeniowe nie zostały zaktualizowane.