Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



20.07.2020

Baramundi

Pomoc w czasie pandemii.
20.07.2020

Stop infekcjom

CloudGuard
17.07.2020

Analiza zagrożeń

Kaspersky Threat Attribution Engine
17.07.2020

Strażnik danych

QGD-1602P
16.07.2020

Dysk przemysłowy

Transcend MTE352T
16.07.2020

Połączenie sił

Fugaku
16.07.2020

Brama bezpieczeństwa

Check Point 1570R
23.06.2020

PLNOG Online

PLNOG Online
23.06.2020

Nowe zagrożenie

Ramsay

Linux – obsługa sieci

Data publikacji: 30-10-2017 Autor: Grzegorz Kuczyński
SCHEMAT 1. ARCHITEKTURA...

Kontynuujemy nasz cykl artykułów dotyczących obsługi sieci w systemie Linux. Po switchingu i tunelach tym razem skupimy się na routingu dynamicznym oraz funkcjach Quality of Service (QoS) oferowanych przez te systemy.

Linux to system, który doskonale sprawdza się jako router zarówno dla sieci LAN, jak i WAN. W poprzednich artykułach z cyklu omówiono już, jak za pomocą komend ip route konfigurować statyczny routing. Tym razem zajmiemy się rou­tingiem dynamicznym, co będzie wymagało zupełnie innego podejścia. Jądro systemu zajmuje się routingiem, ale na bardzo podstawowym poziomie, a konfigurowanie routingu statycznego za pomocą narzędzi z pakietu iproute2 to w rzeczywistości dodawanie wpisów do jądra – bo tylko tak podstawowe operacje jak dodawanie i usuwanie wpisów do tablicy routingu oferuje samo jądro. Z kolei protokoły routingu dynamicznego takie jak RIP czy OSPF wymagają implementacji dodatkowej logiki. Nie została ona wdrożona jako część jądra, lecz jako oddzielne oprogramowanie pod postacią systemowego demona. Ponadto, jak to w ekosystemie GNU/Linux bywa, jest więcej niż jedna implementacja protokołów routingu.

> PROJEKT QUAGGA

Najbardziej znanym wdrożeniem dynamicznych protokołów rou­tingu w systemie Linux jest Quagga. Projekt ten składa się z wielu oddzielnych demonów, z których każdy odpowiada za obsługę konkretnego protokołu. Quagga jest następcą projektu Zebra, który najpierw został porzucony, a następnie był rozwijany jako komercyjny projekt pod inną nazwą. Jednak nazwa pierwotnego projektu przetrwała do dziś w nowym projekcie. Quagga udostępnia własny interfejs dla pozostałych demonów, za pośrednictwem którego wprowadzają one zmiany w tabeli routingu w jądrze systemu. Interfejs ten jest głównym demonem i nazywa się zebra.


Quagga oferuje wsparcie dla takich protokołów jak RIP, OSPF, BGP, IS-IS oraz PIM. Ponadto projekt ten dostępny jest również na inne systemy UNIX-owe. W większości dystrybucji Quagga instalowana jest poprzez instalację paczki o tej samej nazwie.

# apt install quagga

Po instalacji żaden demon nie jest uruchomiony, aby to zmienić, należy wyedytować poniższy plik:

# cat /etc/quagga/daemons
...
zebra=no
bgpd=no
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
babeld=no

Załóżmy, że chcemy uruchomić protokół routingu RIP, w takim wypadku zmieniamy poniższe wpisy w pliku /etc/quagga/daemons:

zebra=yes
ripd=yes

Następnie musimy stworzyć pliki konfiguracyjne dla demonów. Każdy demon uruchomiony w Quagga nasłuchuje lokalnie na własnym porcie, a po jego uruchomieniu możemy do każdego z nich się zalogować za pomocą połączenia telnet. Quagga oferuje też bardziej praktyczne rozwiązanie zwane vtysh – ujednoliconą konsolę dla wszystkich demonów. Dzięki temu po jednokrotnym logowaniu możemy konfigurować ustawienia wszystkich demonów. Co ciekawe, konfiguracja demonów używa składni zbliżonej do tej używanej w Cisco IOS (Internetwork Operating System). Zanim jednak przystąpimy do konfiguracji, należy stworzyć plik konfiguracyjny dla vtysh, jeżeli zamierzamy go używać:

# cp /usr/share/doc/quagga/examples/vtysh.conf.sample /etc/quagga/vtysh.conf
# chown quagga:quaggavty /etc/quagga/vtysh.conf
# cat /etc/quagga/vtysh.conf
! Sample configuration file for vtysh.
! service integrated-vtysh-config
hostname quagga-router
username root nopassword

Wykrzyknikami oznaczono komentarze. Opcję service integrated-vtysh-config wyłączono celowo, ponieważ dzięki temu każdy demon będzie zapisywał swoją konfigurację w oddzielnym pliku. Ostatecznie trzeba jeszcze skopiować pliki konfiguracyjne dla demonów zebra i rpid w analogiczny sposób jak powyżej. Aby sprawdzić, czy wszystko działa jak należy, uruchamiamy quagga i sprawdzamy, czy demony nasłuchują:

# netstat -ntlp|grep -E "(zebra|ripd)"
tcp 0 0 127.0.0.1:2601 0.0.0.0:* LISTEN 13795/zebra
tcp 0 0 127.0.0.1:2602 0.0.0.0:* LISTEN 13799/ripd

[...]

Autor zawodowo zajmuje się informatyką. Jest członkiem społeczności open source, prowadzi blog nt. systemu GNU/Linux.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"