37.DOC

(120 KB) Pobierz









Rozdział 37.
Praca w sieci









E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\37.DOC              601










Rozdzia³ 37. ¨ Praca w sieci              601

Tim Parker

W tym rozdziale:

u                                          TCP/IP             

u                                          Wymagania sprzętowe             

u                                          Pliki konfiguracyjne             

u                                          Testowanie konfiguracji i rozwiązywanie problemów             

TCP/IP

Linux oferuje użytkownikowi pełną implementację TCP/IP, protokołu używanego powszechnie w Internecie i sieciach lokalnych opartych o systemy UNIX-owe. Wszystko, czego potrzebujesz, by stworzyć własną sieć lub podłączyć się do istniejącej, to karta sieciowa, trochę kabla i kilka zmian w plikach konfiguracyjnych.

Proces konfiguracji sieci przebiega zawsze tak samo, bez względu na to, czy łączysz ze sobą dwa komputery stojące w jednym pokoju, czy też podłączasz się do sieci, w której jest już 5000 innych komputerów.

TCP/IP jest protokołem otwartym, tzn. jego specyfikacja techniczna jest ogólnodostępna i każdy może go zaimplementować w swoim programie czy sprzęcie. Dzięki temu stał się on bardzo popularny – dostępne są wersje tego protokołu dla wszystkich chyba platform. Jego największą zaletą jest fakt, że możliwe jest nawiązanie połączenia bez względu na to, jaki system operacyjny używany jest w komputerze.

Ujmując rzecz precyzyjniej, TCP/IP nie jest pojedynczym protokołem, ale zestawem kilkunastu protokołów, z których każdy jest przeznaczony do innych zadań. Wszystkie te protokoły używają jednak wspólnych komponentów do wysyłania i odbierania pakietów danych.

Dwa główne protokoły wchodzące w skład TCP/IP to Transmission Control Protocol i Internet Protocol (od nich właśnie wzięła się nazwa TCP/IP). Protokoły można podzielić ze względu na funkcje, do jakich są przeznaczone.

Transport. Poniższe protokoły używane są do przenoszenia danych pomiędzy systemami.

u                                          TCP (Transmission Control Protocol). Usługa oparta na połączeniu, tzn. oba porozumiewające się systemy komunikują się przez cały czas.

u                                          UDP (User Datagram Protocol). Usługa bezpołączeniowa, tzn. nie wymagająca bezpośredniego połączenia pomiędzy maszynami przez cały czas.

Kierowanie przepływem danych (ang. routing). Poniższe protokoły stworzono do adresowania danych tak, by jak najszybciej trafiły na miejsce przeznaczenia. Obsługują one również dzielenie większych porcji informacji na małe bloki.

u                                          IP (Internet Protocol). Obsługuje transmisję danych.

u                                          ICMP (Internet Control Message Protocol). Obsługuje przesyłanie informacji o statusie IP, takich jak komunikaty o błędach czy o zmianach struktury sieci, mogących mieć wpływ na kierowanie przepływem danych.

u                                          RIP (Routing Information Protocol). Jeden z kilku protokołów używanych do znajdowania najlepszej drogi przepływu danych.

u                                          OSPF (Open Shortest Path First). Inny protokół służący do znajdowania najlepszej drogi przepływu danych.

Adresowanie. Poniższe protokoły obsługują adresowanie maszyn w sieci, zarówno poprzez numery IP, jak i nazwy symboliczne.

u                                          ARP (Address Resolution Protocol). Określa niepowtarzalny numer sieciowy maszyny.

u                                          DNS (Domain Name System). Znajduje numer maszyny na podstawie jej nazwy.

u                                          RARP (Reverse Address Resolution Protocol). Określa numer maszyny w sieci, ale odwrotnie niż ARP.

u                                          BOOTP (Boot Protocol). Pozwala uruchomić urządzenie podłączone do sieci na podstawie informacji dostarczonych przez serwer.

Usługi dla użytkowników. Do tych aplikacji użytkownicy mają bezpośredni dostęp.

u                                          FTP (File Transfer Protocol). Pozwala na łatwy transport plików z jednego komputera na drugi za pomocą protokołu TCP.

u                                          TFTP (Trivial FTP). Prosta aplikacja do transmisji plików, oparta na protokole UDP.

TELNET. Pozwala na logowanie się do systemu z konsoli zdalnej.

