POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji PRACA DYPLOMOWA INŻYNIERSKA Łukasz Dobrodziej, Jakub Maćkowiak INFRASTRUKTURA LABORATORIUM ROUTINGU MIĘDZYDOMENOWEGO Opiekun naukowy: mgr inż. Mariusz Mycek.............................. ocena pracy.............................. data i podpis Przewodniczącego Komisji Egzaminacyjnej Warszawa, wrzesień 2010
LABORATORY INFRASTRUCTURE FOR INTER-DOMAIN ROUTING Abstract The aim of the present thesis is to develop laboratory infrastructure for implementing Border Gateway Protocol (BGP), which can be used by students on the practical laboratories. The laboratory infrastructure consists of router emulator and the front-end application allowing improvement of the router configuration and assessment, validation and graduation of performed tasks. The thesis is an extension of the work developed by Piotr Nowak and Piotr Zwierzchowski containing three exercises related with configuring BGP protocol. The developed environment has been assessed with the selected router emulator and application. Furthermore, experimental laboratory for students was conducted with the usage of developed environment and a chosen exercise. The application together with developed exercises can be used during the other laboratories run at the Institute of Telecommunications. The developed environment improve students understandings of the rules and configuring process of inter-domain traffic flow control on the Internet, as well as methodology of configuring routers. Moreover, includes functionality, which allows extending program of laboratories, by the practical usage of the Simple Network Management Protocol (SNMP) and Management Information Base (MIB). The router emulator makes possible to run laboratories with minimal resources and time. In Chapter 2, the structure and organization of the Internet is given, which is essential to the understanding of the motivation for usage of the BGP protocol. Chapter 3 is focused on the BGP protocol. It includes detailed description of UPDATE message attributes and samples of using it in traffic flow control. All issues related to the management of telecommunications networks can be found in Chapter 4. The SNMP protocol used by the application is introduced, and the discussion on the Structure of Management Information (SMI) and MIB base is done. Chapter 5 begins with the concept of the laboratory scenario and description of the application. In the following parts of the chapter, the application specification and functionality, together with some clues related to the further development can be found. In Chapter 6, the final conclusion of the work is presented. Appendixes consisting of emulator report and other manuals (i.e., laboratory instruction, application manual, application documentation), constitute the integral part of the present thesis. Keywords: BGP, SNMP
INFRASTRUKTURA LABORATORIUM ROUTINGU MIĘDZYDOMENOWEGO Streszczenie Celem niniejszej pracy było zaprojektowanie i zbudowanie infrastruktury, która umożliwi przeprowadzanie ćwiczeń laboratoryjnych, mających na celu zaznajomienie studentów z konfigurowaniem protokołu BGP (ang. Border Gateway Protocol). Infrastruktura składa się z wybranego emulatora routerów oraz aplikacji, której podstawowym zadaniem jest wspomaganie konfigurowania routerów oraz automatyczna weryfikacja i ocena wykonanych ćwiczeń laboratoryjnych. Praca stanowi kontynuacje pracy magisterskiej Piotra Nowaka i Piotra Zwierzchowskiego, którzy opracowali zestaw trzech ćwiczeń laboratoryjnych dotyczących konfigurowania protokołu BGP. Poprawność ćwiczeń została sprawdzona na wybranym emulatorze routerów a ćwiczenia wykonane z wykorzystaniem stworzonej aplikacji. W ramach pracy zostało również przeprowadzone testowe laboratorium z udziałem studentów uczęszczających na zajęcia z przedmiotu Zarządzanie Sieciami Telekomunikacyjnymi z wykorzystaniem stworzonego środowiska i jednego z przygotowanych scenariuszy. Aplikacja wraz ze stworzonymi scenariuszami, może zostać wykorzystana w ramach laboratorium z przedmiotów prowadzonych w Instytucie Telekomunikacji. Ćwiczenia wykonywane z użyciem programu, umożliwią studentom głębsze zapoznanie się z zasadami i procesem konfigurowania rozpływu ruchu międzydomenowego w sieci Internet, jak również ze środkami i metodami implementowania tych zasad w routerach. Ponadto aplikacja zawiera funkcje, które pozwalają urozmaicić ćwiczenie i rozszerzyć jego zakres o praktyczne wykorzystanie protokołu SNMP (ang. Simple Network Management Protocol) i bazy MIB (ang. Management Information Base). Zaproponowany emulator routerów pozwala na zorganizowanie laboratoriów przy minimalnym nakładzie środków i czasu. W rozdziale drugim opisano strukturę i organizację sieci Internet, których poznanie jest niezbędne do zrozumienia mechanizmów i zastosowań protokołu BGP. Rozdział trzeci poświęcony jest protokołowi BGP - zawiera opis atrybutów wiadomości UPDATE oraz ich przykładowe wykorzystanie w sterowaniu rozpływem ruchu międzydomenowego. Rozdział czwarty przedstawia zarys problemu zarządzania w sieciach telekomunikacyjnych, obejmuje opis protokołu SNMP, wykorzystywanego przez stworzoną aplikacje, a także omówienie struktury SMI (ang. Structure of Management Information) i bazy MIB w szczególności bazy informacji zarządzania protokołu BGP. Rozdział piąty przedstawia koncepcję ćwiczeń laboratoryjnych oraz opis aplikacji. Zaprezentowana jest w nim architektura rozwiązania, funkcjonalność programu a także możliwe kierunki rozwoju aplikacji. Rozdział szósty stanowi podsumowanie pracy. Integralną częścią niniejszej pracy jest zestaw załączników przygotowanych w czasie prac nad laboratorium i programem - raport dotyczący możliwości i obsługi wybranego emulatora routerów, instrukcja obsługi aplikacji, instrukcja do laboratorium oraz szczegółowa dokumentacja aplikacji. Słowa kluczowe: BGP, SNMP
Życiorys Łukasz Dobrodziej Urodziłem się 24 grudnia 1987 roku w Warszawie. W latach 2003-2006 uczęszczałem do XCIV Liceum Ogólnokształcącego im. gen. Stanisława Maczka w Warszawie do klasy o profilu matematyczno - informatycznym. W roku 2006 rozpocząłem studia dzienne na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej na Makrokierunku. Wybrana przeze mnie specjalność to Teleinformatyka i Zarządzanie w Telekomunikacji.
Życiorys Jakub Maćkowiak Urodziłem się 25 czerwca 1987 roku w Koszalinie. Po ukończeniu szkoły podstawowej i gimnazjalnej, kontynuowałem naukę w I Liceum Ogólnokształcącym im. Stanisława Duboisa w Koszalinie w klasie o profilu matematyczno - informatycznym. W roku 2006 rozpocząłem studia dzienne na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej na kierunku Makrokierunek. Wybrana przeze mnie specjalność to Teleinformatyka i Zarządzanie w Telekomunikacji.
Autorzy skadają podziękowania Panu mgr inż. Mariuszowi Myckowi za nieocenioną pomoc w trakcie pisania niniejszej pracy.
Spis treści Spis rysunków 17 Wykaz skrótów 19 1 Wstęp (ŁD) 21 1.1 Wprowadzenie.................................. 21 1.2 Cel pracy.................................... 22 1.3 Układ pracy................................... 23 2 Sieć Internet (JM) 25 2.1 Rozwój Internetu................................ 25 2.2 Struktura sieci Internet............................. 25 2.3 Adresacja w sieci Internet, numeracja ASN.................. 27 3 Protokół BGP (ŁD) 29 3.1 Wprowadzenie.................................. 29 3.2 Sesja BGP.................................... 29 3.2.1 Przebieg sesji.............................. 29 3.2.2 Rodzaje sesji.............................. 30 3.3 Atrybuty wiadomości UPDATE........................ 31 3.3.1 Atrybut Next Hop........................... 32 3.3.2 Atrybut As Path............................ 33 3.3.3 Atrybut Origin............................. 35 3.3.4 Atrybut Local Pref........................... 35 3.3.5 Atrybut Atomic Aggregate....................... 36 3.3.6 Atrybut Aggregator........................... 36 3.3.7 Atrybut Community.......................... 37 3.3.8 Atrybut Multi Exit Disc........................ 38 3.4 Proces wyboru najlepszej ścieżki........................ 39 13
Spis treści 4 Systemy zarządzania SNMP (JM/ŁD) 41 4.1 Wprowadzenie (JM).............................. 41 4.2 Systemy zarządzania (JM)........................... 41 4.2.1 Warstwy zarządzania.......................... 41 4.2.2 Obszary funkcjonalne.......................... 42 4.3 Architektura systemów zarządzania (JM)................... 43 4.4 Normalizacja protokołu SNMP (JM)..................... 44 4.4.1 Rozwój protokołu SNMP........................ 44 4.4.2 Protokół SNMP............................. 45 4.4.3 Składnia wiadomości SNMP...................... 46 4.4.4 Typy błędów (error-status)....................... 48 4.5 Baza informacji zarządzania MIB (JM).................... 49 4.5.1 Podstawowe informacje o MIB..................... 49 4.5.2 Struktura informacji zarządzania................... 51 4.5.3 Raportowanie zdarzeń......................... 53 4.5.4 Typy zmiennych w SMI........................ 54 4.5.5 Standardowa baza informacji zarządzania MIB-2.......... 55 4.6 Baza MIB protokołu BGP (ŁD)........................ 56 4.6.1 Tabela bgppeertable.......................... 58 4.6.2 Tabela Bgp4PathAttrTable....................... 59 4.7 Problemy i wady protokołu SNMP (JM)................... 61 5 Koncepcja laboratoriów (JM/ŁD) 63 5.1 Ćwiczenia laboratoryjne (ŁD)......................... 63 5.2 Opis aplikacji (JM)............................... 65 5.2.1 Architektura rozwiązania........................ 65 5.2.2 Założenia projektowe.......................... 66 5.2.3 Funkcjonalność aplikacji........................ 67 5.2.4 Propozycje rozwoju środowiska laboratoryjnego........... 68 14
6 Podsumowanie (JM) 69 Literatura 71 Załączniki (JM/ŁD) 73 A Narzędzia Dynagen, Dynamips - opis funkcjonalności (ŁD)......... 73 B Instrukcja do ćwiczenia (ŁD)......................... 83 C Instrukcja obsługi aplikacji (JM)....................... 91 D Dokumentacja aplikacji (JM/ŁD)....................... 101 (ŁD) Łukasz Dobrodziej (JM) Jakub Maćkowiak
Spis rysunków 2.1 Hierarchia systemów AS sieci Internet..................... 27 2.2 Liczba przydzielonych numerów ASN..................... 28 3.1 Sesja ebgp................................... 30 3.2 Sesja ibgp................................... 31 3.3 Atrybut Next Hop................................ 32 3.4 Atrybut As Path................................ 33 3.5 As Path prepending............................... 34 3.6 As Path wykrywanie pętli.......................... 35 3.7 Atrybut Local Pref............................... 36 3.8 Atrybut Community.............................. 38 3.9 Atrybut Multi Exit Disc............................ 39 4.1 Model zarządca-agent.............................. 43 4.2 Drzewo MIB................................... 50 4.3 Baza MIB protokołu BGP........................... 56 4.4 Wybrane obiekty tabeli bgppeertable..................... 58 4.5 Wybrane obiekty tabeli bgp4pathattrtable.................. 59 5.1 Uproszczona architektura środowiska laboratoryjnego............ 66 B.1 Topologia sieci................................. 83 B.2 Tabela interfejsów............................... 84 B.3 Tabela bgppeertable.............................. 85 B.4 Tabela bgp4pathattrtable........................... 86 C.1 Okno początkowe - wprowadzanie informacji na temat Grupy Laboratoryjnej 92 C.2 Widok podstawowy............................... 92 C.3 Widok po odświeżeniu............................. 94 C.4 Wykonywanie zapytań SNMP......................... 95 C.5 Wykonywanie Get Table po SNMP...................... 96 C.6 Funkcja Traceroute............................... 96 17
C.7 Okno oceniania................................. 97 C.8 Okno oceniania (niepowodzenie)....................... 98 C.9 Raport z laboratorium............................. 99 D.1 Architektura rozwiązania........................... 102
Wykaz skrótów AS ASN ASN.1 BGP CIDR ebgp EGP FIB IANA ibgp IEC IGP IP ISO ISP ITU-T MIB MPLS NAT NML NMS OID OSI OS OSS PDU RFC SMI SNMP TCP VPN UDP Autonomous System Autonomous System Number Abstract Syntax Notation One Border Gateway Protocol Classless Inter-Domain Routing exterior BGP Exterior Gateway Protocol Forwarding Information Base Internet Assigned Numbers Authority interior BGP International Electrotechnical Commission Interior Gateway Protocol Internet Protocol International Organization for Standardization Internet Service Provider International Telecommunication Union - Telecommunication Standardization Sector Management Information Base Multiprotocol Label Switching Network Address Translation Network Management Layer Network Management System Object Identifier Open System Interconnection Operations System Operations Support System Protocol Data Unit Request for Comments Structure of Management Information Simple Network Management Protocol Transmission Control Protocol Virtual Private Network User Datagram Protocol 19
1 Wstęp 1.1 Wprowadzenie Internet (ang. inter między, net sieć) to ogólnoświatowa sieć komputerowa, oparta na protokole IP (ang. Internet Protocol). Sieć ta ma charakter zdecentralizowany - składa się z administrowanych niezależnie sieci (systemów autonomicznych), z których każda działa według własnych, wewnętrznie określonych zasad. Pakiety w sieci Internet kierowane są przez routery do podsieci docelowej na podstawie informacji zawartych w tabelach FIB (ang. Fowarding Information Base). Prawidłowe działanie sieci wymaga, aby zawartości tabel FIB wszystkich routerów na drodze pakietu były spójne. Za zapewnienie spójności informacji wszystkich routerów danej domeny routingowej odpowiedzialny jest routing. Routing może być realizowany w płaszczyźnie zarządzania (routing statyczny) lub w płaszczyźnie sterowania (routing dynamiczny). Routing dynamiczny realizowany jest przez urządzenia komunikujące się przy wykorzystaniu protokołu routingowego. Obecnie wyróżnia się dwie podstawowe grupy protokołów routingowych wewnątrzdomenowe IGP (ang. Interior Gateway Protocol) oraz międzydomenowe EGP (ang. Exterior Gateway Protocol). Protokoły grupy IGP służą do wymiany informacji o topologii sieci w jednej domenie administracyjnej. Ich wybór i konfiguracja leżą w gestii administratora systemu autonomicznego. Protokoły te działają praktycznie w każdej domenie sieci a ich poziom złożoności nie jest duży. Zupełnie inaczej wygląda sytuacja w przypadku protokołów EGP, które są wykorzystywane do wymiany informacji pomiędzy systemami autonomicznymi. Najpowszechniejszym protokołem tej klasy jest protokół BGP. Międzydomenowy charakter tego protokołu oraz różnorodność funkcji (rozgłaszanie dostępnych podsieci w formie uogólnionych prefiksów, sterowanie rozpływem ruchu międzydomenowego, ochrona informacji o wewnętrznej strukturze sieci) wymagają od administratora dużej wiedzy i doświadczenia. W konsekwencji nieprawidłowego manipulowania atrybutami protokołu BGP może dojść do przerwania dostarczania usług dla wielu użytkowników końcowych. 21
1 Wstęp Studenci w ramach przedmiotów prowadzonych w Instytucie Telekomunikacji poznają podstawowe cechy i zastosowanie protokołu BGP. Aby umożliwić studentom praktyczne wykorzystanie wiedzy oraz głębsze zapoznanie się z zasadami i procesem rozpływu ruchu międzydomenowego w sieci Internet, powstał pomysł realizacji laboratoriów. Scenariusze laboratoryjne zostały opracowane we wcześniej powstałych pracach dyplomowych Instytutu Telekomunikacji. Do zrealizowania pozostało przygotowanie środowiska, które umożliwiłoby przeprowadzenie ćwiczeń. Podjęliśmy się tego zadania ze względu na złożony i ciekawy charakter zagadnień związanych z konfigurowaniem i kształtowaniem rozpływu ruchu przy użyciu protokołu BGP. Protokół BGP jest wykorzystywany powszechnie w sieci Internet i jego znajomość stanowi duży atut na rynku pracy. 1.2 Cel pracy Celem niniejszej pracy jest zaprojektowanie i zbudowanie infrastruktury do przeprowadzenia ćwiczeń laboratoryjnych, mających na celu zaznajomienie studentów z konfigurowaniem protokołu BGP. Infrastruktura składa się z emulatora routerów oraz aplikacji, której podstawowym zadaniem jest ułatwienie konfigurowania oraz automatyczna weryfikacja i ocena wykonanych ćwiczeń laboratoryjnych. Praca stanowi kontynuacje pracy magisterskiej Piotra Nowaka i Piotra Zwierzchowskiego, którzy opracowali zestaw trzech ćwiczeń laboratoryjnych dotyczących konfigurowania protokołu BGP (patrz [13]). Dodatkowym celem naszej pracy było sprawdzenie poprawności tych ćwiczeń na wybranym emulatorze routerów oraz ich wykonanie z wykorzystaniem stworzonej aplikacji. W ramach pracy zakładaliśmy również przeprowadzenie testowego laboratorium z udziałem studentów z wykorzystaniem stworzonego środowiska i jednego z przygotowanych scenariuszy. Aplikacja wraz ze stworzonymi scenariuszami, może zostać wykorzystana w ramach laboratorium z przedmiotów prowadzonych w Instytucie Telekomunikacji. Ćwiczenia wykonywane z użyciem programu, umożliwią studentom głębsze zapoznanie się z zasadami i procesem konfigurowania rozpływu ruchu międzydomenowego w sieci Internet, jak również ze środkami i metodami implementowania tych zasad w routerach. Ponadto aplikacja zawiera funkcje, które pozwalają urozmaicić ćwiczenie i rozszerzyć jego zakres o praktyczne wykorzystanie protokołu SNMP i bazy informacji zarządzania (MIB). 22
Zaproponowany emulator routerów pozwala na zorganizowanie laboratoriów przy minimalnym nakładzie środków i czasu. 1.3 Układ pracy W czasie pracy nad aplikacją niezbędne było poznanie metod kształtowania rozpływu ruchu międzydomenowego przy pomocy protokołu BGP oraz krytyczna analiza scenariuszy laboratoryjnych przygotowanych przez naszych poprzedników. Osobny rozdział został poświęcony również protokołowi SNMP oraz bazie informacji zarządzania, ponieważ aplikacja w dużej mierze za ich pomocą dokonuje weryfikacji konfiguracji routerów. W rozdziale drugim opisano strukturę i organizację sieci Internet, których poznanie jest niezbędne do zrozumienia mechanizmów i zastosowań protokołu BGP. Rozdział trzeci poświęcony jest protokołowi BGP - zawiera opis atrybutów wiadomości UPDATE oraz ich przykładowego wykorzystania w sterowaniu rozpływem ruchu międzydomenowego. Rozdział czwarty przedstawia zarys problemu zarządzania w sieciach telekomunikacyjnych, obejmuje opis protokołu SNMP, wykorzystywanego przez stworzoną aplikacje, a także omówienie struktury informacji zarządzania (SMI) i bazy MIB w szczególności bazy informacji zarządzania protokołu BGP. Rozdział piąty przedstawia koncepcję ćwiczeń laboratoryjnych oraz opis aplikacji. Zaprezentowana jest w nim architektura rozwiązania, funkcjonalność programu, wykorzystane przy implementacji narzędzia a także możliwe kierunki rozwoju aplikacji i laboratorium. Rozdział szósty stanowi podsumowanie pracy. Integralną częścią niniejszej pracy jest zestaw załączników przygotowanych w czasie prac nad laboratorium i programem - raport dotyczący możliwości i obsługi wybranego emulatora routerów, instrukcja obsługi aplikacji, instrukcja do laboratorium oraz szczegółowa dokumentacja aplikacji.
2 Sieć Internet 2.1 Rozwój Internetu Powstanie sieci Internet zrewolucjonizowało światowy system komunikacji. Możliwość niemal natychmiastowej wymiany informacji między dowolnymi komputerami świecie, łatwy dostęp do informacji, możliwośc wpływania na zawarte w sieci treści, sprawiają, że popularność sieci Internet jest w pełni zrozumiała. Początki sieci Internet datuje się na koniec lat 60, kiedy rząd Stanów Zjednoczonych powołał agencję ARPA (ang. Advanced Research Projects Agency Agencja Zaawansowanych Projektów Badawczych) zajmującą się rozwojem technik wojskowych. W ramach jej działań rozpoczęto prace nad projektem badawczym mającym na celu stworzenie rozproszonej, odpornej na awarie sieci komputerowej. Potencjalne korzyści wynikające z istnienia takiej sieci spowodowały włączenie się do projektu uniwerysteckich ośrodków badawczych. Efektem czego, do roku 1971 do sieci ARPANET dołączonych było 15 instytucji rządowych i akademickich. Wraz z upływem lat sieć rozrastała się coraz szybciej, a wraz jej rozwojem zwiększała się złożoność zagadnień związanych z jej utrzymaniem. Nastąpił gwałtowny rozwój technik sieciowych (protokołów, technik transmisyjnych, urządzeń i systemów zarządzania) mających na celu utrzymanie sprawności sieci pomimo tak ogromnej jej skali. 2.2 Struktura sieci Internet Sieć Internet jest w chwili obecnej zdecentralizowanym zbiorem niezależnych administracyjnie obszarów systemów autonomicznych AS (ang. Autonomous System). System autonomiczny to sieć lub grupa sieci z jednolitymi zasadami routingu, zarządzana przez jeden podmiot. Każdy system autonomiczny AS samodzielnie zajmuje się routingiem wewnątrzdomenowym, stosując jeden lub wiele protokołów routingu wewnątrzdomenowego klasy IGP (ang. Interior Gateway Protocol). Aby zapewnić globalną dostępność podsieci należy umożliwić wymianę informacji o trasach pomiędzy różnymi AS. Wykorzystuje się do tego protokoły routingu międzydomenowego klasy EGP (ang. Exterior Gateway Protocol). Standardowo, we współczesnym Internecie wykorzystywany jest w tym celu protokół BGP (ang. Border Gateway Protocol). Systemy autonomiczne tworzą w Internecie strukturę hierarchiczną. Rys. 2.1 obra- 25
2 Sieć Internet zuje relacje w przykładowej strukturze Internetu i ukazuje podział ze względu na rodzaj i poziom AS w hierarchii. Poziomy te nazywane są Tier. Wyróżniamy trzy poziomy hierarchii Tier w sieci Internet. Sieci będące na szczycie hierarchii (Tier 1 ), definiuje się jako te, które mają dostęp do każdej podsieci w Internecie bez konieczności świadczenia opłat za przesył pakietów. Sieci tego poziomu (ich liczba nie przekracza w chwili obecnej 15) są między sobą połączone (każda z każdą) w relacji typu peer-to-peer. Systemy autonomiczne Tier 1 stanowią szkielet Internetu. Międzynarodowe firmy utrzymujące te sieci świadczą usługi operatorom niższego poziomu hierarchii lub klientom biznesowym mającym duże wymagania odnośnie jakości połączenia z siecią Internet. Na następny poziom hierarchii (Tier 2 ) składają się sieci tranzytowe będące klientami jednego lub wielu operatorów Tier 1. Utrzymują one relacje typu peer-to-peer z innymi operatorami tego samego poziomu (najczęściej pomiędzy operatorami bliskimi pod względem geograficznym, pomiędzy którymi wymieniane są znaczne ilości ruchu). Przykładem takich sieci są duże sieci operatorów krajowych. Najmniejsze wymieniane w tym podziale sieci, należą do poziomu Tier 3. Charakteryzują się one tym, że są sieciami tranzytowymi, korzystającymi z usług jednego lub więcej operatorów poziomu Tier 2. Zazwyczaj są to regionalni dostawcy Internetu. Systemy autonomiczne, które nie są tranzytowe (nie przesyłają ruchu pomiędzy innymi AS), nazywane są stub. Cały ruch, który przekazują pochodzi od/do klientów tej sieci. W zależności od tego czy ich połączenie z siecią Internet jest świadczone odpowiednio przez jednen lub więcej AS, wyróżniamy dwa rodzaje systemów autonomicznych typu stub: single-homed stub i multihomed stub, 26
Rys. 2.1 Hierarchia systemów AS sieci Internet Różnorodność możliwych relacji między systemami autonomicznymi, rozmiar wymienianej informacji routingowej, wymóg minimalnego czasu powrotu sieci do sprawności po wystąpieniu awarii wszystko to sprawia, że zagadnienia związane z routingiem międzydomenowym są zagadnieniami ciekawymi a ich rozwój (w tym rozwój protokołu BGP) jest podstawą istnienia sieci Internet. 2.3 Adresacja w sieci Internet, numeracja ASN Podstawą działania sieci Internet jest jednolita adresacja hostów. Obecnie, wykorzystywana jest adresacja zgodna z protokołem IP w wersji 4. Adresy IPv4 to 32 bitowe liczby, przedstawiane najczęściej w postaci czterech oktetów, zapisanych dziesiętnie i oddzielanych znakiem kropki. Liczba adresów określona w standardzie IPv4 (2 32 ), pomniejszona o adresy zarezerwowane np. dla użytku w sieciach prywatnych lub dla adresów multicast, okazała się niewystarczająca dla rozwijającej się sieci Internet. Wersja 6 protokołu IP 27
wprowadza znacznie większą przestrzeń adresową (128 bitów), jednak chwila wejścia IPv6 do powszechnego użytku zdaje się być, na chwilę obecną odległa. Aby umożliwić efektywniejsze wykorzystanie adresów IPv4 stosuje się mechanizmy translacji adresów NAT (ang. Network Address Translation) i wprowadza bezklasowy routing międzydomenowy CIDR (ang. Classless Inter-Domain Routing). Podobne problemy z wielkością przestrzeni adresowej pojawiają się na poziomie routingu międzydomenowego. Numery systemów autonomicznych ASN (ang. Autonomous System Numbers) były początkowo 16-bitowymi liczbami. Gwałtowny wzrost zapotrzebowania na te numery (patrz Rys. 2.2) okazał się być poważniejszym zagrożeniem niż problem wyczerpujących się adresów IP. Głównym powodem jest brak możliwości przeniesienia mechanizmów stworzonych na potrzeby adresów IP na grunt numeracji systemów autonomicznych. W rezultacie takiego stanu rzeczy w roku 2007 organizacja odpowiedzialna za przydzielanie adresów IP, numerów ASN, nazw domen DNS i innych zasobów związanych z protokołami Internetowymi IANA (ang. Internet Assigned Numbers Authority), poszerzyła przestrzeń numeracji ASN do 32 bitów. Format zapisu numerów ASN składa się obecnie z dwóch 16-bitowych liczb zapisanych dziesiętnie, oddzielonych znakiem kropki (x.y), przy czym stosowane wcześniej numery 16-bitowe odzwierciedlane są przez zapis (0.y). Rys. 2.2 Liczba przydzielonych numerów ASN
3 Protokół BGP 3.1 Wprowadzenie Protokół BGP (ang. Border Gateway Protocol) jest podstawowym protokołem routingu międzydomenowego w sieci Internet. Umożliwia wymianę informacji o dostępnych podsieciach miedzy systemami autonomicznymi. Protokół BGP jest protokołem typu pathvector oznacza to, że wiadomości routingowe przenoszą listę numerów systemów autonomicznych, przez które będą przechodzić pakiety do rozgłaszanej podsieci. Przy pomocy protokołu BGP można kształtować rozpływ ruchu, filtrować ruch, przypisywać reguły routingowe. Routery BGP wymieniają informacje o dostępnych ścieżkach. Gdy istnieje kilka ścieżek do jednej podsieci docelowej, do wyboru najlepszej z nich stosują reguły i parametry administracyjne (tzw. atrybuty). W procesie wyboru najlepszej ścieżki nie uwzględnia się parametrów łączy aktualnego obciążenia, opóźnień transmisji danych oraz strat pakietów. Protokół BGP pozwala na agregację informacji o rozgłaszanych ścieżkach. Dzięki temu między sąsiednimi systemami autonomicznymi wymieniane są jedynie informacje o ścieżkach zagregowanych. Zmniejszana jest w ten sposób liczba wysyłanych rozgłoszeń. 3.2 Sesja BGP Sąsiadujące routery BGP po skonfigurowaniu przez administratora ustanawiają między sobą sesje BGP w celu wymiany wiadomości routingowych. Sesja wykorzystuje stałe, niezawodne połączenie TCP (port 179). 3.2.1 Przebieg sesji W celu nawiązania sesji BGP routery wysyłają wiadomość OPEN. Zawarte są w niej podstawowe informacje potrzebne do określenia sąsiedztwa (numer wersji protokołu, numer ASN, identyfikator BGP routera, liczniki i parametry opcjonalne). Po ustanowieniu sesji, routery BGP przekazują sobie informacje routingowe w wiadomościach UPDATE. Pierwsza wiadomość UPDATE zawiera całą tablicę BGP, kolejne przenoszą informacje 29
3 Protokół BGP o dodawanych bądź usuwanych ścieżkach i związanych z nimi parametrach. Wiadomość UPDATE składa się z dwóch opcjonalnych bloków: blok NLRI (ang. Network Layer Reachability Information), który przenosi listę dostępnych podsieci wraz a atrybutami prowadzących do nich ścieżek; blok WITHDRAW, który przenosi informacje o ścieżkach do podsieci, które należy wycofać. W celu utrzymania sesji BGP, gdy nie zachodzą wymiany informacji routingowych, routery wysyłają wiadomość KEEPALIVE. W ten sposób sygnalizują, że sesja jest wciąż aktywna. Wiadomości KEEPALIVE wysyłane są domyślnie co 60 sekund. Do zakończenia sesji BGP służy wiadomość NOTIFICATION. Wysyłana jest w celu powiadomienia o wystąpieniu błędu związanego z sesją BGP (nieznane pole wiadomości OPEN, upłynięcie określonego czasu od ostatniej wiadomości KEEPALIVE lub UPDATE). Wiadomość NOTIFICATION powoduje zerwanie sesji BGP. Po zakończeniu sesji BGP zostaje również zerwane połączenie TCP. 3.2.2 Rodzaje sesji Istnieją dwa rodzaje sesji BGP. Routery należące do dwóch różnych systemów autonomicznych nawiązują sesję zewnętrzną ebgp (ang. exterior BGP). Za ich pośrednictwem wprowadzane są rozgłoszenia o podsieciach dostępnych w innych systemach autonomicznych (patrz Rys. 3.1). Rys. 3.1 Sesja ebgp Routery BGP należące do jednego systemu autonomicznego muszą utrzymywać spójną informacje o ścieżkach do podsieci w innych systemach autonomicznych. W tym 30
celu routery te ustanawiają sesje wewnętrzne ibgp (ang. interior BGP) przy czym każdy router danego systemu autonomicznego powinien utrzymywać sesję ibgp z każdym innym routerem tego systemu (patrz Rys. 3.2). W przypadku dużych sieci, w celu ograniczenia liczby sesji ibgp stosuje się mechanizmy route-reflector lub confederation. Rys. 3.2 Sesja ibgp 3.3 Atrybuty wiadomości UPDATE Routery BGP przy wyborze najlepszej ścieżki wykorzystują parametry administracyjne, nazywane atrybutami. Atrybuty są związane z konkretną ścieżką i są przesyłane razem z informacją o tej ścieżce w wiadomości UPDATE. Wyróżnia się następujące typy atrybutów wiadomości UPDATE: well-known mandatory atrybuty, które muszą być rozpoznawane przez wszystkie implementacje protokołu (well-known) oraz muszą towarzyszyć każdej ogłaszanej ścieżce (mandatory); well-known discretionary atrybuty, które są rozpoznawane przez wszystkie implementacje protokołu, ale nie muszą być przesyłane razem z ogłaszaną ścieżką (discretionary); optional transitive atrybuty, które nie muszą być rozpoznawane przez implementację (optional), ale jeżeli towarzyszą ogłaszanej ścieżce są wraz z nią przekazywane do innych routerów; 31
3 Protokół BGP optional non-transitive atrybuty, które nie muszą być rozpoznawane przez implementację, ani też przekazane do innych routerów (non-transitive). Poniżej przedstawiono atrybuty protokołu BGP podzielone na wymienione kategorie: well-known well-known optional transitive optional nontransitive mandatory discretionary Next Hop Local Pref Aggregator Multi Exit Disc As Path Atomic Aggregate Community Origin Tab. 3.1 Podział atrybutów BGP 3.3.1 Atrybut Next Hop Atrybut Next Hop zawiera informacje o adresie IP interfejsu kolejnego routera na drodze do sieci docelowej. W zależności od pochodzenia ścieżki, atrybut ma różne znaczenie (patrz Rys. 3.3). Rys. 3.3 Atrybut Next Hop Jeżeli ścieżka została rozgłoszona w sesji ibgp i podsieć docelowa pochodzi z wnętrza systemu autonomicznego, atrybut Next Hop jest adresem routera, który tę podsieć rozgłosił (na Rys. 3.3 router A rozgłasza podsieć 207.112.15.0/24). Każdy router wewnątrz tego samego systemu autonomicznego (router B na Rys. 3.3) zmienia wartość atrybutu Next Hop na adres swojego interfejsu. W przypadku ścieżek rozgłoszonych w sesjach ebgp, atrybut Next Hop wskazuje urządzenie, które przekazuje informacje o ścieżce do danego systemu autonomicznego. 32