• Nie Znaleziono Wyników

Piotr Zwierzykowski, mgr inż Piotr Jaworski WYKORZYSTANIE ROUTERA PROGRAMOWEGO W LABORATORIUM SIECI TELEINFORMATYCZNYCHSesja: Kształcenie w dziedzinie elektroniki i telekomunikacji.Politehnika Poznańska

N/A
N/A
Protected

Academic year: 2021

Share "Piotr Zwierzykowski, mgr inż Piotr Jaworski WYKORZYSTANIE ROUTERA PROGRAMOWEGO W LABORATORIUM SIECI TELEINFORMATYCZNYCHSesja: Kształcenie w dziedzinie elektroniki i telekomunikacji.Politehnika Poznańska"

Copied!
4
0
0

Pełen tekst

(1)www.pwt.et.put.poznan.pl Piotr Jaworski , Piotr Zwierzykowski Politechnika Poznańska Instytut Elektroniki i Telekomunikacji ul. Piotrowo 3A, 60-965 Poznań {pjawor,pzwierz}@et.put.poznan.pl. 2005. Poznańskie Warsztaty Telekomunikacyjne Poznań 8 - 9 grudnia 2005. WYKORZYSTANIE ROUTERA PROGRAMOWEGO W LABORATORIUM SIECI TELEINFORMATYCZNYCH Streszczenie: Podczas omawiania zagadnień z zakresu protokołów routingu, istnieje potrzeba przedstawienia zaprezentowanej wiedzy teoretycznej w praktyce. W tym celu opracowana została specjalna dystrybucja systemu Linux. Dzięki wykorzystaniu systemu uniksowego, do pracy w funkcji routera, na komputerze PC, istnieje możliwość pełnej analizy zagadnień związanych z funkcjonowaniem, omawianych na zajęciach teoretycznych, protokołów routingu. W artykule przedstawiono możliwości przygotowanej dystrybucji, ze szczególnym omówieniem możliwości pakietu Quagga.. 1. WPROWADZENIE Źródeł powstania, omawianej w ramach tego artykułu, dystrybucji, udostępniającej funkcjonalność routera, należy szukać w ogólnych tendencjach panujących na rynku teleinformatycznym. U samych podstaw znajduje się fakt związany z realizacją przysposobienia popularnej dystrybucji systemu GNU/Linux o nazwie Knoppix, do wykorzystania przez studentów kierunku Elektronika i Telekomunikacja na Politechnice Poznańskiej [1]. Dystrybucję Knoppix opracowano w taki sposób, aby nie było potrzeby instalacji systemu na dysku twardym komputera, na którym jest uruchamiany. Specjalnie przygotowany system pozwala na start z płyty CD, na której umieszczony jest skompresowany obraz całego systemu z pełną strukturą katalogów systemowych. Podczas startu Knoppix uruchamia skrypty przygotowujące ramdysk, do którego rozpakowywane są używane w danej chwili komponenty systemu. Dystrybucja ta charakteryzuje się również sprawnym mechanizmem wykrywania i autokonfiguracji sprzętu. Wiele rozwiązań zastosowanych w Knoppiksie znalazło szerokie zastosowanie w prawie wszystkich obecnie tworzonych dystrybucjach. Doświadczenie zdobyte podczas tworzenia projektu opartego o Knoppiksa, zachęciło do głębszego poznania mechanizmów funkcjonowania systemu GNU/Linux i większej specjalizacji tworzonej dystrybucji. W ostatnich latach można zaobserwować znaczny wzrost zainteresowania samym systemem Linux, a szczególnie coraz częstsze wdrożenia tego systemu, począwszy od zastosowań w sprzęcie sieciowym, po środowiska biurkowe na komputerach PC, w dużych korporacjach. Świadczy to o wyraźnej dojrzałości te-. PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005. go systemu, jak i o jego pozytywnych parametrach ekonomicznych. Pociągnęło to za sobą duże zapotrzebowanie rynku na specjalistów, znających ten system o otwartych źródłach. Zainteresowanie systemem Linkus jest również widoczne wśród coraz szerszej grupy użytkowników indywidualnych. Powszechniejszy dostęp do Internetu i potrzeba szybkiego uruchomienia małej sieci lokalnej często warunkuje wykorzystanie routera dostępowego do połączeń z dostawcą usług internetowych. Innym obszarem zastosowań systemu Linuks może być edukacja. Prezentowana dystrybucja tworzona jest pod kątem wykorzystania w ramach zajęć laboratoryjnych. Możliwości, jakie udostępnia system oraz pakiet Quagga, pozwalają między innymi na opanowanie zasad konfiguracji oraz na analizę pracy protokołów routingu. 2. SYSTEM OPERACYJNY A. Linux Nazwa Linux określa właściwie tylko jądro. System, oprócz jądra, tworzy zbiór bibliotek i programów. Całość czyli jądro, biblioteki i programy nosi nazwę GNU/Linux, ponieważ programy i biblioteki zostały napisane dla teoretycznego systemu GNU Hurd, który miał być systemem o otwartym kodzie źródłowym [4]. Pojawienie się jądra systemu, udostępnionego na prawach takich jak reszta komponentów GNU, pozwoliło na realizację projektu otwartego systemu operacyjnego. Otwartość kodu i modularność systemu zapewnia możliwość dostosowywania GNU/Linuksa do własnych potrzeb i budowania tzw. dystrybucji. Czyli pełnego systemu przeznaczonego do konkretnego zastosowania, zawierającego jedną z wersji jądra systemu wraz z odpowiednio dobranym oprogramowaniem, mechanizmami konfiguracyjnymi oraz instalator, często dodatkową dokumentację. Dystrybucją bazową dla rozwoju omawianego systemu, jest Linux gentoo [czyt. dżentu] [5]. Wprowadza ona rewolucyjne rozwiązanie problemu instalacji oprogramowania, oparte na systemie drzewa portówidei zaczerpniętej z systemów BSD. Gentoo idzie jednak nieco dalej, mocno usprawniając ten mechanizm (narzędzie Portage). Dystrybucja ta ma specyficzny dla siebie układ katalogów, budowę i rozmieszczenie. 1/4.

