Piotr Zwierzykowski, mgr inż Piotr Jaworski WYKORZYSTANIE ROUTERA PROGRAMOWEGO W LABORATORIUM SIECI TELEINFORMATYCZNYCHSesja: Kształcenie w dziedzinie elektroniki i telekomunikacji.Politehnika Poznańska
Pełen tekst
(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)
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..