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



17.10.2017

Ultrapanorama

Philips 492P8
13.10.2017

Druk w bieli

Oki Pro8342WT
11.10.2017

PolCAAT’ 2017 już w...

30 listopada 2017 r. w warszawskim hotelu Marriott odbędzie się XIII edycja konferencji...
10.10.2017

Pełna ochrona

Kaspersky Total Security 2018, Internet Security 2018
06.10.2017

Przeprowadzka do chmury

Oracle Exadata Cloud
03.10.2017

Automatyzacja...

Red Hat Ansible
02.10.2017

Bezpieczeństwo danych zaczyna...

Aby zapewnić bezpieczeństwo danych, w tym informacji poufnych o klientach i pracownikach,...
27.09.2017

Dotykowe 75 cali

BenQ RP750K
22.09.2017

Wydajne CPU

AMD Ryzen Threadripper

LINUX – obsługa sieci

Data publikacji: 27-07-2017 Autor: Grzegorz Kuczyński

Śmiało można powiedzieć, że Linux z domowego eksperymentu stał się jednym z wiodących systemów biznesowych. Na jego bazie powstają stabilne rozwiązania obsługujące urządzenia sieciowe różnych producentów. Największą zaletą GNU/Linux jest to, że gwarantuje on działanie elementów nawet zaawansowanej infrastruktury firmowej tak samo efektywnie jak specjalistyczne rozwiązania komercyjne, i to o wiele niższym kosztem.

Niezależnie od tego, czy potrzebujemy routera do małej sieci czy dużej i złożonej, możemy do tego celu wykorzystać system Linux. Duża liczba obsługiwanych platform sprzętowych oraz skalowalność systemu GNU/Linux pozwalają instalować ten system zarówno na profesjonalnych serwerach o dużej mocy obliczeniowej, jak i niewielkich, energooszczędnych urządzeniach. Społeczność rozwijająca mechanizmy sieciowe implementowane w jądrze Linuksa dąży to tego, aby system wspierał wszystkie stosowane technologie. W efekcie tych prac obsługuje on m.in. najnowsze mechanizmy dla stosu protokołów IP/TCP, VLAN-y, mosty (bridge), agregację portów (bonding), tunele (np. GRE), wirtualne interfejsy (tun, tap), QoS (limit bandwidth) i protokoły routingu (np. OSPF).

> SPOSOBY KONFIGURACJI

Różnorodność to znana cecha systemu spod znaku pingwina, różne dystrybucje proponują własny sposób konfiguracji ustawień sieciowych. W dystrybucjach związanych z Debianem wykorzystywany jest plik /etc/network/interfaces, a w dystrybucjach wywodzących się z RedHat będą to pliki w lokalizacji /etc/sysconfig/network-scripts/, np. ifcfg-eth0. Oczywiście wspomniane pliki konfiguracyjne dotyczą ręcznej konfiguracji wykonywanej poprzez interfejs CLI. Większość dystrybucji oferuje również narzędzia graficzne, które same generują odpowiednie wpisy we wspomnianych lokalizacjach. Jednak wszystkie te rozwiązania przeważnie obsługują tylko podstawowe ustawienia. Bardziej zaawansowane opcje należy konfigurować za pomocą standardowych narzędzi z wiersza poleceń.

W Linuksie tradycyjnymi narzędziami do konfiguracji sieci są polecenia: ifconfig i route – narzędzia z pakietu net-tools. Dynamiczny rozwój systemu pociągnie za sobą konieczność opracowania nowych narzędzi, dlatego deweloperzy wielu dystrybucji starają się zastąpić stary pakiet nowym, nazwanym iproute2. Głównym powodem ich działania jest to, iż net-tools nie oferuje obsługi wielu nowych funkcji sieciowych, jakie oferuje pakiet iproute2. Jednak przyzwyczajenie użytkowników Linuksa do starych rozwiązań sprawiło, że w większości dystrybucji domyślnie instalowane są oba pakiety jednocześnie. Jednak nie wszędzie, np. w dystrybucji CentOS 7 domyślnie instalowany jest tylko pakiet iproute2.