(2) www.pwt.et.put.poznan.pl skryptów startowych oraz wspomniany sposób dodawania oprogramowania. Jest to system, który pozwala na pobieranie źródeł programu bezpośrednio ze strony autora danej aplikacji i automatyzację procesu kompilacji (w tym pobierania z Internetu wymaganych bibliotek). Jest równocześnie bardzo elastyczną dystrybucją, wykorzystywaną jako baza do rozwoju specjalizowanych dystrybucji Linuksa [5]. B. Dystrybucja routerowa Sama idea budowy routerów programowych na bazie systemu Linux nie jest nowa. System ten, budowany w oparciu o strukturę uniksową, jest wygodnym sieciowym systemem operacyjnym. W jądrze Linuksa mamy zaimplementowane większość standardowych protokołów sieciowych, sterowniki dla dużej ilości sprzętu sieciowego, obsługę SNMP, zaawansowane zarządzanie dostępem do zasobów oraz inne mechanizmy pozwalające na zapewnienie odpowiedniego poziomu bezpieczeństwa, czy sprawiedliwego przydziału pasma dla poszczególnych użytkowników sieci. Zalety te wykorzystuje wielu producentów sprzętowych rozwiązań sieciowych, importując Linuksa jako system zarządzający produkowanymi urządzeniami. Obniża to znacznie koszty rozwojowe, ponieważ nie trzeba implementować własnego systemu operacyjnego dedykowanego dla produktów danej firmy (jedynie więksi dostawcy jak np. Cisco Systems, mogą pozwolić sobie na równoległy rozwój dedykowanego systemu operacyjnego i sprzętu). Większość z obecnie dostępnych routerów to urządzenia zbudowane na bazie dedykowanych komputerów, zarządzanych odpowiednim systemem operacyjnym, stąd są to właściwie routery programowe (określane jako routery oddziałowe). Inną grupę stanowią wysokowydajne maszyny z zaimplementowanymi funkcjami routera bezpośrednio w strukturze półprzewodnikowej bądź innej (w przyszłości). Jednak tego typu urządzenia są bardzo drogie i są wykorzystywane w węzłach struktury sieciowej. Generalnie wygodniej jest tworzyć routery programowe, ponieważ łatwo można dodać nową funkcjonalność, przez napisanie odpowiedniego programu, w przypadku routerów typowo sprzętowych, należałoby przeprojektować strukturę układu logicznego, co jest procesem drogim i jednocześnie czasochłonnym. Duża elastyczność i modularność budowy Linuksa, pozwalają wygodnie dodawać własne rozszerzenia, bez potrzeby znaczącej ingerencji w rdzeń systemu. To właśnie dzięki modułom jądra możemy podczas pracy systemu włączać w wykonywany aktualnie kod systemowy nową funkcjonalność, bez potrzeby wyłączania i ponownego uruchamiania systemu. Warunki licencyjne, na jakich rozpowszechniany jest system GNU/Linux, pozwalają na minimalizację kosztów (darmowy dostęp do kodu źródłowego i pozwolenie na jego modyfikację), jednocześnie gwarantując dalszy rozwój platformy (swoje zmiany i poprawki należy udostępnić na takich samych zasadach). Wszystkie wspomniane cechy systemu Linux, spra-. PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005. wiają, że budując własne rozwiązania sieciowe, np. router programowy, można skoncentrować się na dodawaniu unikalnej funkcjonalności,specyficznej dla danego zastosowania, bez potrzeby oprogramowywania standardowych modułów, najczęściej opracowanych w sposób zbliżony do optymalnego. Tak jest również w przypadku tego projektu. Dystrybucja opracowana została pod kątem dwóch obszarów zastosowania. Z jednej strony chodziło o przygotowanie bazy dydaktycznej pozwalającej zapoznać się z możliwościami systemu Linux oraz z funkcjonowaniem podstawowych protokołów routingu. Wykorzystywany jest tu tradycyjny sposobu pracy z systemem za pomocą powłoki systemowej. Drugi obszar zastosowania to małe tymczasowe sieci lokalne, które wymagają szybkiego postawienia bramy dostępowej do sieci Internet z wykorzystaniem komputera wyposażonego w minimum trzy interfejsy sieciowe, na przykład dwa LAN i jeden WAN. Dla tej grupy użytkowników skierowany jest prosty konfigurator z poziomu przeglądarki. Pozwalający bez zbędnego nakładu czasu skonfigurować interfejsy sieciowe i zestawić odpowiednie połączenia. System przygotowany jest pod kątem architektury i686., stąd komputer PC wyposażony w procesor, minimum, Intel Pentium Pro może uruchomić system i aplikacje dostępne w ramach dystrybucji. Ruter, aby mógł pełnić swoją funkcję powinien posiadać przynajmniej trzy interfejsy sieciowe. Mogą to być dwa interfejsy Ethernet i jeden WAN. Wymóg ten nie decyduje o tym, czy system się uruchomi, ale wskazuje na to, czy jest sens używania komputera z jednym, czy dwoma interfejsami jako routera. Istnieje możliwość emulacji sieci, ale nie jest to celem dystrybucji routerowej. Dystrybucja pozwala na pracę z technologią sieci bezprzewodowych, obsługiwane są karty wspierane przez jądro systemu Linux, lub przez warstwę pośredniczącą w postaci modułu jądra, noszącego nazwę Ndiswrapper, emulującego środowisko NDIS. Warstwa pośrednicząca pozwala na pracę z binarnymi sterownikami przygotowanymi dla systemów z rodziny Microsoft Windows. Jak już zostało wspomniane pomysł budowy dystrybucji routerowej nie jest nowy, jednak dostępne do tej pory inne rozwiązania bazowały na starszych wersjach jądra systemu Linux, nawet w wersji 2.2.x. Wykorzystanie w przygotowanej dystrybucji najnowszej gałęzi jądra (2.6.x) pozwala na pracę z nowymi technologiami, w tym na obsługę adresacji IP w wersji szóstej, czy wykorzystanie mechanizmów Quality of Service. 3. PAKIET QUAGGA Jądro systemu Linux zapewnia podstawowe mechanizmy pozwalające na przesyłanie pakietów z portu wejściowego na port wyjściowy, przez możliwość budowania tabel routingu. Domyślnie wspierany jest właściwie routing statyczny. Samo jądro nie implementuje podstawowych protokołów routingu dyna-. 2/4.

