Zostan administratorem sieci komputerowej cz 4(1)

background image

Sieci komputerowe

Sieci komputerowe: część czwarta

46

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

47

www.lpmagazine.org

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

Zostań administratorem

sieci komputerowej

Część czwarta (4/9): Adresy,

maski i routowanie w systemie Linux

W poprzedniej części kursu przedstawiona została metoda podziału połączenia internetowego.
Zastosowaliśmy w tym celu funkcję translacji adresów (NAT) udostępnianą przez urządzenie dedykowane
APPro 2405. W tej części cyklu zajmiemy się opisem procesu trasowania (routingu) pakietów oraz
konfiguracją komputera z zainstalowanym systemem Linux jako routera. Zapraszam do lektury!

Rafał Kułaga

W

spółczesne sieci komputerowe wy-
korzystywane m.in. w środowiskach
korporacyjnych charakteryzują się
złożoną, wielopoziomową strukturą.

Liczba węzłów w takich sieciach może sięgać nawet kil-
kunastu tysięcy, rozlokowanych w różnych krajach i po-
łączonych w tzw. intranet – korporacyjną sieć kompu-
terową, pozwalającą na łatwy dostęp do zasobów infor-
macyjno-sprzętowych. Czytelnik z pewnością ma świa-
domość, iż budowa oraz zarządzanie taką infrastrukturą
stanowi nie lada wyzwanie nawet dla doświadczonych
ekspertów sieciowych.

Informacje zawarte w trzech pierwszych częściach

cyklu pozwalają na przystąpienie do budowy niewiel-
kiej sieci lokalnej, obsługującej od kilkunastu do kil-
kudziesięciu komputerów. Z racji niewielkiego rozmia-
ru, nie było potrzeby wprowadzania podziału na podsie-
ci, zaś konfiguracja połączeń z innymi sieciami ograni-
czała się do wykorzystania techniki NAT (Network Ad-
dress Translation
) w celu podziału połączenia z interne-
tem, dostępnego za pośrednictwem interfejsu w standar-
dzie Ethernet.

Jednym z najważniejszych zadań związanych z bu-

dową i administracją złożonymi sieciami komputero-
wymi jest konfiguracja trasowania pakietów (routingu).
Pomimo zastosowania niekiedy bardzo złożonych me-
tod i protokołów, jest to proces, którego działanie jest
zrozumiałe niemalże intuicyjnie. W trakcie lektury te-
go artykułu dowiesz się, w jaki sposób możliwe jest do-
starczenie pakietu do dowolnego komputera podłączo-
nego do internetu jedynie na podstawie znajomości je-
go adresu IP. Szczegółowo omówimy również znacze-
nie masek podsieci oraz ich zastosowanie w celu wy-
dzielenia podsieci, pozwalających na zwiększenie bez-
pieczeństwa i wydajności tworzonego przez nas roz-
wiązania.

System Linux słynie z dostępności doskonałych na-

rzędzi, służących do konfiguracji funkcji związanych
z trasowaniem. Część z Czytelników z pewnością ucie-
szy wiadomość, iż dostępne są specjalizowane dystrybu-
cje, niejednokrotnie przewyższających funkcjonalnością
tańszy sprzęt sieciowy. Decydując się na wykorzystanie
komputera jako routera, musimy jednak pamiętać o ogra-
niczeniach wydajnościowych i problemach związanych

background image

Sieci komputerowe

Sieci komputerowe: część czwarta

46

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

47

www.lpmagazine.org

z bezpieczeństwem – w artykule zajmiemy
się również tymi zagadnieniami.

Informacje zawarte w tej części kursu

pozwolą Czytelnikowi na lepsze zrozumie-
nie działania sieci komputerowych, realiza-
cji zadań warstwy sieciowej modelu OSI oraz
przeprowadzenie konfiguracji statycznych
i dynamicznych metod routingu w systemie
Linux. Należy jednak pamiętać, iż nie są to
kompletne rozwiązania, gotowe do zastoso-
wania na sprzęcie działającym w sieciach fir-
mowych. Bez odpowiedniego wzmocnienia
bezpieczeństwa systemu, nasz router stałby
się bowiem łakomym kąskiem dla osób o nie-
cnych zamiarach. Tematem zwiększania bez-
pieczeństwa sieci komputerowych oraz budo-
wy firewalli zajmiemy się szczegółowo w na-
stępnej części cyklu.

Adresy IP

i maski podsieci a routowanie

Do tej pory, przypisując adresy IP kompute-
rom w naszej sieci lokalnej, dokonywaliśmy
dużego uproszczenia. Wszystkie kompute-
ry podłączone do sieci lokalnej znajdowały
się w tej samej podsieci, co mogło mieć nie-
korzystny wpływ na jej wydajność oraz bez-
pieczeństwo. Możemy temu zaradzić poprzez
wybór odpowiednich masek podsieci, wyzna-
czającej linię podziału pomiędzy częścią ad-
resu IP odpowiedzialną za identyfikację sieci
a częścią określającą numer hosta.

Adres IP a maska podsieci

Jak z pewnością pamiętasz, adres IP jest 32-
bitową dodatnią liczbą całkowitą, dla wygo-
dy zapisywaną w notacji kropkowo-dziesięt-
nej (np. 192.168.1.1). Rownież w rozległych
sieciach, takich jak internet, do określenia
odbiorcy pakietu wykorzystywany jest je-
dynie adres IP. W związku z tym, koniecz-
ne jest zapisanie w nim informacji, pozwa-
lających na odpowiednie skierowanie pa-
kietu do celu. Zwróć uwagę, iż w celu prak-
tycznego wykorzystania adresu IP w proce-
sie trasowania, konieczne jest zrezygnowa-
nie z płaskiego modelu 32-bitowej puli ad-
resów. Można to zilustrować poprzez analo-
gię do życia codziennego – niemożliwe jest
szybkie odnalezienie budynku jedynie na
podstawie znajomości jego numeru (identy-
fikator hosta), nawet jeżeli byłby on unikal-
ny w skali obszaru poszukiwań. Jeżeli jed-
nak znamy położenie ulicy, na której znaj-
duje się dany budynek (adres sieci), to je-
go odnalezienie nie będzie stanowić dla nas
problemu.

W celu rozdzielenia adresu sieci oraz

identyfikatora hosta stosuje się maski pod-

sieci. Są one 32-bitowymi liczbami całkowi-
tymi, dla wygody zapisywanymi w postaci
kropkowo-dziesiętnej (np. 255.255.255.0).
Jeżeli masz już jakieś doświadczenie w pra-
cy z sieciami komputerowymi, to z pew-
nością zauważyłeś charakterystyczny roz-
kład bitów w maskach podsieci. Po zapisa-
niu w postaci binarnej, mają one bowiem
postać ciągu jedynek, dopełnionego zerami
do rozmiaru 32 bitów. Przykładową parę ad-
res IP-maska podsieci przedstawiono na Ry-
sunku 1. Adres sieci stanowią bity, którym
w masce podsieci odpowiadają jedynki. Po-
została część adresu IP stanowi identyfika-
tor hosta.

Obliczenie, ile adresów IP w każdej

z podsieci możemy wygenerować przy za-
danej masce nie jest trudne. Dla ustalenia
uwagi przyjmijmy, iż interesująca nas ma-
ska podsieci ma wartość 255.255.255.128.
W celu weryfikacji poprawności, zapiszemy
ją w postaci binarnej: 11111111.11111111.
11111111.10000000. Widzimy, iż po ciągu
25 jedynek następuje 7 zer, wyznaczających
bity odpowiadające identyfikatorowi hosta.
Teoretyczna liczba identyfikatorów hostów
w takiej sieci wynosi 128. Liczba użytecz-
nych adresów (takich, które można przy-
pisać węzłom) wynosi 126. Mniejsza licz-
ba adresów użytecznych spowodowana jest
zarezerwowaniem pierwszego i ostatniego
identyfikatora hosta na potrzeby adresu sie-
ci oraz adresu broadcast. O transmisji bro-
adcastowej powiemy więcej w dalszej czę-
ści artykułu.

