Linux jest systemem przeznaczonym do pracy w sieci. Nim jednak znajdziemy zatrudnienie jako administratorzy, programiści czy webmasterzy, możemy praktycznie zapoznać się z zasadami pracy w sieci w warunkach domowych.
Na początek karta
Informacje z dokumentu Ethernet-HOWTO posłużą nam pomocą, gdy będziemy się chcieli zorientować, które karty sieciowe są wspierane przez Linuksa - czy istnieją dla nich odpowiednie sterowniki. Nieobsługiwane są bardzo rzadkie modele, dla których nie powstały żadne sterowniki i tym samym nie ma żadnej możliwości skorzystania z nich pod Linuksem.
Podczas instalowania karty sieciowej w komputerze możemy się natknąć na problemy wynikające z przypisania jej do przerwania lub portu zajętego przez inne zasoby systemowe. Informację o przerwaniach wyświetlimy poleceniem cat /proc/interrupts, a o portach - poleceniem cat /proc/ioports. W razie stwierdzenia konfliktu sprawdzamy, czy nasza karta pozwala zmienić ustawienia dotyczące zasobów za pomocą zworek. Do starszych kart dołączane bywa również oprogramowanie służące do konfiguracji pracujące w DOS-ie.
Gdzie jest sterownik?
Za obsługę naszej karty sieciowej odpowiada sterownik - wkompilowany w jądro systemu lub pracujący jako odrębny moduł. Wraz z nowo zainstalowaną dystrybucją Linuksa dostajemy jądro systemu, w którym są już uwzględnione moduły niezbędne do obsługi różnych kart sieciowych. W wypadku jąder serii 2.2.x znajdziemy je w katalogu /lib/modules/2.2.x/net, a dla jąder 2.4.x - w /lib/modules/2.4.x/kernel/drivers/net. Jeżeli natomiast kompilowaliśmy jądro systemu samodzielnie, powinniśmy się upewnić, że uwzględniliśmy moduł potrzebny do obsługi naszej karty sieciowej.
Niezależnie od tego, czy korzystamy z modułów fabrycznych czy skompilowanych przez nas, musimy zadbać, żeby potrzebny moduł był wczytywany podczas rozruchu systemu. Różne dystrybucje wykorzystują w tym celu odmienne mechanizmy. Na przykład Mandrake wczytuje moduły, które zostały zarejestrowane w pliku /etc/modules, a Slackware - w zbiorze /etc/rc.d/rc.modules.