(3) www.pwt.et.put.poznan.pl micznego, w celu ich wykorzystania konieczne jest użycie dodatkowego oprogramowania pozwalającego na ich obsługę. Realizowana dystrybucja korzysta z możliwości, jakie udostępnia pakiet Quagga. Obsługuje on takie protokoły jak: IP w wersji czwartej oraz szóstej; RIP w wersji pierwszej oraz drugiej; RIPng; OSPF w wersjach drugiej oraz trzeciej;BGP w wersji czwartej oraz ISIS. W przypadku BGP obsługiwane jest rozszerzenie w postaci mechanizmu Route Reflector oraz Route Server. Sam program oparty jest o wcześniejszy projekt Zebra, stąd korzysta z demona tego pakietu, jako zarządcy, który zapewnia komunikację z tabelą routingu utrzymywaną przez system a demonami obsługującymi poszczególne protokoły, takimi jak: bgpd, ripd, ripngd, ospfd, ospf6d, isisd.. Rys. 1. Powiązanie między komponentami pakietu Quagga i systemem Linux Pakiet Quagga do konfiguracji używa interfejsu znanego z urządzeń Cisco, stąd osoby, które potrafią korzystać z urządzeń tej firmy nie będą miały problemów w przypadku obsługi funkcji udostępnianych przez pakiet. Do konfiguracji i monitoringu pracy poszczególnych demonów usług wykorzystywane są połączenia telnet na portach: • 2601 - dla demona Zebra • 2602 - ripd • 2603 - ripngd • 2604 - ospfd • 2605 - bgpd • 2606 - ospf6d • 2607 - ospfapi • 2608 - isisd Nazwy demonów stanowią jednocześnie nazwy poleceń wykorzystywanych do konfiguracji poszczególnych usług. Możliwa jest również komunikacja ze wszystkimi aktywnymi demonami w ramach jednego połączenia, korzystając z vtysh. 4. KONFIGURACJA I OBSŁUGA PAKIETU Pakiet do poprawnej pracy wymaga kilku zabiegów konfiguracyjnych. Na początku należy przygotować odpowiednią postać pliku konfiguracyjnego zarządcy, czyli modułu Zebra. Jest to plik zebra.conf. PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005. i należy go umieścić w katalogu /etc/quagga, pliki konfiguracyjne innych demonów również znajdują się w tym katalogu, ich nazwy składają się z członu identycznego z nazwą demona i rozszerzenia *.conf. Przykładowa postać pliku konfiguracyjnego modułu zebra może wyglądać następująco: hostname routerek password 8 xxxxxxxxxx enable password 8 xxxxxxxxxx log file /var/log/quaga.log log trap informational log record-priority service advanced-vty service password-encryption ! interface eth0 description "Network A" link-detect ip address 192.168.0.2/30 ! interface eth1 description "Network B" link-detect ip address 192.168.1.1/30 ! interface eth2 description "Network C" link-detect ip address 10.0.0.1/24 ! interface lo ip address 127.0.0.1/8 Moduł zebra uruchamiamy poleceniem zebra. Dalsza praca odbywa się przy wykorzystaniu terminali VTY, aby móc się do nich logować, należy ustawić hasło dla połączeń VTY. Do menadżera zebra podłączamy się komendą: telnet localhost 2601. Po podaniu hasła mamy dostęp do interfejsu znanego z urządzeń Cisco. Wydanie komendy „? ” powoduje wypisanie listę wszystkich dostępnych na danym poziomie poleceń. Z poziomu zarządcy możliwa jest zmiana adresacji i aktywacja poszczególnych interfejsów oraz można decydować o szerokości pasma na danym interfejsie. Możliwa jest również statyczna edycja wpisów w tabeli routingu. Mając skonfigurowanego i uruchomionego zarządcę można przystąpić do konfiguracji i uruchamiania demonów odpowiedzialnych za poszczególne protokoły routingu. Uruchomienia danego demona dokonujemy wydając polecenie takie jak nazwa demona danego protokołu, np. ripd, natomiast zatrzymania dokonujemy przez zabicie stosownego procesu, np.: kill ‘cat /var/run/ripd.pid‘. Konfiguracji demonów dokonujemy w sposób podobny, jak dla zarządcy. Przykładowa prosta konfiguracja dla protokołu RIPv1/2 może wyglądać następująco: router rip network 10.0.0.0/8 network eth2 !. 3/4.