Uważny Czytelnik z pewnością zada te-

raz pytanie: No dobrze, ale co daje nam zna-
jomość adresu sieci? W jaki sposób podział
adresu IP jest wykorzystywany w trakcie tra-
sowania?
. Odpowiedź na to pytanie wymaga
przyjrzenia się działaniu sieci lokalnej oraz
zastanowieniu się, kiedy pakiet opuszcza sieć

fizyczną. Okazuje się, iż w trakcie wysyła-
nia pakietu adres odbiorcy porównywany jest
z adresem sieci, w której znajduje się nadaw-
ca. W przypadku gdy oba węzły znajdują się
w tej samej sieci, nie ma potrzeby przesyła-
nia pakietu za pośrednictwem routera – wy-
starczy w tym celu sieć fizyczna. Wykorzy-
stanie trasowania jest zatem konieczne jedy-
nie w przypadku, gdy komputery znajdują się
w różnych sieciach.

Wyznaczanie

adresu sieci i identyfikatora hosta

Wyjaśnienia może wymagać sposób wyzna-
czenia adresu sieci oraz identyfikatora ho-
sta. Dla osób obeznanych z algebrą Boole-
'a jest to z pewnością oczywiste, jednak dla
pewności przedstawimy tu algorytm postę-
powania.

Przed przystąpieniem do wyznaczenia

adresu sieci oraz identyfikatora hosta, należy
adres IP oraz maskę podsieci zapisać w po-
staci binarnej. Następnie wykonujemy ope-
rację logiczną AND na odpowiadających bi-
tach adresu IP oraz maski podsieci (wartości
podstawowych funktorów logicznych zosta-
ły zebrane w tabeli Podstawowe funktory lo-
giczne
), wyznaczając tym samym adres sie-
ci. Pozostała część adresu IP stanowi identy-
fikator hosta.

Wyznaczanie adresu sieci oraz identyfi-

katora hosta jest bardzo proste, dostępnych
jest również wiele programów wyręczają-
cych nas w tym zadaniu. Jednym z podstawo-
wych narzędzi jest kalkulator adresów IP ip-
calc,w postaci skryptów na stronach interne-
towych (Rysunek 2).

Klasy adresów

IP oraz routowanie bezklasowe

W jednej z pierwszych części cyklu powie-
dzieliśmy, iż w początkach internetu korzy-

Tabela 1.

Podstawowe funktory logiczne

p

q

p AND q

p OR q

NOT p

p XOR q

1

1

1

1

0

0

1

0

0

1

0

1

0

1

0

1

1

1

0

0

0

0

1

0

Tabela 2.

Klasy adresów IP

Klasa

Pierwszy oktet

Zakres pierw-
szego oktetu

Liczba
sieci

Liczba hostów

Typ sieci

A

0XXXXXXX

1 - 126

126

16.777.214

Bardzo duże

B

10XXXXXX

128 - 191

16.384

65.534

Średniej wiel-
kości

C

110XXXXX

192 - 223

2.097.152 254

Małe

background image

48

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

49

www.lpmagazine.org

Sieci komputerowe

Sieci komputerowe: część czwarta

stano z tzw. klas adresów IP. Podział adresów
IP na klasy pozornie upraszczał budowę sie-
ci komputerowych, znacznie utrudniał jed-
nak efektywne zagospodarowanie puli adre-
sów. Wraz z rozwojem internetu pomysł ten
został porzucony na rzecz bardziej efektyw-
nego rozwiązania umożliwiającego przypisy-
wanie dowolnych masek podsieci. Wykorzy-
stanie routowania bezklasowego przyczyniło
się również do zmniejszenia tempa wyczer-
pywania się puli 32-bitowych adresów IPv4
oraz uproszczenia tablic routowania przecho-
wywanych na routerach (więcej na temat ta-
blic routingu powiemy w dalszej części ar-
tykułu).

Bezklasową metodę adresacji oraz wy-

korzystującą ją metodologię routingu okre-
śla się skrótem CIDR (Classless Inter-Do-
main Routing
). Głównym założeniem meto-
dologii CIDR jest stosowanie masek podsie-
ci o dowolnej liczbie bitów określających ad-
res sieci. Jest to przeciwieństwo adresowania
klasowego, w którym maska podsieci składa
się z 8-bitowych bloków (definiujących kla-
sy adresów: A, B oraz C). Aby dostosować

sposób zapisuj maski sieciowej do nowej me-
todologii, przyjęto formę zapisu adres_ip/N,
gdzie N oznacza liczbę bitów maski określa-
jących adres sieci.

Opis szczegółów metodologii CIDR

znacznie wykracza poza zakres tego artyku-
łu – do pełnego zrozumienia informacji za-
wartych w następnych paragrafach wystarczy
ogólne zrozumienie znaczenia masek podsie-
ci oraz wprowadzanego przez nie podziału
przestrzeni adresów.

Adresy

i komunikacja broadcast/multicast

Tworząc podział na podsieci powinniśmy pa-
miętać, iż użyteczna liczba identyfikatorów
jest mniejsza od liczby teoretycznej. Jest to
spowodowane wykorzystaniem pierwszego
adresu puli jako adresu sieci oraz ostatnie-
go adresu jako adresu broadcast, wykorzysty-
wanego w transmisji rozgłoszeniowej. Czym
jest oraz w jakim celu stosowana jest transmi-
sja rozgłoszeniowa?

Wiele protokołów i aplikacji wyma-

ga możliwości wysłania pakietu do wszyst-

kich komputerów w podsieci. Jednym
z głównych zastosowań transmisji broadca-
stowej są aplikacje oraz protokoły wyma-
gające informacji o strukturze sieci. Teore-
tycznie możliwe byłoby ręczne wprowadza-
nie odpowiednich danych przez użytkow-
nika, jednak byłoby to rozwiązanie bardzo
nieefektywne oraz podatne na błędy. Pro-
ces ten możemy usprawnić, rozgłaszając za-
pytanie a następnie przetwarzając odpowie-
dzi pochodzące od hostów. Jednym z przy-
kładów wykorzystania transmisji rozgłosze-
niowej na poziomie warstwy sieciowej mo-
delu OSI są protokołu wymiany informacji
o trasowaniu, wykorzystywane w routingu
dynamicznym.

Zwróćmy uwagę, iż przesyłanie dużych

ilości pakietów broadcastowych może przy-
czynić się do znacznego spadku wydajno-
ści sieci – każdy pakiet musi bowiem zo-
stać odebrany i przetworzony przez każdą
z maszyn znajdujących się w danej podsie-
ci. Zwiększenie wydajności oraz zmniejsze-
nie nadmiarowego ruchu jest jedną z przy-
czyn wydzielania podsieci. Dzięki odpo-
wiedniej konfiguracji routerów (którą zaj-
miemy się w następnych paragrafach), bę-
dziemy mogli ograniczyć komunikację po-
między podsieciami do wymaganych usług
i protokołów.

Wyznaczanie adresu broadcast na pod-

stawie zapisu binarnego maski podsieci oraz
adresu IP jest bardzo proste – na adresie IP
wykonujemy bitowe OR (lub) z zanegowaną
(NOT) maską sieciową. Upraszczając, moż-
na powiedzieć, iż w adresie IP zamieniamy
wszystkie bity odpowiadające identyfikato-
rowi hosta na 1, pozostawiając część odpo-
wiadającą adresowi sieci bez zmian. Widać
więc, że adres rozgłoszeniowy jest najwyż-
szym identyfikatorem hosta w danej pod-
sieci.

Protokół IP dopuszcza również przesy-

łanie danych do wielu odbiorców przy wy-
korzystaniu multicastu. W przeciwieństwie
do transmisji rozgłoszeniowej, w transmisji
multicastowej dane odbierane są tylko przez
odpowiednio skonfigurowane hosty. Istnieje
wiele metod pozwalających na realizację ta-
kiego przesyłu danych, brak jest jednak ja-
sno określonych i uznanych standardów. Za-
gadnienia związane z transmisją multicasto-
wą znacznie wykraczają poza zakres kursu,
tak więc nie będziemy się nimi dłużej zaj-
mować.