W artykule opiszemy konfigurację sieci w systemie Linux wyłącznie za pomocą nowych narzędzi, którymi głównie są: ip, ss i tc. Zmiany wykonywane za ich pomocą, podobnie jak w przypadku starych narzędzi, są zachowywane tylko do kolejnego uruchomienia systemu. Dlatego każda dystrybucja posiada określone pliki konfiguracyjne, w których ustawienia zapisywane są na stałe i odtwarzane podczas każdego uruchomienia systemu. W większość tych mechanizmów konfiguracyjnych przewidziana jest możliwość bezpośredniego wywoływania poleceń konfiguracyjnych systemu Linux, o których będziemy pisać. W przypadku Debiana może to być dyrektywa post-up danego interfejsu w pliku interfaces, z kolei w CentOS będzie to stworzenie skryptu /sbin/ifup-local, który jest wykonywany po zakończeniu konfiguracji sieci dla każdego interfejsu. W każdym przypadku musimy znaleźć sposób na odtworzenie dodatkowej konfiguracji sieci podczas startu systemu. Zazwyczaj jest to skrypt powłoki wywoływany przez mechanizmy bootowania systemu.

> PRAKTYCZNE NARZĘDZIE IP

W pakiecie iproute2 najbardziej rozbudowanym poleceniem jest ip. Za jego pomocą możemy wykonać większość konfiguracji sieciowej w systemie Linux. W pewnym stopniu narzędzie to jest wzorowane na składni podobnej do stosowanej w urządzeniach sieciowych firmy Cisco. Subpolecenia tego narzędzia zastępują wiele oddzielnych poleceń, dzięki czemu konfiguracja sieciowa została skupiona w jednym miejscu. ip pozwala na stosowanie skróconych subpoleceń w stopniu umożliwiającym ich odróżnienie, lecz nie wszystkich, głównie tych najmniej zagnieżdżonych. Jeżeli używamy stosunkowo nowej wersji systemu, możemy również liczyć na automatyczne dopełnianie składni, co zawdzięczamy np. mechanizmowi completion w powłoce bash. Polecenie ip posiada również uogólnione domyślne zachowanie w przypadku, gdy wydana komenda jest niekompletna. Tam, gdzie można dopełnić polecenie show albo list, zostanie to wykonane jako akcja domyślna. W innych przypadkach ip wykona polecenie help w celu wydrukowania możliwych do wpisania subpoleceń. Przykładowo poniższe polecenia dadzą taki sam efekt – wyświetlą interfejsy sieciowe wraz z ich adresacją:

# ip address show
# ip address ls
# ip addr
# ip a s
# ip a

Warto również wspomnieć o paru przydatnych ogólnych opcjach komendy ip. Pierwszą z nich jest opcja -s, która wyświetla statystyki interfejsów. Użycie jej dwa razy -s -s zwiększa ilość drukowanych informacji. Kolejną ciekawą opcją jest -o, której użycie sprawia, że wszystkie informacje dotyczące jednego interfejsu zostaną wydrukowane w jednej linii terminalu. Może to być przydatne w skryptach do filtrowania danych wyjściowych, np. za pomocą polecenia grep. Trzecią przydatną opcją jest -f (skrót od -family) – powoduje wyświetlenie zależnych od podanego rodzaju protokołu danych, którymi najczęściej są adresy. Tu krótkie wyjaśnienie – sieci komputerowe zostały zdominowane przez rodzinę protokołów IP. System Linux, jak i komenda ip wspierają również inne protokoły komunikacji, takie jak MPLS, IPX i DNET. Oczywiście niektóre z nich od dawna nie są rozwijane, za co odpowiada popularność protokołów IPv4 i IPv6. W ip protokoły te są identyfikowane jako inet i inet6. Organizacyjnie w ip został również wydzielony protokół link (tak naprawdę reprezentuje on warstwę drugą modelu OSI).

Ponieważ przeważnie będziemy operować na rodzinie adresów IP, warto poznać opcje -4 (tożsama z -f inet) oraz -6
(-f inet6). IPv4 jest w ip domyślnie obsługiwanym protokołem, więc nie musimy za każdym razem używać opcji -4.

[...]

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.

.

Transmisje online zapewnia: StreamOnline

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