(4) www.pwt.et.put.poznan.pl Passive interface Opcja router rip aktywuje protokół. Także w tym wypadku można komunikować się z demonem za pomocą terminala VTY. Dla protokołu RIP połączenie z demonem uzyskujemy wydając polecenie: telnet localhost 2602. Dużą zaletą pakietu Quagga jest zgodność interfejsu z urządzeniami Cisco, przez co można realizować zadania, w oparciu o materiały szkoleniowe Cisco, nie mając dostępu do urządzeń tej firmy. Szczegółowe opcje poszczególnych demonów oraz komendy dostępne z poziomu terminali VTY można znaleźć w obszernej instrukcji do pakietu, dostępnej na jego stronie domowej [3]. 5. PRZYKŁADOWE SCENARIUSZE ZAJĘĆ LABORATORYJNYCH W tym rozdziale przedstawiono propozycje zadań, wykonanie których pozwoli zapoznać się z mechanizmami sieciowymi systemu Linux. A. Tworzenie reguł filtru pakietów Celem zadania jest zapoznanie się z zasadami tworzenia reguł filtracji pakietów. Zadanie przewiduje, że połączenie sieciowe jest już skonfigurowane. 1. Zapoznać się z opcjami pakietu iptables. 2. Dokonać wyczyszczenia tablic zapory sieciowej: iptables -F iptables -F -t nat 3. Ustawić zaporę w tryb blokowania całego ruchu: iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP 4. Sprawdzić możliwość połączenia po pętli wewnętrznej: ping 127.0.0.1 5. Dopuścić akceptację pakietów w ramach pętli wewnętrznej, w wywołaniu ifconfig jako interfejs lo: iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -o lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT 6. Ponownie sprawdzić możliwość połączenia po pętli wewnętrznej: ping 127.0.0.1 7. Dokonać samodzielnie zmian pozwalających na dopuszcznie zapytań na port 80; 8. Zezwolić na cały ruch wychodzący; 9. Zabronić wysyłania wiadomości ICMP do sąsiedniego komputera; 10. Usunąć ostatnio wprowadzoną regułę. B. Aktywowanie protokołu RIPv2 Celem zadania jest uruchomienie protokołu RIPv2 na komputerze pełniącym funkcję rutera. 1. Zapoznać się ze sposobem konfiguracji demona zebra. 2. Zapisać podstawowe informacje w pliku konfiguracyjnym demona zebra /etc/quagga/zebra.conf : hostname nasz_ruter password zebra. PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005. enable password zebra log stdout 3. Uruchomić demona zebra: zebra -d 4. Wyedytować podstawowe informacje w pliku konfiguracyjnym demona ripd /etc/quagga/ripd.conf : router rip network 192.168.1.2/24 network eth0 5. Ustawić w konfiguracji samodzielnie wartość metryki na 10 6. Ustawić w konfiguracji parametry licznika: • update =15 • timeout = 150 • garbage =100 7. Uruchomić demona ripd : ripd -d 8. Połączyć się z terminalem: telnet localhost 2602 9. Wyświetlić ustawienia za pomocą komendy: show ip protocols W podobny sposób można skonfigurować inne protokoły rutingu dostępne opcje zamieszczone są w wyczerpującej instrukcji projektu Quagga[2]. Inne opracowania zadań laboratoryjnych można pobrać ze strony dystrybucji (http://ruter.et.put.poznan.pl), grupa ćwiczeń będzie sukcesywnie powiększana wraz z rozwojem dystrybucji. 6. PODSUMOWANIE W artykule przedstawiono możliwości dedykowanej dystrybucji systemu Linux, ze szczególnym omówieniem pakietu Quagga. Przedstawiono podstawowe informacje dotyczące funkcjonalności wykorzystywanego pakietu. Omówiono podstawy konfiguracji oprogramowania wchodzącego w skład pakietu oraz sposoby pracy z poszczególnymi modułami. Dzięki wykorzystaniu pakietu Quagga studenci poznając, w ramach wykładów, zasady funkcjonowania routerów, mają okazję sprawdzić w praktyce, jak przebiega praca protokołów routingu. Wykorzystując dodatkowe oprogramowanie do analizy zawartości pakietów mogą weryfikować teorię w praktyce. Takie podejście do omawiania zagadnień związanych z protokołami routingu pozwala lepiej utrwalić zdobytą, w ramach zajęć teoretycznych, wiedzę. SPIS LITERATURY [1] [2] [3] [4] [5]. Dystrybucja dostepna jest pod adresem http://linux.et.put.poznan.pl Piotr Jaworski: Programowa platforma ruterowa realizowana w oparciu o komputer PC i system operacyjny OpenSource, IEiT, Poznań 2005 Kunihiro Ishiguro: Quagga. A routing software package for TCP/IP networks, http://www.quagga.net/docs/quagga.pdf, Dec 2004. Hannu Puttonen:The Code LINUX,Sveriges Television AB, 2002, film dokumentalny http://www.gentoo.org, Strona projektu Linux gentoo, Gentoo Foundation, Inc., (27.09.2005). 4/4.

(5)

Cytaty

Powiązane dokumenty

Metoda filozofowania bowiem, którą praktykuje Teilhard, streszcza się w zdaniu, które Sartre odniósł do Camusa, a które z powodzeniem można powiedzieć o

Dużo jest jeszcze zagadnień, które z pewnością nadawałyby się do książki popularyzującej Staszica i jego prace; byleby tylko była pozbawiona tak dużej

Nasuwa się przy (tym z dużą siłą pytanie: w jakim stopniu omawiany katalog odzwierciedla całość znanych materiałów Ciołkowskiego? Wstęp nie zawiera

Bibliografia dzieł sanskryckich, traktujących o astronomii i matematyce, po­ daje alfabetycznie autorów, manuskrypty, wydane teksty, tłumaczenia i opracowa­ nia

Już nieco więcej o terminologii gospodarki wodnej i bu ­ downictwa wodnego mamy w rozdziale Prace organizacji międzynarodowych nad terminologią techniczną (tutaj:

'Cieszy mnie i kolegów flisaków, że spraw ą naszych dłubanek zajął się pan magister M ieczysław Boczar, gdyż dotychczas n a próżno szukałem takich ludzi,

As discussed in the introduction, H attachment com- petes with Eley–Rideal-type abstraction reactions (see Eq. In the previous section, we have shown that multiple hydrogen

18(a) show the comparison of cogging torque waveforms under static and dynamic angular misalignment calculated by the proposed method and 3D FEM model, respectively..