Routowanie – podstawy

Po zapoznaniu z podstawowymi informacja-
mi dotyczącymi struktury adresów IP, ma-

Rysunek 1.

Przykładowa para adres IP – maska podsieci

��������������������������������������������������������������������������������

�������������������������������������������������������������������

�����������

��������

���

�����

���������

���

������������������������

�������������

Rysunek 2.

Jedno z narzędzi typu ipcalc, dostępne poprzez przeglądarkę internetową

background image

48

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

49

www.lpmagazine.org

Sieci komputerowe

Sieci komputerowe: część czwarta

sek podsieci oraz metodologii bezklasowej
CIDR, możemy przystąpić do omówienia
podstawowych zagadnień związanych z pro-
cesem trasowania pakietów.

O dużej złożoności routowania najlepiej

świadczy obszerność publikacji omawiają-
cych to zagadnienie. Informacje zawarte
w tym artykule nie wyczerpują nawet pod-
staw trasowania – ich zadaniem jest raczej
stworzenie płaszczyzny, na której możliwe
będzie zrozumienie działania przykładów za-
wartych w dalszej części artykułu. Osobom
zainteresowanym szczegółami routingu oraz
działaniem protokołów wymiany informacji
o trasach polecam zapoznanie się z informa-
cjami zawartymi na stronach wymienionych
w ramce W Sieci oraz odpowiednimi doku-
mentami RFC.

Dlaczego konieczne

jest trasowanie pakietów?

Zanim przejdziemy do opisu oraz konfigu-
racji routingu w systemie Linux, zastano-
wimy się dlaczego trasowanie pakietów jest
niezbędne w celu budowy wydajnych i bez-
piecznych sieci komputerowych. W pierw-
szej części cyklu omówiliśmy bowiem pod-
stawowe urządzenia wykorzystywane w sie-
ciach komputerowych, wśród których znaj-
dował się most (network bridge), również
służący do łączenia sieci. Pomimo iż urzą-
dzenia tego typu są obecnie bardzo rzadko
wykorzystywane, warto zapoznać się z za-
sadą ich działania. Jakie są więc podstawo-
we różnice pomiędzy trasowaniem a mostko-
waniem sieci?

Przewaga pierwszego z wymienionych

rozwiązań okaże się oczywista, gdy przypo-
mnimy sobie zasadę działania mostów. Jak
z pewnością pamiętasz, są one urządzenia-
mi warstwy drugiej modelu OSI, wykorzy-
stującymi adresy fizyczne w procesie podej-
mowania decyzji o przekazywaniu ramek.
Po odebraniu ramki Ethernet przez most,
sprawdzany jest jej adres przeznaczenia
– jeżeli odbiorca znajduje się w tym samym
segmencie sieci co nadawca, most ignoru-
je ją. Jeżeli odbiorca znajduje się w innym
segmencie, most przesyła ją dalej. Po ode-
braniu oraz przetworzeniu ramki przez od-
biorcę, most przekazuje odpowiedź do sie-
ci w której znajdował się interfejs sieciowy
nawiązujący połączenie. W trakcie opisywa-
nego procesu tworzona jest tzw. tabela mo-
stowania, wykorzystywana w trakcie podej-
mowania decyzji o przekazywaniu pakietów
pomiędzy segmentami. Przekazywanie pa-
kietów przy pomocy mostów jest znacznie
szybsze niż w przypadku średniej klasy ro-

uterów. Dlaczego więc zrezygnowano z ich
wykorzystania? Okazuje się, że mosty nie
zapewniają dostatecznej kontroli nad pracą
sieci oraz utrudniają jej rozbudowę i ograni-
czają skalowalność.

Zastanówmy się, co stanie się, gdy do

mostu dotrze ramka wysłana w trybie bro-
adcastowym. Ramki tego typu będą zawsze
przesyłane pomiędzy segmentami. Powodu-
je to powstanie dużej ilości nadmiarowego
ruchu, mogącego drastycznie obniżyć wy-
dajność sieci. Obecnie mosty sieciowe mają
znaczenie jedynie historyczne – zostały nie-
mal całkowicie wyparte przez routery (z nie-

co innym typem mostu zapoznamy się w czę-
ści cyklu poświęconej sieciom bezprzewodo-
wym). Warto jednak zapoznać się z zasadą
ich działania, ponieważ pozwala to na lepsze
zrozumienie routowania.

Przebieg routowania

i śledzenie pakietów

W sieciach opartych o protokół IP, każde
urządzenie podejmuje decyzje o routowa-
niu samodzielnie. Oznacza to, iż droga pa-
kietu od nadawcy do adresata składa się
z wielu przeskoków, odpowiadających prze-
słaniu przez odrębne węzły. Najważniejszym

Listing 1.

Konfiguracja iptables do podziału łącza poprzez translację adresów

#!/bin/sh

WAN_INTERFACE

=

"eth0"

#załadowanie modułów jądra

modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe iptable_mangle
modprobe ipt_MASQUERADE
modprobe ipt_nat_ftp
modprobe ipt_nat_irc
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

#usunięcie istniejących reguł i łańcuchów

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

#akceptujemy wszystkie przychodzące pakiety

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT

#konfiguracja dla interfejsu lo

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -i lo -j ACCEPT

#konfiguracja NAT dla adresu przyznanego przez DNS

iptables -t nat -A POSTROUTING -o

$WAN_INTERFACE

-j MASQUERADE

#konfiguracja NAT dla adresu stałego

iptables -t nat -A POSTROUTING -o

$WAN_INTERFACE

-j SNAT –to-source

adres_ip

background image

50

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

51

www.lpmagazine.org

Sieci komputerowe

Sieci komputerowe: część czwarta

z urządzeń odpowiadających za przesyłanie
pakietów jest router, którego rolę może peł-
nić zarówno specjalistyczny sprzęt, jak i stan-
dardowe komputery PC, wyposażone w od-
powiednią liczbę interfejsów sieciowych oraz
oprogramowanie.

Przy wysłaniu pakietu, komputer po-

dejmuje decyzje o sposobie jego trans-
misji. Jeżeli adres odbiorcy znajduje się
w tej samej sieci, co nadawca (określo-
nej według zasad podanych we wcześniej-
szych paragrafach), pakiet przesyłany jest
bez udziału routera – do jego dostarcze-
nia wystarcza sieć fizyczna. Wykorzysta-
nie routera ma miejsce wtedy, gdy nadaw-
ca i odbiorca znajdują się w różnych sie-
ciach – w takim przypadku pakiet jest prze-
syłany na adres tzw. domyślnej bramy. Jej
funkcje pełni router znajdujący się najbli-
żej nadawcy w topologii fizycznej sieci. Po
odebraniu pakietu, router podejmuje decy-
zje o trasowaniu w bardzo podobny sposób
– w tablicy routowania odnajdywany jest
wpis odpowiadający adresowi następnego
routera, do którego pakiet powinien zostać
skierowany.

Dzięki takiemu przebiegowi procesu

routingu możliwe jest znaczne uproszcze-
nie tablic routowania (więcej informacji na
temat tablic routowania znajdziesz w na-
stępnym paragrafie) oraz struktury sieci.
W przypadku dużych sieci możemy bowiem
dostrzec wyraźną hierarchizację – routery
znajdujące się najbliżej końcówek siecio-
wych (czyli interfejsów sieciowych) obsłu-

gują ruch o znacznie mniejszym natężeniu,
niż routery znajdujące się w obrębie rdzenia
sieci. Umożliwia to dobranie sprzętu najle-
piej odpowiadającego wymaganiom danego
obszaru sieci.

Mówi się, że jeden obraz oznacza wię-