Obsługa bramek sieciowych. Poniższe usługi pozwalają przekazywać informacje o kierowaniu danymi, informacje o statusie i obsługiwać przepływ danych w sieciach lokalnych.

u                                          EGP (Exterior Gateway Protocol). Przesyła informacje o kierowaniu danymi do sieci zewnętrznych.

u                                          GGP (Gateway-to-Gateway Protocol). Przesyła informacje o kierowaniu danymi pomiędzy bramkami internetowymi.

u                                          IGP (Interior Gateway Protocol). Przesyła informacje o kierowaniu danymi w obrębie sieci lokalnej.

Inne. Ważne usługi nie pasujące do żadnej z powyższych kategorii.

u                                          NFS (Network File System). Pozwala na montowanie katalogów jednego komputera w innym komputerze i dostęp do nich tak, jakby były katalogami lokalnymi.

u                                          NIS (Network Information Service). Ułatwia zarządzanie kontami i hasłami użytkowników.

u                                          RPC (Remote Procedure Call). Pozwala aplikacjom komunikować się ze sobą za pomocą wywołań funkcji.

u                                          SMTP (Simple Mail Transfer Protocol). Protokół transmisji poczty pomiędzy maszynami.

u                                          SNMP (Simple Network Management Protocol). Używany do otrzymywania informacji o konfiguracji TCP/IP i oprogramowania. Do prawidłowej pracy wymaga zainstalowania pętli zwrotnej.

Choć od czasu do czasu zdarzają się uaktualnienia standardu TCP/IP poprawiające działanie dostępnych funkcji lub implementujące nowe usługi, kolejne wersje pozostają kompatybilne z poprzednimi.

Wymagania sprzętowe

W zasadzie można skonfigurować TCP/IP nawet bez karty sieciowej czy podłączenia do sieci, używając tak zwanej pętli zwrotnej (ang. loopback). Metoda ta pozwala na porozumiewanie się protokołu TCP/IP z innym oprogramowaniem bez opuszczania komputera. Tworzona jest po prostu pętla pomiędzy wyjściem i wejściem programu. Jest to metoda stosowana powszechnie do testowania konfiguracji TCP/IP, również niektóre programy wymagają pętli zwrotnej do poprawnej pracy. Sterownik pętli zwrotnej zawsze ma numer sieciowy 127.0.0.1.

Jeśli jednak chcesz podłączyć się do sieci, karta sieciowa jest niezbędna. W systemie Linux używane są karty Ethernet, zaprojektowane właśnie do obsługi protokołów TCP/IP. Często spotkasz się z określeniem pakiet (ang. pocket). Pakiet to pewna ilość danych i instrukcji sterujących, złożona razem przez protokół TCP/IP i przesyłana poprzez sieć. Wszystkie dane przed przesłaniem dzielone są na pakiety, a następnie ponownie łączone w miejscu przeznaczenia.

Większość kart Ethernet dostępnych dziś na rynku jest kompatybilna z systemem Linux, ale przed zakupem nowego sprzętu zawsze warto sprawdzić to w dokumentacji. Wszystkie popularniejsze karty sieciowe (włączając w to modele Plug-and-Play przeznaczone dla systemu Windows 95) współpracują z Linuxem, czasem jednak konieczne jest ręczne ustawienie numeru przerwania IRQ i adresu wejścia / wyjścia.

Jeżeli zamierzasz łączyć się z siecią przez telefon, wówczas nie potrzebujesz karty sieciowej, ale modemu kompatybilnego z usługą, której zamierzasz używać. Przykładowo, aby użyć protokołu SLIP (Serial Line Interface Protocol), potrzebujesz modemu pracującego z prędkością co najmniej 14400 kbps (protokół V.32bis).

Pliki konfiguracyjne

Załóżmy, że posiadasz typowy komputer PC i kartę Ethernet i chcesz skonfigurować je tak, by móc używać sieci opartej na TCP/IP. W większości takich przypadków podana poniżej procedura zadziała. Ze względu jednak na mnogość wersji Linuxa i możliwość potencjalnych konfliktów ze wszystkimi chyba urządzeniami w systemie, a także specyficzne wymagana niektórych kart, poniższy tekst powinien być traktowany tylko jako przewodnik.

Jeśli TCP/IP nie działa prawidłowo po skonfigurowaniu zgodnie z poniższymi wskazówkami, powinieneś uważnie przejrzeć jeszcze raz pliki konfiguracyjne i na podstawie komunikatów o błędach spróbować zlokalizować problem. W razie niepowodzenia pomocy możesz szukać w grupach dyskusyjnych poświęconych Linuxowi i w innych źródłach informacji.