Do konfiguracji adresów IP interfejsów sieciowych mogą w Linuksie służyć różne narzędzia - jednym z nich jest netconfig.
Numerki, cyferki...
Każdy komputer pracujący w danej sieci ma przypisany numer, który pozwala na jednoznaczne identyfikowanie go. Ponieważ pula tych numerów jest ograniczona, wydzielono w jej ramach odpowiednie grupy (tzw. klasy adresów), przeznaczając pewien zakres numerów do użytku w sieciach lokalnych. Numery te z założenia nie przedostają się do Internetu (nie są propagowane przez routery).
Do tej wydzielonej klasy, przeznaczonej do użycia w sieciach lokalnych, należą numery z zakresu 192.168.x.x. Standardowo pierwszemu komputerowi w takiej sieci przypisuje się numer 192.168.1.1, następnemu - 192.168.1.2 i tak dalej aż do 192.168.1.254. Gdybyśmy chcieli połączyć ze sobą jeszcze więcej komputerów, skorzystamy z zakresów od 192.168.2.x do 192.168.255.x. Teoretycznie można więc utworzyć 256 podsieci po 254 komputery każda. W tabeli "Adresy IP w sieci lokalnej" podajemy informację o zakresie numerów IP, masce sieci, jej adresie i adresie rozgłoszeniowym (broadcast) w wypadku sieci 192.168.1.x.
"Dane personalne" sieci
Podstawowe informacje o konfiguracji sieci są zapisane w plikach /etc/HOSTNAME i /etc/hosts oraz w /etc/rc.d/rc.inet1 w wypadku dystrybucji Slackware, a w plikach /etc/hosts, /etc/sysconfig/network i /etc/sysconfig/networking/ifcfg-lo w Mandrake'u czy Red Hacie.
W Slackwarze konfigurację sieci przeprowadzimy po wydaniu polecenia netconfig, a w Mandrake'u możemy posłużyć się między innymi poleceniem netconf. Oprócz parametrów konkretnej maszyny i sieci, zestawionych w tabeli "Adresy IP w sieci lokalnej", powinniśmy jeszcze podać słowną nazwę komputera i domeny - może to być odpowiednio linux1 dla maszyny i home.net dla domeny.
Oczywiście każdy komputer w naszej domenie powinien mieć unikatowy numer IP i unikatową nazwę - będziemy się mogli odwoływać do niego po numerze (np. 192.168.1.1), nazwie pełnej (np. linux1.home.net) lub nazwie skróconej (np. linux1). Gdy teraz postawimy w sieci lokalnej serwer WWW, to adresem strony głównej będzie równie dobrze http://192.168.1.1/, jak http://linux1.home.net/ czy http://linux1/.
Ponadto komputer, na którym pracujemy, ma numer 127.0.0.1 i jest mu przypisana nazwa localhost. Nazwy tej możemy użyć, jeżeli chcemy się odwołać do maszyny lokalnej.
Ustawienia są wszędzie
W odpowiednich plikach musimy ponadto umieścić informacje pozwalające na tłumaczenie nazw słownych na numeryczne oraz wyznaczające kolejność, w jakiej przeszukiwana jest sieć.
W pliku /etc/hosts uwzględniamy numer i nazwę maszyny lokalnej oraz numery i nazwy - pełne i skrócone - wszystkich komputerów wchodzących w skład sieci lokalnej:
127.0.0.1 localhost
192.168.1.1 linux1.home.net linux1
192.168.1.2 linux2.home.net linux2
W pliku /etc/resolv.conf umieszczamy informację o kolejności przeszukiwania sieci, a także o numerach IP serwerów nazw naszego dostawcy usług internetowych:
search home.net
nameserver 194.204.159.1
nameserver 194.204.152.34
W przytoczonym przykładzie uwzględniliśmy sieć lokalną home.net oraz dwa serwery DNS, należące do TP SA.
Czy to już?
Pierwszym testem, jaki wykonamy po połączeniu ze sobą dwóch lub większej liczby jednostek w sieć, będzie sprawdzenie komunikacji dokonującej się po interfejsie eth0 za pomocą programu ping. Sprawdzamy zarówno komputer lokalny, jak i zdalny poleceniami ping 192.168.1.1 oraz ping 192.168.1.2 albo ping linux1 oraz ping linux2. Oczywiście podajemy takie numery i nazwy, jakie nadaliśmy poszczególnym maszynom. Przykładowo: po wydaniu polecenia ping linux1 powinniśmy zobaczyć komunikat w rodzaju:
PING linux1.home.net
(192.168.1.1): 56 octets data
64 octets from 192.168.1.1:
icmp_seq=0 ttl=255 time=0.1 ms
Ponadto w celach testowych na każdej z maszyn wydajemy polecenie route, które wyświetli nam aktualną tablicę routingu:
Destination Genmask Iface
localnet 255.255.255.0 eth0
loopback 255.0.0.0 lo
W przytoczonym przykładzie tablica ta zawiera dwie pozycje - eth0 dla sieci lokalnej (adres sieci 192.168.1.0) oraz lo dla maszyny lokalnej (o numerze 127.0.0.1). Gdy połączymy się z Internetem, do tablicy trasowania zostaną dopisane dwie nowe pozycje:
Destination Genmask Iface
serwer 255.255.255.255 ppp0
localnet 255.255.255.0 eth0
loopback 255.0.0.0 lo
default 0.0.0.0 ppp0
Pierwszy wpis w tej tablicy ustala trasowanie po interfejsie ppp0, a ostatni decyduje o tym, że interfejs ppp0 będzie przyjmowany jako standardowy.
Do dzieła!
Najprostszym sposobem na połączenie się z jedną z maszyn pracujących w sieci lokalnej i podjęcie na niej zdalnej pracy jest użycie programu telnet. Możliwości korzystania z prywatnej sieci nie ograniczają się jednakże do tego jednego zastosowania.
Możemy jej przecież użyć do testowania połączeń dokonywanych za pośrednictwem SSH. Po postawieniu na jednym z komputerów pracujących w naszej sieci serwera FTP czy WWW mamy możliwość bezpiecznego sprawdzania różnych wariantów konfiguracji tych serwerów. Szczególnie webmasterzy powinni docenić możliwość wstępnego przetestowania sposobu działania projektowanych przez nich stron i tworzonych skryptów CGI w warunkach lokalnych, nim zdecydują się udostępnić gotowy serwis w Sieci globalnej.
Lokalna sieć jest również doskonałym środowiskiem do testowania jakości zabezpieczeń, jakie zastosowaliśmy w naszych komputerach. Po uszczelnieniu systemu pracującego na jednej z naszych maszyn możemy wykorzystać inną w celu sprawdzenia odporności zabezpieczonego komputera.
|