cej niż tysiąc słów – w takim razie sprawdź-
my, jak w praktyce wygląda trasa pakietu
od naszego komputera do dowolnego z ser-
werów internetowych. Możemy w tym celu
wykorzystać program traceroute, dostępny
standardowo w każdej dystrybucji Linuksa.
Działanie tego narzędzia opiera się na umie-
jętnym wykorzystaniu protokołu ICMP (In-
ternet Control Message Protocol
), służące-
go do przesyłania wiadomości kontrolnych
(m.in. komunikatów o błędach). Traceroute
wykorzystuje komunikaty typu ICMP Echo
Request
, czyli takie same jak program ping.
Różnica polega na wartościach czasu ży-
cia pakietu (TTL – Time To Live), określa-
jących maksymalną liczbę routerów, przez
które przejść może pakiet zanim zostanie on
porzucony (co zapobiega powstawaniu tzw.
pętli routowania). Pierwszy pakiet wysyła-
ny przez traceroute (z wartością TTL rów-
ną 1) zostaje odebrany przez naszą bramę
domyślną, następuje zmniejszenie wartości
TTL, porzucenie pakietu i wysłanie komu-
nikatu o błędzie TTL Exceeded (przekrocze-
nie czasu życia pakietu). Program tracero-
ute odbiera ów komunikat i wysyła następ-
ny pakiet, tym razem z TTL równym 2. Pa-
kiet ten dociera jeden skok bliżej celu niż
pakiet pierwszy, po czym odebrany zosta-

je komunikat o błędzie pochodzący od dru-
giego routera. Adresy IP kolejnych route-
rów przekazujących pakiet są wyświetla-
ne na ekranie. Czasami zdarza się jednak,
iż konfiguracja któregoś z routerów nie ze-
zwala na odpowiadanie na pakiety genero-
wane przez program traceroute – w takim
przypadku adres routera nie zostanie wy-
świetlony.

Tablice routingu

– ich tworzenie i zastosowanie

Po odebraniu pakietu, router określa adres
następnego urządzenia sieciowego, do któ-
rego powinien zostać przesłany pakiet. Może
nim być kolejny router lub interfejs sieciowy
odbiorcy pakietu. Informacje wykorzystywa-
ne w trakcie trasowania pakietów zapisane są
w tzw. tablicach routowania.

Tablica routowania zawiera adresy IP ro-

uterów pod które należy przesyłać pakiety
skierowane do określonych odbiorców. Wi-
dać więc, iż w tablicy tej adres IP odbior-
cy służy jako klucz przy wyszukiwaniu ad-
resu następnego skoku. Każda z tablic zawie-
ra również tzw. adres domyślny, wskazujący
na router posiadający pełniejszą tablicę ro-
utingu – wykorzystywany jest on w sytuacji,
gdy nie odnaleziono wpisu odpowiadającego
sieci docelowej.

Zastanawiasz się teraz pewnie nad tym,

w jaki sposób tworzone są tablice routowa-
nia – czy wpisy wprowadzane są przez admi-
nistratora sieci, czy też tworzone są w sposób
automatyczny w trakcie pracy sprzętu (po-
dobnie jak w przypadku mostów)? Okazu-
je się, iż wykorzystywane są obydwie z tych
metod: statyczna oraz dynamiczna.

W routingu statycznym, tablica routowa-

nia wprowadzana jest w całości przez admi-
nistratora sieci. Dzięki temu uzyskujemy pe-
łen determinizm trasowania, a co za tym idzie
– większą wydajność i łatwiejsze rozwiązy-
wanie problemów. W routingu statycznym
każdy z routerów podejmuje decyzje o tra-
sowaniu w pełni samodzielnie – routery nie
wymieniają się informacjami o stanie łącz, co
uniemożliwia tworzenie rozwiązań korzysta-
jących z redundancji.

W routingu dynamicznym, routery wy-

mieniają się informacjami o trasowaniu (wy-
korzystywane są w tym celu tzw. protokoły
wymiany informacji o trasowaniu). Dzięki
temu możliwe jest tworzenie łącz redundant-
nych, zapewniających łączność w sytuacjach
awaryjnych. Jednym z najważniejszych pro-
blemów, pojawiających się przy zastosowa-
niu routingu dynamicznego jest indetermi-
nizm, wynikający z faktu, iż router polega na

Rysunek 3.

Algorytm routingu w metodologii CIDR

���

���

���

���

���������������������

�������������������������������������

��������������������������������������

����������������������������������

�����������������������

���������������������������

�������

���������������������������

���������

����������������������

���������

background image

50

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

51

www.lpmagazine.org

Sieci komputerowe

Sieci komputerowe: część czwarta

informacjach otrzymanych od innych route-
rów działających w sieci.

Warto zastanowić się, kiedy uzasadnione

jest stosowanie każdej z wymienionych me-
tod. Najczęściej podawana reguła mówi, że
routing dynamiczny powinien być stosowa-
ny tam, gdzie jest to konieczne, w pozosta-
łych routerach zalecana jest konfiguracja tra-
sowania statycznego.

Algorytm routingu

Routery w trakcie kierowania pakietów re-
alizują ściśle określony algorytm, którego
uproszczona wersja przedstawiona została
na Rysunku 3.

Po odebraniu pakietu, router przeszuku-

ję tablicę routingu w cel odnalezienia adre-
su następnego skoku, odpowiadającego sieci
w której znajduje się adres odbiorcy. Przy
wyborze trasy mogą być brane pod uwagę do-
datkowe kryteria, takie jak np. obciążenie da-
nych tras. W tym kroku możliwe jest również
wykorzystanie łączy redundantnych (zapaso-
wych), umożliwiających zapewnienie ciągło-
ści działania sieci.

Jeżeli odnaleziony zostanie wpis odpo-

wiadający sieci odbiorcy, pakiet przesyłany
zostaje do zdefiniowanego routera. W przy-
padku gdy nie odnaleziono adresu następne-
go routera, pakiet wysyłany jest na adres ro-
utera domyślnego (bramy domyślnej) – jest
nią zazwyczaj router posiadający większą
wiedzę na temat struktury sieci. Jeżeli brak
jest zdefiniowanej trasy domyślnej, pakiet zo-
staje odrzucony, po czym do nadawcy zosta-
je wysłany komunikat o błędzie (Destination
Unreachable
).

Określanie umiejscowienia routerów

Jednym z największych problemów, jakie na-
potykają początkujący konstruktorzy sieci
komputerowych, jest określenie odpowied-
niego położenia routerów w sieci. Nie jest to
bynajmniej proste zadanie, ponieważ wyma-
ga od nas dobrej znajomości charakteru i na-
tężenia komunikacji pomiędzy węzłami pod-
łączonymi do naszej sieci.

Zanim przystąpimy do określenia roz-

mieszczenia routerów w strukturze naszej
sieci, koniecznie powinniśmy dokonać po-
działu na podsieci zgodnie z informacjami
zawartymi w poprzednich paragrafach. Kom-
putery, które często wymieniają ze sobą da-
ne powinny znajdować się w jednej podsieci,
te zaś powinny być łączone ze sobą poprzez
zastosowanie odpowiednio skonfigurowa-
nych routerów. Więcej informacji na ten te-
mat znajdziesz w paragrafie Routing pomię-
dzy podsieciami
.

System Linux jako router

W dużych przedsiębiorstwach rolę route-
rów i firewalli pełnią zazwyczaj odpowiednie
urządzenia, gwarantujące wysoką niezawod-
ność oraz wydajność. Oprócz tego, niewąt-
pliwą zaletą sprzętu dedykowanego jest ła-
twość obsługi oraz duże możliwości konfigu-
racji. Sprzęt producentów takich jak np. CI-
SCO może być również łatwo łączony w kla-
stry i montowany w tzw. rackach.

Bardzo często wydajność sprzętu nie jest

jednak priorytetem – w przypadku niewiel-
kich przedsiębiorstw znacznie większe zna-
czenie może mieć cena urządzenia lub kosz-
ty ewentualnej rozbudowy sieci. W środowi-
skach tego typu sprawdzą się proste urzą-
dzenia wbudowane pełniące funkcję route-
ra lub komputery z zainstalowanym syste-
mem Linux.

W systemach korzystających z jądra Li-

nux, za podstawowe funkcje związane z ob-
sługą sieci odpowiada jądro systemu. Kon-
figuracja tych mechanizmów kernela odby-
wa się przy pomocy narzędzi działających
w przestrzeni użytkownika, takich jak np.
iptables. Część bardziej zaawansowanych
funkcji, jak np. obsługa protokołów routingu
dynamicznego odbywa się w dużym stopniu
w przestrzeni użytkownika.

