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 interfejsieclock 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.
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.
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
Co to jest Multilink?
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.
Konfiguracja Multilink
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
Weryfikacja konfiguracji Multilink
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