Aby móc skonfigurować TCP/IP, powinieneś najpierw zainstalować oprogramowanie do obsługi sieci. Również jądro systemu musi obsługiwać sieć – jeśli tak nie jest, musisz je przekompilować (obsługa sieci instalowana jest domyślnie, ale jeśli instalacja systemu przebiegała w jakiś niestandardowy sposób, sieć może nie być zainstalowana).

Najpierw zajmiemy się konfigurowaniem karty sieciowej. Następnie przedstawimy modyfikacje tego procesu niezbędne przy konfigurowaniu połączenia modemowego.

Zanim zaczniesz

Zanim przystąpisz do modyfikowania plików systemowych, powinieneś poświęcić parę minut na znalezienie kilku informacji, które będą później potrzebne. Najlepiej zapisz je gdzieś na kartce, aby do różnych plików konfiguracyjnych nie wprowadzić przypadkiem różnych wartości.

Adres IP

Najpierw musisz poznać swój adres IP (nazywany również adresem internetowym). Na jego podstawie identyfikowany jest każdy komputer podłączony do sieci. 32-bitowy adres używany w sieciach opartych na protokole TCP/IP jest podzielony na cztery ośmiobitowe części, rozdzielone kropkami, na przykład 155.25.25.16 czy 147.23.145.2.

Dla wygody, adresy IP dzielą się na dwie części; pierwsza identyfikuje samą sieć, natomiast druga jest numerem komputera w danej sieci.

Jeśli chcesz samodzielnie podłączyć się do Internetu, musisz skontaktować się z Internet Network Information Center, instytucją, która przydziela numery IP tak, by się nie powtarzały (opierając się na wielkości sieci). Jeśli nie planujesz podłączenia do Internetu, możesz wybrać sobie dowolny adres IP.

Dla zapewnienia elastyczności adresy IP przydzielane są w zależności od wielkości sieci. Sieci dzielą się na trzy kategorie: A (jeden bajt jest adresem sieci, pozostałe trzy – adresem maszyny w podsieci, co oznacza, że podsieć może zawierać ponad 16 milionów komputerów), B (dwa bajty adresu sieciowego i dwa bajty adresu maszyny w podsieci – czyli ponad 65000 komputerów) i C (trzy bajty adresu sieciowego i jeden dla identyfikacji w podsieci, co oznacza, że w sieci może pracować do 254 komputerów, ponieważ numery 0 i 255 są zarezerwowane). Większość sieci to sieci klasy B i C.

Istnieją ograniczenia co do wartości pierwszego bajtu adresu: w sieci klasy A musi to być liczba z zakresu od 0 do 127, w sieci klasy B – od 128 do 191, a w sieci klasy C – od 192 do 223. Ograniczenie to spowodowane jest faktem, że starsze bity pierwszego bajtu adresu zawierają informacje o klasie sieci. Nie można również używać numerów 0 i 255, zarezerwowanych dla specjalnych celów.

Wiadomości przesyłane za pomocą protokołu TCP/IP zawierają w nagłówku adres IP zarówno komputera, który wysłał dane, jak i komputera, który ma je odebrać. Jeśli zamierzasz podłączyć się do istniejącej sieci, powinieneś dowiedzieć się, jakiego adresu możesz użyć. Jeśli budujesz własną sieć, którą zamierzasz podłączyć do Internetu, powinieneś skontaktować się z Network Information Center. Jeżeli jednak z Internetem i innymi sieciami zamierzasz łączyć się co najwyżej przez telefon, możesz wybrać sobie dowolny numer IP.

Jeśli konfigurujesz tylko sterownik pętli zwrotnej, w ogóle nie potrzebujesz numeru IP. Domyślną wartością jest wtedy 127.0.0.1.

Maska podsieci

Następnym numerem, który będzie potrzebny, jest maska podsieci. Znając numer IP łatwo go znaleźć samemu. Zamiast adresu sieci należy wpisać 255, a pozostałe bajty ustawić na 0. Przykładowo, jeśli chcesz podłączyć się do sieci klasy C, maska podsieci będzie miała postać 255.255.255.0. Dla sieci klasy B jest to 255.255.0.0, a dla klasy A – 255.0.0.0.