Chciałbym teraz zwrócić Twoją uwagę,

drogi Czytelniku, na zalety i wady zastoso-
wania systemu Linux jako routera. Do naj-
ważniejszych zalet takiego rozwiązania mo-
żemy z pewnością zaliczyć:

• Niski koszt – ponosimy jedynie koszt

sprzętu komputerowego – wszelkie nie-
zbędne oprogramowanie jest darmowe;

• Wysoki poziom bezpieczeństwa – odpo-

wiednio skonfigurowany system Linux
charakteryzuje się bardzo wysokim po-
ziomem bezpieczeństwa;

• Wysoka wydajność – oczywiście zależna

od zainstalowanego sprzętu, liczby ob-
sługiwanych komputerów oraz rozmiaru
tablic routowania;

• Łatwość rozbudowy i aktualizacji – ak-

tualizacja oprogramowania zainstalowa-
nego na serwerze jest znacznie prostsza
niż uaktualnienie firmware urządzenia
wbudowanego;

• Możliwość uruchomienia dodatkowych

usług – oprócz obsługi routowania,
nasz serwer może być jednocześnie fi-
rewallem oraz np. serwerem LDAP lub
WWW. Ze względów bezpieczeństwa
nie jest to jednak polecane rozwiązanie.

Wykorzystanie systemu Linux jako routera
nie jest jednak pozbawione wad, spośród któ-
rych najpoważniejsze to:

• Konfiguracja trudniejsza niż w przypad-

ku urządzeń dedykowanych;

• Konieczność ciągłej aktualizacji opro-

gramowania (niezbędna w celu utrzy-
mania należytego poziomu bezpieczeń-
stwa);

• Wydajność niższa niż urządzeń dedyko-

wanych.

Dzięki odpowiedniej konfiguracji oprogra-
mowania możemy zniwelować powyższe
niedogodności. Dodatkowo dostępne są spe-
cjalizowane dystrybucje Linuksa, dostosowa-
ne do pełnienia funkcji routera.

Listing 2.

Konfiguracja demonów Quagga - /etc/quagga/daemons

zebra

=yes

bgpd

=no

ospfd

=no

ospf6f

=no

ripd

=yes

ripngd

=no

isisd

=no

Listing 3.

Konfiguracja demona Zebra – /etc/quagga/zebra.conf

hostname router
password haslo

enable

password haslo

service advanced-vty
log file /var/log/quagga/zebra.log
access-list localhost permit 127.0.0.1/32
access-list localhost deny any
line vty
access-class localhost

background image

52

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

53

www.lpmagazine.org

Sieci komputerowe

Sieci komputerowe: część czwarta

Specjalizowane

dystrybucje Linuksa

Najważniejsze funkcje sieciowe systemów
Linuksowych realizowane są przez jądro, co
pozwala na skonfigurowanie dowolnej dys-
trybucji do pracy jako router. Należy jednak
pamiętać, iż w celu optymalnego wykorzysta-
nia możliwości sprzętu oraz zapewnienia na-
leżytego poziomu bezpieczeństwa i stabilno-
ści, konieczne jest dokonanie dużych zmian
w systemie. Oprócz najprostszych czynno-
ści związanych z hardeningiem systemu, ta-
kich jak wyłączenie niepotrzebnych usług,
monitorowanie stanu portów oraz zastoso-
wanie systemów IPS/IDS (Intrusion Protec-
tion System/Intrusion Detection System
), ko-
nieczne jest zazwyczaj dokonanie rekompila-
cji jądra oraz wielu innych, często niełatwych
czynności.

Na internetowych listach dyskusyjnych

często zadawane jest pytanie, która dystry-
bucja Linuksa nadaje się najlepiej do zasto-
sowania jako router. Nie istnieje jedna od-
powiedź na to pytanie. Wszystko zależy bo-
wiem od indywidualnych wymagań danego
środowiska oraz wiedzy administratora. Ist-
nieje jednak grupa specjalizowanych minidy-
strybucji, pozwalających szybko skonfiguro-
wać nawet bardzo zaawansowane funkcje fil-
trowania i routowania pakietów. Najpopular-
niejsze z nich to:

Freesco – jedna z najstarszych minidy-

strybucji Linuksa, przeznaczona do peł-
nienia funkcji routera. Nazwa Freesco
oznacza, iż ambicją deweloperów tej
dystrybucji jest zapewnienie wolnej al-
ternatywy dla sprzętu sieciowego CI-
SCO (Free + (CI)SCO). Podstawowa
wersja Freesco mieści się na dyskiet-
ce, dodatkowe moduły możemy wczy-
tać po uruchomieniu systemu; dostęp-
na jest również wersja służąca do insta-

lacji na dysku twardym. Zaletą dystry-
bucji Freesco jest bardzo wysoki poziom
bezpieczeństwa oraz ekstremalnie małe
wymagania sprzętowe. Najnowszą wer-
sję Freesco znajdziesz na stronie http:
//www.freesco.org/
;

Pyramid Linux – minidystrybucja Li-

nuksa przeznaczona do zastosowania w
sieciowych (w szczególności bezprze-
wodowych) systemach wbudowanych
kompatybilnych z architekturą x86. Jed-
ną z największych zalet Pyramid Linuk-
sa jest kompatybilność z Ubuntu – ozna-
cza to, iż instalacja dodatkowych pakie-
tów nie będzie sprawiać problemów. Ob-
razy dystrybucji (przeznaczone do zapi-
sania np. na karcie CF wykorzystywanej
w routerze) znajdziesz na stronie http:
//dl.metrix.net/support/dist/
;

Endian Firewall – minidystrybucja Li-

nuksa przeznaczona do zastosowania
jako firewall oraz router. Na szczegól-
ną uwagę zasługuje bardzo wygodny,
przeglądarkowy interfejs użytkowni-
ka oraz oferta urządzeń wbudowanych
z zainstalowanym systemem Endian Fi-
rewall. Więcej informacji na temat tej
dystrybucji znajdziesz na stronie http:
//www.endian.com/en/
;

IPCop – minidystrybucja Linuksa prze-

znaczona do zastosowania jako fire-
wall oraz router. Zawiera wygodny in-
terfejs konfiguracyjny obsługiwany
przez przeglądarkę. W dystrybucji IP-
Cop bardzo ciekawie rozwiązano przy-
dzielanie funkcji interfejsom – określa-
ne są one przy pomocy tzw. kolorów in-
terfejsu. Najnowszą wersją dystrybu-
cji IPCop znajdziesz na stronie http:
//www.ipcop.org/
.

Wszystkie z wymienionych dystrybucji cha-
rakteryzują się niskimi wymaganiami sprzę-

towymi i wysokim poziomem bezpieczeń-
stwa. Dystrybucje te są również przystoso-
wane do uruchamiania z kart pamięci flash,
co pozwala na budowę wydajnych urządzeń
sieciowych o niskim poborze prądu.

W dalszej części artykułu zapoznamy się

z przebiegiem konfiguracji funkcji routingu
w systemie Linux. Nie będziemy odwoły-
wali się do konkretnych dystrybucji (chyba,
że będzie to konieczne), lecz przedstawimy
uniwersalne rozwiązania. Osobom zaintere-
sowanym budową routera w oparciu o mini-
dystrybucje polecam zapoznanie się z infor-
macjami zawartymi na ich stronach interne-
towych – często zawierają one narzędzia uła-
twiające konfigurację funkcji routingu. Je-
żeli jednak opanujesz konfigurację routerów
za pomocą poleceń opisanych w dalszej czę-
ści artykułu, to ich wykorzystanie będzie dla
Ciebie bardzo proste.

Niezbędne pakiety

Większość dystrybucji Linuksa zawiera pod-
stawowe pakiety niezbędne do obsługi traso-
wania w domyślnej instalacji. Przed przystą-
pieniem do wykonywania czynności opisa-
nych w następnych paragrafach, powinieneś
upewnić się, że w Twoim systemie zainstalo-
wane są następujące narzędzia:

net-tools – pakiet zawierający podsta-

wowe narzędzia służące do konfiguracji
podsystemu sieciowego jądra;

iproute2 – pakiet zawierający ulepszo-

ne wersje narzędzi zawartych w pakiecie
net-tools oraz dodatkowe programy, słu-
żące do obsługi funkcji QoS, kształtowa-
nia ruchu sieciowego itp.;

Quagga – pakiet zawierający implemen-

tację protokołów routingu dynamicznego
(m.in. RIP i OSPF).

Nie będziemy tu opisywać procesu instalacji
poszczególnych pakietów – są one bowiem
dostępne w repozytoriach wszystkich dystry-
bucji. Jeżeli zdecydujesz się na własnoręczne
budowanie aplikacji ze źródeł, to bardzo wie-
le przydatnych informacji znajdziesz w ich
dokumentacjach.

Konfiguracja bramy domyślnej

Zanim przystąpimy do opisu konfigura-
cji routera, zastanówmy się, w jaki spo-
sób komputery znajdujące się w naszej sie-
ci będą wiedziały, które urządzenie pełni
jego funkcje. Ma to niebagatelne znacze-
nie, ponieważ nadawca pakietu musi znać
adres urządzenia, pod które pakiet zosta-
nie przekazany.

Listing 4.

Konfiguracja demona RIPD – /etc/quagga/ripd.conf

hostname router
password haslo

enable

password haslo

router rip
network eth0
redistribute static
redistribute connected
service advanced-vty
log file /var/log/quagga/ripd.log
access-list loaclhost permin 127.0.0.1/32
access-list localhost deny any
line vty
access-class localhost

background image

52

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

53

www.lpmagazine.org

Sieci komputerowe

Sieci komputerowe: część czwarta

Każdy z interfejsów, jeżeli ma mieć

możliwość komunikacji z adresami spo-
za sieci lokalnej, musi posiadać określony
adres domyślnej bramy (default gateway),
określający router, do którego wysyłane bę-
dą pakiety skierowane do adresów spoza sie-
ci lokalnej. W systemie Linux, w celu okre-
ślenia adresu domyślnej bramy należy wy-
dać polecenie

route add default gw 192.168.1.1
eth0

gdzie

192.168.1.1

jest adresem routera,

eth0

– nazwą interfejsu sieciowego. Należy

mieć na uwadze fakt, iż adres routera musi
należeć do tej samej podsieci, co nasz inter-
fejs. Zmiany wprowadzane przy użyciu na-
rzędzia route nie są jednak trwałe – obowią-
zują do czasu ponownego uruchomienia sys-
temu. Trwałą zmianę adresu bramy można
uzyskać poprzez dodanie linii

gateway 192.168.1.1

w plikach konfiguracyjnych interfejsów (ich
położenie różni się w zależności od dys-
trybucji; dla Debiana jest to /etc/network/
interfaces
). Możliwe jest również użycie na-
rzędzi graficznych dostarczanych przez dys-
trybucję.

Routing pomiędzy podsieciami

Jedną z najczęściej spotykanych konfi-
guracji jest router z wieloma interfejsami
sieciowymi, z których każdy znajduje się
w odrębnej sieci (mogą to być np. róż-
ne sieci lokalne). W takiej sytuacji jest on
zazwyczaj wykorzystywany do trasowa-
nia pakietów pomiędzy podsieciami. Aby
umożliwić komunikację pomiędzy siecia-
mi, wystarczy odpowiednie skonfiguro-
wanie bram domyślnych dla komputerów
z poszczególnych podsieci oraz aktywowa-
nie przekazywania pakietów na routerze.
Przekazywanie pakietów można aktywo-
wać za pomocą polecenia

echo 1 > /proc/sys/net/ipv4/ip_
forward

Jeżeli chcemy, aby przekazywanie pakietów
było aktywowane przy uruchomieniu kompu-
tera, do pliku /etc/sysctl.conf należy dodać li-
nijkę

ip.ipv4.ip_forward = 1

.

Konfiguracja routera jest nieco bardziej

skomplikowana w sytuacji, gdy podsieci nie
są podłączone do tego samego routera. W ta-
kim przypadku, konieczne jest dodanie odpo-

wiednich wpisów do tablic routingu. Możesz
użyć w tym celu narzędzia route:

route add -net adres_sieci/maska gw
adres_ip_interfejsu nazwa_interfejsu

Znaczenie poszczególnych opcji może wyma-
gać objaśnienia. Parametr

-net adres_sieci/

maska

określa adres sieci docelowej wraz z jej

maską. Parametr

gw adres_ip_interfejsu

określa adres IP interfejsu routera, za pomo-
cą którego przekazywane będą pakiety;

na-

zwa_interfejsu

oznacza symboliczną nazwę

interfejsu (np. eth2). Usunięcie zdefiniowanych
tras sprowadza się do wydania polecenia

route

del -net adres_sieci/maska

.

Zmiany wprowadzone za pomocą pole-

cenia route add obowiązują do czasu ponow-
nego uruchomienia systemu. Aby trwale zde-
finiować tabelę routingu, należy wprowadzić
zmiany w plikach konfiguracyjnych odpo-
wiednich interfejsów sieciowych. Nową tra-
sę dodajemy za pomocą linii

up route add -net adres_sieci/
maska gw adres_ip_interfejsu nazwa_
interfejsu

Znaczenie opcji konfiguracyjnych jest takie
samo jak powyżej. W zależności od dystry-
bucji, położenie plików konfiguracyjnych
oraz składnia poleceń może się różnić. Po-
wyżej podany został opis dla dystrybucji De-
bian. W internecie znajdziesz wiele dodatko-
wych informacji na temat konfiguracji routin-
gu w innych dystrybucjach.

Konfiguracja translacji adresów

W trzeciej części cyklu pokazaliśmy, w jaki
sposób skonfigurować usługę NAT przy uży-
ciu urządzenia dedykowanego APPro 2405.
W tym paragrafie dowiemy się, jak uzyskać
ten sam efekt poprzez zastosowanie progra-
mu iptables.

Skrypt dokonujący odpowiedniej konfi-

guracji przedstawiony został na Listingu 1.
Pomimo znacznej objętości, jego działanie
jest bardzo proste. W pierwszej części skryp-
tu definiujemy zmienną oznaczającą nazwę
interfejsu WAN, za pomocą którego wysyła-
ne będą pakiety. Następnie wczytujemy nie-
zbędne moduły jądra. Jeżeli masz pewność,
że wymienione moduły są wbudowane w wy-
korzystywane przez Ciebie jądro, to możesz
pominąć ten krok.

Kolejnym krokiem jest usunięcie istnie-

jących reguł i łańcuchów (chains). Dokład-
nym opisem tych struktur zajmiemy się w na-
stępnej części artykułu, która w dużej mierze
poświęcona zostanie firewallom. Na chwilę
obecną, wystarczy nam wiedza, iż w progra-
mie iptables łańcuchy są zestawami reguł de-
finiujących operacje wykonywane na pakie-
tach. Standardowo, w podstawowej tabeli fil-
trującej pakiety (filter) dostępne są trzy pod-
stawowe łańcuchy:

INPUT – zawierający reguły obsługi pa-

kietów przychodzących;

FORWARD – zawierający reguły obsługi

pakietów routowanych przez hosta;

OUTPUT – zawierający reguły obsługi

pakietów wychodzących.

Listing 5.

Konfiguracja demona OSPFD – /etc/quagga/ospfd.conf

hostname router
password haslo

enable

password haslo

log file /var/log/quagga/ospfd.log

interface eth0
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 haslo

router ospf
ospf router-id 192.168.1.1
network 192.168.1.0/0 area 0
redistribute connected
redistribute static
area 0.0.0.0 authentication message-digest

access-list localhost permit 127.0.0.1/32
access-list localhost deny any
line vty
access class localhost

background image

54

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

55

www.lpmagazine.org

Sieci komputerowe

Sieci komputerowe: część czwarta

• W tabeli szczególnie interesującej nas

z punktu widzenia tego akapitu, a mia-
nowicie nat, istnieją trzy łańcuchy:

PREROUTING – zawierający reguły ob-