Jeśli konfigurujesz sterownik pętli zwrotnej, prawidłową maską jest 255.0.0.0.

Adres sieci

Adres sieci to – w zależności od klasy sieci – pierwszy bajt, dwa lub trzy pierwsze bajty adresu IP odpowiednio dla klas A, B i C. Na przykład jeśli łączysz się z siecią klasy B, a Twój numer IP to 147.120.43.31, to adresem sieci jest 147.120.0.0. Mówiąc ściśle, jest to wynik wykonania bitowej operacji AND na adresie IP i masce podsieci.

Aby otrzymać adres sieci z adresu IP, należy zastąpić w nim numer komputera zerami. Jeśli podłączasz się do sieci klasy C, a Twój adres IP to 201.12.5.23, adresem sieci będzie 201.12.5.0.

Przy konfigurowaniu pętli zwrotnej adres ten jest niepotrzebny.

Adres rozgłoszenia

Adres rozgłoszenia (ang. broadcast) jest używany wtedy, gdy pakiet danych ma trafić do wszystkich urządzeń podłączonych do sieci. Jest to adres sieci, w którym zera zamienione są na 255 (na przykład jeśli Twoim adresem IP jest 147.120.42.31, adres sieci jest równy 147.120.0.0, a adres rozgłoszenia – 147.120.255.255).

Przy konfigurowaniu pętli zwrotnej adres ten jest niepotrzebny.

Adres bramki sieciowej

Adres bramki to numer IP komputera, który jest skonfigurowany jako bramka łącząca sieć lokalną z inną siecią (np. Internet). Jeśli konfigurujesz własną sieć nie podłączoną do innych sieci, adres ten nie jest potrzebny.

Zwykle bramka ma taki sam numer IP jak Twój komputer, z tym że ostatni bajt ma wartość 1, np. jeśli Twój numer IP to 147.120.43.31, to numerem bramki jest prawdopodobnie 147.120.43.1. Taka konwencja przyjęła się już od pierwszych wersji protokołu TCP/IP.

Przy konfigurowaniu pętli zwrotnej adres ten jest niepotrzebny.

Adres serwera nazw

W wielu większych sieciach funkcjonuje komputer przeznaczony do tłumaczenia nazw symbolicznych na numery IP i odwrotnie. Zamiana taka dokonywana jest za pomocą systemu DNS (Domain Name System). Jeśli do Twojej sieci podłączone jest takie urządzenie, właśnie jego adres jest adresem serwera nazw. Jeśli to Twój komputer ma działać jako serwer nazw (co wymaga dodatkowych kroków konfiguracyjnych, nie opisanych tutaj), powinieneś podać numer sterownika pętli zwrotnej, czyli 127.0.0.1.

Przy konfigurowaniu pętli zwrotnej adres ten jest niepotrzebny, ponieważ komputer łączy się tylko sam ze sobą.

Konfigurowanie interfejsu pozornego

Interfejs pozorny jest sposobem na przydzielenie komputerowi numeru IP w przypadku, gdy korzysta on tylko z interfejsów SLIP i PPP. Interfejs pozorny rozwiązuje problem pojawiający się w systemach nie podłączonych na stałe do sieci, w których jedynym prawidłowym adresem IP, pod który można wysłać dane, jest 127.0.0.1. Chociaż za pomocą protokołów SLIP i PPP możesz połączyć się ze światem, to kiedy interfejs nie jest aktywny, nie posiadasz wewnętrznego adresu IP, którego mogłyby używać aplikacje.

Problem ten jest szczególne dokuczliwy, gdy trzeba używać aplikacji, które do swojego działania wymagają podania prawidłowego adresu IP. Przykładowo niektóre edytory tekstów czy narzędzia zarządzające pulpitem wymagają podania takiego adresu. Interfejs pozorny pozwala na ustawienie adresu IP dla Twojego komputera, który nie jest wykorzystywany do niczego oprócz oszukiwania aplikacji.

Konfigurowanie takiego interfejsu jest bardzo proste. Jeśli w pliku /etc/hosts jest wpisany adres IP komputera, wystarczy wydać polecenia:

 

ifconfig dummy nazwa_komputera
route add nazwa_komputera

Spowodują one utworzenie połączenia z Twoim własnym adresem IP. Jeśli wcześniej nie wpisałeś adresu IP do pliku /etc/hosts, musisz to najpierw zrobić.

...

Zgłoś jeśli naruszono regulamin