sługi pakietów przed routowaniem;

OUTPUT – zawierający reguły obsługi

pakietów wychodzących;

POSTROUTING – zawierający reguły

obsługi pakietów po routowaniu.

Oprócz tego, dostępna jest tablica mangle,
która umożliwia dodanie reguł modyfikują-
cych nagłówki pakietów. O jej zastosowaniu
powiemy więcej w następnej części cyklu.

Następnym etapem działania naszego

skryptu jest ustawienie domyślnych reguł ob-
sługi. Wszystkie połączenia są akceptowane
przez nasz router – jest to dobry punkt wyj-
ścia do dalszej konfiguracji. Powinniśmy
również pamiętać o dodaniu linii odpowia-
dających konfiguracji interfejsu lo, będącego
programową pętlą zwrotną, służącą do testo-
wania oprogramowania sieciowego.

Ostatnim krokiem skryptu jest ustawie-

nie właściwej translacji adresów. Składnia
tego polecenia może wymagać wyjaśnie-
nia, tak więc omówimy znaczenie poszcze-
gólnych parametrów. Parametr

-t nat

ozna-

cza, iż ma zostać zmieniona konfiguracja ta-
beli nat. Parametry

-A POSTROUTING

oraz

-o $WAN_INTERFACE

informują program ip-

tables, że zmiany mają mieć miejsce po ro-
utowaniu, dla pakietów wychodzących in-
terfejsu sieciowego o nazwie zdefiniowanej
w zmiennej

WAN_INTERFACE

. Dodanie opcji

-j MASQUERADE

aktywuje obsługę pakietów

poprzez mechanizm maskarady. Jeżeli inter-
fejs podłączony do sieci rozległej ma przypi-
sany stały adres IP, powinieneś użyć alterna-
tywnej opcji, przedstawionej w skrypcie. Jed-
na z opcji musi oczywiście zostać usunięta
przed wykonaniem skryptu (lub oznaczona
jako komentarz za pomocą znaku

#

).

W omawianym skrypcie nie stosuje-

my filtrowania pakietów – wszystkie dane
są przez nasz router akceptowane. Należy
pamiętać, iż takie rozwiązanie nie jest bez-
pieczne – doskonale nadaje się jednak do ce-
lów testowych. Więcej na temat zwiększania
bezpieczeństwa routera i filtrowania pakie-
tów powiemy w następnej części.

Routing dynamiczny

z zastosowaniem protokołu RIP

Przykłady konfiguracji przedstawione w po-
przednich paragrafach mają jedną wspólną
cechę – korzystają z routingu statycznego.
O ile w pewnych przypadkach takie rozwią-
zanie jest niemalże konieczne, o tyle w więk-

szości sieci powinniśmy rozważyć zastoso-
wanie protokołów wymiany informacji o ro-
utingu. Pozwoli to na przyspieszenie konfigu-
racji sieci oraz zapewni aktualność tablic ro-
utingu wszystkich urządzeń.

Protokół RIP

Protokół RIP (Routing Information Protocol)
jest najprostszym protokołem wymiany in-
formacji o trasach. Najlepiej nadaje się do za-
stosowania w sieciach korporacyjnych o nie-
wielkiej liczbie komputerów.

Routery z obsługą protokołu RIP rozgła-

szają informacje o zawartości tablic traso-
wania co 30 sekund, przez co w przypadku
zmiany konfiguracji sieci routery zaktualizu-
ją swoją konfigurację dopiero po upłynięciu
tego czasu. RIP posiada również ogranicze-
nie co do ilości przeskoków – ich maksymal-
na liczba wynosi 15. Nie jest to jednak pro-
blemem nawet w przypadku złożonych sie-
ci lokalnych.

Obsługa protokołu

RIP w Linuksie – Quagga

Zarówno protokół RIP, jak i opisany w na-
stępnym paragrafie OSPF mają swoje im-
plementacje przeznaczone dla systemu Li-
nux. Zostały one zawarte w pakiecie Quag-
ga, wraz z bardziej złożonymi protokołami
jak np. BGP (Border Gateway Protocol), któ-
rych z racji złożoności nie będziemy opisy-
wać w tym artykule.

Pakiet Quagga jest dostępny w repozy-

toriach wszystkich popularnych dystrybucji.
Czytelnikom chcącym własnoręcznie doko-
nać kompilacji polecam odwiedzenie stro-
ny projektu http://www.quagga.net/. Znajdu-
ją się tam informacje dotyczące kompilacji,
instalacji i konfiguracji pakietu.

Konfiguracja protokołu

RIP w pakiecie Quagga

Zanim routery w naszej sieci będą w stanie
wymieniać między sobą informacje o trasach,
oszczędzając nam tym samym żmudnej kon-
figuracji, musimy poświęcić chwilę na skon-
figurowanie obsługi protokołu RIP w pakie-
cie Quagga.

Konfigurację powinniśmy rozpocząć

od dokonania zmiany w pliku /etc/quagga/
daemons
, powodującej aktywowanie proto-
kołu RIP (Zebra jest demonem zarządzają-
cym). Zmiany przedstawione zostały na Li-
stingu 2.

Następnym krokiem jest utworzenie pli-

ków zawierających konfiguracje demonów:
zebra.conf i ripd.conf. Powinny się one zna-
leźć w katalogu /etc/quagga/.

Konfiguracja demona zebra odpowia-

dającego za obsługę podstawowych funk-
cji pakietu Quagga została przedstawiona
na Listingu 3. Parametr

hostname

zawiera

nazwę naszego routera (może ona być róż-
na od nazwy hosta na którym pakiet Quag-
ga został uruchomiony). Wiersze

password

oraz

enable password

powodują ustawie-

nie hasła i jego aktywację. Poprzez ustawie-
nie opcji

service advanced-vty

uzysku-

jemy większą funkcjonalność linii komend
pakietu Quagga, zaś parametr

log file

de-

finiuje plik logów. Dodanie linii rozpoczy-
nających się od frazy

access-list

definiuje

nową klasę dostępu do wiersza poleceń de-
mona Zebra: zezwalającą na logowanie je-
dynie z komputera lokalnego. Ostatnie dwie
linie powodują ustawienie obowiązującej
klasy dostępu.

Przykładowa konfiguracja demona RIPD

przedstawiona została na Listingu 4. Znacze-
nie części opcji konfiguracyjnych jest takie
samo jak w przypadku demona Zebra. Dyrek-
tywa

router rip

informuje, że chcemy ko-

rzystać z protokołu RIP. Interfejsy na których
nasłuchiwać ma RIPD dodajemy po opcji

ne-

twork

(w przypadku nasłuchiwania na wielu

interfejsach należy umieścić je w osobnych
liniach). Opcja

redistribute static

spo-

woduje wysyłanie informacji o trasach zde-
finiowanych statycznie, zaś

redistribu-

te connected

– informacji o wszystkich sie-

ciach, do których podłączony jest router. Zde-
finiowanie ścieżki dostępu do pliku z logami
jest możliwe przy użyciu opcji

log file

.

Konfiguracja demona RIPD jest już pra-

wie ukończona. Należy jeszcze zmienić wła-
ściciela plików ripd.conf i zebra.conf na qu-
agga
za pomocą polecenia

chown quagga:quagga zebra.conf
ripd.conf

Demona RIPD uruchamiamy poleceniem

/etc/init.d/quagga start.

Przedstawiony opis dotyczy dystrybucji De-
bian. Użytkownikom innych dystrybucji pole-
cam zapoznanie się z informacjami zawartymi
na stronie głównej pakietu Quagga. Postać pli-
ków konfiguracyjnych pozostaje oczywiście
taka sama, niezależnie od zastosowanej dys-
trybucji. Ewentualne zmiany mogą dotyczyć
zmian w plikach konfiguracyjnych systemu.

Bezpieczeństwo protokołu RIP

Wszelka komunikacja pomiędzy routerami
obsługującymi protokół RIP odbywa się bez

background image

54

luty 2010

Sieci komputerowe

Sieci komputerowe: część czwarta

55

www.lpmagazine.org

Sieci komputerowe

Sieci komputerowe: część czwarta

uwierzytelniania i szyfrowania. Aby zwięk-
szyć bezpieczeństwo routera, należy dodać
do pliku /etc/quagga/ripd.conf linie

key chain siec
key 1
key-string haslo
interface eth0
ip rip authentication mode md5
ip rip authentication key-chain
localnet

Spowodują one włączenie prostego uwierzy-
telniania routerów, co znacznie utrudni zada-
nie potencjalnemu włamywaczowi.

Monitorowanie pracy protokołu RIP

Po skonfigurowaniu protokołu RIP, nie po-
zostaje nam nic innego, jak tylko sprawdzić
jego działanie. Możemy tego dokonać przy
użyciu klienta telnet

telnet localhost 2602

Po zalogowaniu się możemy już sprawdzić
działanie demona RIPD poleceniami:

show

ip rip

,

show ip rip status

oraz

show

work-queues

. Więcej informacji na temat za-

stosowania wiersza poleceń demona RIPD
znajdziesz w dokumentacji pakietu Quagga.

Routing dynamiczny

z zastosowaniem protokołu OSPF

Protokół RIP sprawdza się doskonale w przy-
padku sieci do których podłączona jest nie-
wielka liczba komputerów. W przypadku
większych sieci, obsługiwanych przez dzie-
siątki lub setki routerów, zastosowanie proto-
kołu RIP może się okazać rozwiązaniem nie-
efektywnym. W takim przypadku powinieneś
skorzystać z możliwości, jakie daje protokół
OSPF (Open Shortest Path First).

Protokół OSPF

Protokół OSPF jest protokołem stanu łą-
cza (link-state protocol) – oznacza to, iż
oprócz okresowych komunikatów aktuali-
zacyjnych, informacje rozsyłane są w przy-
padku zmiany struktury sieci. W porówna-
niu do protokołu RIP, OSPF charakteryzu-
je się lepszą skalowalnością, większą wy-

dajnością oraz brakiem ograniczenia do 15
przeskoków. Ponadto, okresowe komuni-
katy aktualizacyjne wysyłane są co 30 mi-
nut, co ma niebagatelne znaczenie w przy-
padku sieci o dużej liczbie routerów, ponie-
waż zmniejsza ilość ruchu rozgłoszeniowe-
go. OSPF umożliwia również podział sie-
ci na tzw. obszary, podłączone do wspólnej
sieci szkieletowej.

Konfiguracja protokołu

OSPF w pakiecie Quagga

Protokół OSPF jest obsługiwany przez pakiet
Quagga – nie ma potrzeby instalacji żadne-
go dodatkowego oprogramowania. Jego kon-
figuracja przebiega w sposób podobny, jak
protokołu RIP.

Zanim utworzymy pliki konfiguracyjne

dla demona OSPFD, upewnij się, że został
on aktywowany poprzez dodanie linii w pliku
/etc/quagga/daemons

ospfd=yes

Następnym krokiem jest utworzenie pliku
konfiguracyjnego demona OSPFD: /etc/
quagga/ospfd.conf
(Listing 5). Część opcji
konfguracyjnych ma takie samo znacznie jak
w przypadku demona Zebra i RIPD. Dyrek-
tywa

interface eth0

powoduje dokonanie

zmian w obrębie konfiguracji interfejsu eth0.
Opcje

ip ospf authentication message-

digest

oraz

ip ospf message-digest-key

1 md5 haslo

zwiększają bezpieczeństwo po-

przez zastosowanie prostego uwierzytelnia-
nia hasłem

haslo

. Dyrektywa

router ospf

powoduje aktywację protokołu OSPF; pole-
cenie

ospf router-id

służy do ustawienia

identyfikacji routera na podstawie adresu IP.
Za pomocą opcji

network 192.168.1.0/0

area 0

dodajemy nową sieć do konfiguracji

routera oraz oznaczamy ją jako część obszaru
0. Konfiguracja uwierzytelniania w obrębie
obszaru została zmieniona za pomocą pole-
cenia

area 0.0.0.0 authentication mes-

sage-digest

.

Włączenie demona OSPFD odbywa się

w sposób opisany w paragrafie poświęco-
nym protokołowi RIP. Po chwili od urucho-
mienia protokołu OSPF możesz sprawdzić
dodane trasy.

Monitorowanie pracy protokołu OSPF

Monitorowanie pracy demona OSPFD odby-
wa się w sposób bardzo podobny, jak w przy-
padku demona RIPD. Jedyną różnicą jest in-
ny port na którym należy nawiązać połącze-
nie poprzez klienta telnet:

telnet localhost 2604

Opis dostępnych komend znajdziesz w doku-
mentacji demona OSPFD (

man ospfd

).

Podsumowanie

Tym sposobem dotarliśmy do końca czwar-
tej części cyklu. Omówiliśmy w niej najważ-
niejsze zagadnienia związane z adresami IP,
maskami podsieci oraz trasowaniem statycz-
nym i dynamicznym. Dowiedziałeś się rów-
nież, w jaki sposób skonfigurować dowol-
ną dystrybucję Linuksa do pracy w charak-
terze routera.

Po zapoznaniu się z informacjami zawar-

tymi w tej części cyklu potrafisz już zaprojek-
tować i zbudować średnich rozmiarów sieć
komputerową, określić podział na podsieci
oraz umiejscowienie routerów w topologii
sieci. Czytelnikom zainteresowanym dodat-
kowymi informacjami na ten temat polecam
zapoznanie się z dokumentacją wykorzysty-
wanych aplikacji oraz dokumentami RFC
opisujących wykorzystane przez nas proto-
koły routingu dynamicznego. Wiele przydat-
nych informacji znajdziesz również w doku-
mentacji wymienionych przez nas dystrybu-
cji – ich zastosowanie może niejednokrotnie
znacznie przyspieszyć konfigurację sieci oraz
ułatwić rozwiązywanie problemów pojawia-
jących się na etapie eksploatacji.

W następnej części cyklu zajmiemy się

zagadnieniami związanymi z zapewnieniem
bezpieczeństwa naszej sieci. Omówimy kon-
figurację firewalli, wirtualnych sieci prywat-
nych VPN. Dowiesz się również, w jaki spo-
sób należy zadbać o bezpieczeństwo systemu
serwera. Do usłyszenia!

Autor interesuje się bezpieczeństwem
systemów informatycznych, programo-
waniem, elektroniką, muzyką rockową,
architekturą mikroprocesorów oraz za-
stosowaniem Linuksa w systemach wbu-
dowanych.
Kontakt z autorem: rl.kulaga@gmail.com

O autorze

• Dokumenty RFC – http://www.rfc-editor.org/
• Ipcalc – http://www.jodies.de/ipcalc
• Strona główna pakietu Quagga – http://www.quagga.net/

W Sieci


Wyszukiwarka

Podobne podstrony:
Zostan administratorem sieci komputerowej cz 8(1)
Zostan administratorem sieci komputerowej cz 3(1)
Zostan administratorem sieci komputerowej cz 2(1)
Zostan administratorem sieci komputerowej cz 1(1)
CCNA 200 120 Zostan administratorem sieci komputerowych Cisco
CCNA 200 120 Zostan administratorem sieci komputerowych Cisco 2
Security CCNA 210 260 Zostan administratorem sieci komputerowych Cisco seccna
Security CCNA 210 260 Zostan administratorem sieci komputerowych Cisco
Security CCNA 210 260 Zostan administratorem sieci komputerowych Cisco
CCNA 200 120 Zostan administratorem sieci komputerowych Cisco
Security CCNA 210 260 Zostan administratorem sieci komputerowych Cisco
Podstawy sieci komputerowych cz 2, Dokumenty(1)
projekt i wykonanie sieci komputerowej - cz.2, Pomoce naukowe, studia, informatyka
Administracja Sieci Komputerowych - wykład, INFORMATYKA, Informatyka(1)
projekt i wykonanie sieci komputerowej - cz.1, Pomoce naukowe, studia, informatyka
12 administrator sieci komputerowej Radosław Zawada
12 administrator sieci komputerowej Radosław Zawada

więcej podobnych podstron