Zespół Szkół Ponadgimnazjalnych nr 1
im. Tadeusza Kościuszki
w Tomaszowie Mazowieckim
TECHNIKUM ELEKTRONICZNE
PRACA DYPLOMOWA
Serwer internetowy
wykonał: promotor:
Karol Dudek mgr inż. Andrzej Oczkowski
Rok szkolny 2003/2004
Spis treści
1. Linux informacje ogólne ...............................................................................................3
1.1. Co to jest Linux?......................................................................................................................3
1.2. Dystrybucje linuxa ...................................................................................................................4
1.3. Cechy systemu .........................................................................................................................5
1.4. Czym jest wolne oprogramowanie?.........................................................................................6
1.5. Skąd wziąć linuxa?...................................................................................................................7
2. Cel pracy............................................................................................................................8
3. Podstawy użytkowania .....................................................................................................9
3.1. Podstawowe polecenia .............................................................................................................9
3.2. Obsługa dysków.....................................................................................................................10
3.3. Układ katalogów ....................................................................................................................11
3.4. Badanie stanu systemu...........................................................................................................12
3.5. Zarządzanie procesami...........................................................................................................13
4. Podstawy konfiguracji i administracji..........................................................................16
4.1. Użytkownicy i grupy..............................................................................................................16
4.2. Tabela systemów plików........................................................................................................18
4.3. Interfejsy sieciowe .................................................................................................................19
4.4. Filtrowanie pakietów..............................................................................................................21
4.5. Limity dyskowe......................................................................................................................24
4.6. Konfiguracja serwera WWW.................................................................................................25
4.7. Konfiguracja serwera nazw....................................................................................................27
4.8. Konfiguracja serwera FTP .....................................................................................................30
5. Sieci ..................................................................................................................................31
5.1. Sieci komputerowe.................................................................................................................31
5.2. Topologie sieci komputerowych............................................................................................32
5.3. Standardy transmisji...............................................................................................................34
5.4. Ośrodki transmisji..................................................................................................................39
5.5. Protokoły sieciowe.................................................................................................................41
5.6. Zasady dzielenia adresów ......................................................................................................45
5.7. Model sieci OSI .....................................................................................................................48
6. Bibliografia......................................................................................................................50
2
1. Linux informacje ogólne
1.1. Co to jest Linux?
Linux jest to nowoczesny, wielozadaniowy system operacyjny
klasy Unix. Przede wszystkim jest darmowy i stabilny. Sama nazwa
Linux nie dotyczy w zasadzie nazwy systemu, jedynie samego jądra
(ang. kernel), którego twórcą jest oczywiście Linus Torvalds, zaś jądro
wraz z oprogramowaniem potrzebnym do użytkowania systemu
nazywamy dystrybucją. Również większość oprogramowania
przeznaczonego dla niego jest darmowa, zdarzają się wyjątki w postaci
oprogramowania komercyjnego, shareware lub licencji tylko do użytku
domowego, no, ale takie jest prawo rynku. Jednak głównym przesłaniem twórców oprogramowania
dla tego systemu (licencja GPL) jest tworzenie i udostępnianie darmowego oprogramowania wraz
z kodem zródłowym. Oprogramowanie to często przewyższa swoimi możliwościami konkurencyjne
oprogramowanie komercyjne. Każdy, kto zna się na programowaniu może dowolnie zmieniać kod
programu pod warunkiem dołączenia swoich poprawek w postaci kodu do programu. To wszystko
powoduje, że nad oprogramowaniem dla Linuksa pracują tysiące indywidualnych programistów na
świecie, również w Polsce, oraz coraz więcej firm. Wsparcie dla Linuksa z dnia na dzień ogłasza
coraz więcej firm, między innymi producenci sprzętu tacy jak IBM, Intel, HP czy Lexmark. W tej
chwili duża ilość serwerów internetowych postawionych jest na Linuksie, wykorzystywany on jest
przez wiele przedsiębiorstw, firm państwowych, militarnych, rządowych, prestiżowych hoteli,
przykładem może być Kancelaria Sejmu w Polsce, czy Biuro Bezpieczeństwa Narodowego.
3
1.2. Dystrybucje linuxa
Dystrybucją nazywamy przygotowany przez pewną firmę, organizację bądz osobę zestaw
zawierający system operacyjny oraz zbiór aplikacji, skonfigurowanych w specyficzny dla
dystrybucji sposób. Rozmaite dystrybucje różnią się między sobą sposobem instalacji
i konfiguracji, rozlokowaniem plików systemowych, doborem aplikacji, sposobem instalacji
oprogramowania.
Istnieje wiele dystrybucji Linuksa, od najłatwiejszych w użytkowaniu - przeznaczonych
raczej dla początkującego użytkownika, takim przykładem może być Mandrake - instalacja
i konfiguracja podstawowych składników systemu jest niejednokrotnie łatwiejsza niż w systemie
Windows, przez dystrybucje poważniejsze, jednak coraz łatwiejsze do opanowania jak Red Hat czy
SuSE, po takie, które są wyzwaniem dla zagorzałych zwolenników konsoli i konfiguracji ręcznej
- Slackware (jednocześnie jedna z bezpieczniejszych i stabilniejszych dystrybucji) oraz sprawiający
dużo kłopotów w konfiguracji Debian. Co powinniśmy wybrać? Najlepiej spróbować kilku
dystrybucji i samemu ocenić, co nam jest potrzebne i w czym czujemy się najlepiej.
4
1.3. Cechy systemu
Linux to system oferujący bardzo szerokie możliwości ze strony konfigurowalności, wiec
nie sposób wypisać do czego może być wykorzystywany. Osobiście linuxa uważam za doskonały
system do zastosowań serwerowych. Do zalet należy zaliczyć:
" Stabilny i przetestowany w trudnych warunkach. Może pracować latami bez wyłączania.
Nie degraduje się z czasem.
" Wysoce konfigurowalny za pomocą plików tekstowych. Po zrozumieniu zasady działania
poszczególnych programów, system staje się bardzo przejrzysty.
" Darmowy i wolny nie musisz za niego płacić, masz swobodę użytkowania, modyfikacji
i redystrybucji.
" Błędy systemowe szybko są usuwane. Po wykryciu błędu poprawni pojawiają się co
najwyżej po upływie 24 godziny.
" Wielozadaniowość z wywłaszczaniem i podziałem czasu. W najnowszych jądrach istnieje
możliwość wywłaszczania procesu w trybie jądra. Istnieje też możliwość uruchomienia
procesu w miękkim czasie rzeczywistym, zaś z nakładkami w rodzaju RTLinux możliwe
jest korzystanie z twardego czasu rzeczywistego.
" Wielodostęp, czyli wsparcie dla pracy z wieloma użytkownikami. Użytkownicy pracujący
pod Linuksem są od siebie całkowicie odizolowani i nie mogą wpływać na siebie nawzajem.
" Niezależność od architektury procesora. Działa zarówno na x86, jak i na IA64,
x86-64, Motoroli 68k, PowerPC, Alphie, ARM, MIPS, paRISC oraz Sparc.
" Zgodność z normą POSIX 1003.1 i częściowa zgodność z System V i BSD - możliwość
swobodnego uruchamiania programów z innych uniksów, często nawet bez rekompilacji.
" Ochrona pamięci, sprzętu, plików, zasobów. Użytkownik systemu nie może wpływać na
innych użytkowników ani na stabilność maszyny.
" Obsługa wielu systemów plików. Wśród nich Ext2, Ext3, ReiserFS, XFS, FAT, FAT32,
NTFS, Amiga FFS, UFS i wiele innych.
" Bezkompromisowa obsługa sieci. Mocne wsparcie dla kart sieciowych, doskonała obsługa
protokołów internetowych, obsługa Appletalk i IPX, nadchodząca profesjonalna obsługa
IPv6.
" Ochrona systemu przed atakami Buffer Overflow, audytowanie i kontrola uprawnień MAC
poprzez specjalne patche - znaczne podwyższenie poziomu bezpieczeństwa.
" Wysoka wydajność.
" Możliwość zdalnego dostępu, ssh, telnet, rlogin.
Jak wypisujemy zalety, to należało by wypisać także wady. Jest ich znacznie mniej:
" Brak możliwości wykonywania aplikacji napisanych pod kernel32.
" Problemy z driverami dla nietypowych urządzeń do przeznaczenia typowo
windowsowego .
" Brak jednolitej metody instalacji i konfiguracji systemu.
" Skomplikowany, to oczywiście może być zaletą i wadą.
5
1.4. Czym jest wolne oprogramowanie?
Wolne oprogramowanie odnosi się do prawa użytkowników do swobodnego uruchamiania,
kopiowania, rozpowszechniania, analizowania, zmian i ulepszania programów. Dokładniej,
mówimy o czterech rodzajach wolności użytkowników programu:
" Wolność uruchamiania programu, w dowolnym celu.
" Wolność analizowania, jak program działa, i dostosowywania go do swoich potrzeb
(warunkiem koniecznym jest tu dostęp do kodu zródłowego).
" Wolność rozpowszechniania kopii.
" Wolność udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń,
dzięki czemu może z nich skorzystać cała społeczność (warunkiem koniecznym jest tu
dostęp do kodu zródłowego).
Oprogramowanie możemy nazwać wolnym, jeśli wszyscy użytkownicy posiadają w pełni
wszystkie te prawa. Zatem, powinniśmy mieć swobodę rozpowszechniania kopii programu,
zmodyfikowanych bądz oryginalnych, za darmo bądz pobierając opłatę za dystrybucję, wszędzie
i każdemu.
6
1.5. Skąd wziąć linuxa?
GNU/Linux jest systemem wolno-dostępnym i darmowym. Istnieje więc bardzo wiele
sposobów zdobycia tegoż systemu. Alternatywnym sposobem (jeśli dysponujemy stałym
podłączeniem do Internetu) jest ściągnięcie systemu z sieci. Jeśli już wiemy jaką dystrybucje
chcemy zainstalować to możemy przejść do ściągania. Dobrym serwerem z którego możemy
pobrać obraz ISO płyt instalacyjnych linuxów jest ftp://sunsite.icm.edu.pl/pub/Linux/. Dysponując
łączem o przepustowości 512 kb/s, możemy pobrać obraz instalacyjny już w przeciągu 3 godzin.
7
2. Cel pracy
Celem pracy jest przedstawienie wiedzy dotyczącej systemu linux/unix oraz z zakresu sieci
komputerowych. Pokaże ona zasady obowiązujące w systemie linux, począwszy od wyjaśnienia
podstaw użytkowania, poprzez pisanie prostych skryptów w powłoce, aż po administrację. Praca
zawiera również opisy konfiguracji niektórych demonów sieciowych, oraz systemy służące do
zabezpieczenia serwera przed niepowołanymi użytkownikami sieci. Wszystkie te zagadnienia
omówię na podstawie systemu linux Slackware, którego aktualną wersję dołączyłem do mojej
pracy. Zawarty opis dotyczących sieci komputerowych przybliży nam zasady budowania ich. Praca
została napisana w celach edukacyjnych, każdy po jej przeczytaniu powinien posiąść teoretyczne
podstawy.
Wersją praktyczną tejże pracy jest skonfigurowanie głównego serwera pracowni
komputerowych Zespołu Szkół Ponadgimnazjalnych nr 1 w Tomaszowie Mazowieckim, na którym
jest uruchomiona oficjalna strona szkoły (www.zsp1.edu.pl). Jednocześnie zobowiązuje się do
administracji tegoż serwera, po zakończeniu edukacji w naszej szkole.
8
3. Podstawy użytkowania
3.1. Podstawowe polecenia
Aby płynnie się poruszać po omawianym systemie należało by wymienić kilka programów
do wykonywania podstawowych czynności, takich jak utworzenie katalogu, czy kopia pliku.
at czas czynność - wykonanie czynności w zadanym czasie
cal - wyświetlenie kalendarza
cd katalog - zmiana katalogu bieżącego
cat plik - wyświetlenie zawartości pliku
chfn - zmienia informacje fingera
chown user:grupa plik - zmiana właściciela pliku
clear - czyszczenie ekranu
cmp plik plik - porównanie zawartości dwóch plików
cp plik plik - kopiowanie pliku
date - wyświetla bieżącą datę i czas
df - pokazuje ilość wolnego miejsca na zamontowanych dyskach
find - odszukanie plików spełniających określone warunki
finger user - informacje o użytkowniku bądz użytkownikach
help - pomoc
joe - edytor tekstu
kill pid - zakończenie pracy procesu
lastcomm użytkownik - sprawdzenie, co ostatnio robił użytkownik
ln - dowiązanie pliku do innego pliku
logout wylogowanie
ls - wyświetlenie zawartości katalogu
lsmod - lista modułów załadowanych w pamięci
mail - wysyłanie i odbieranie poczty
make - kompilowanie aplikacji
man program - szczegółowa pomoc na temat konkretnego programu
mkdir katalog - tworzenie katalogu
mount /dev/urządzenie /mnt/katalog - montowanie nowego urządzenia
mv plik plik przeniesienie pliku
passwd - zmiana hasła
pine - prosty tekstowy menadżer poczty
ps - lista procesów użytkownika
pwd - wyświetlenie nazwy aktualnego katalogu
rm plik - usuwa plik
rmdir katalog - usuwa katalog
sleep czas - zawieszenie procesu na określoną liczbę sekund
shutdown -r now - restart komputera teraz
shutdown -h now - natychmiastowe wyłączenie komputera
users - lista użytkowników aktualnie pracujących w systemie
talk - program do prowadzenia rozmów
telnet - zdalna praca na innym komputerze
vi - prosty edytor
who - użytkownicy w systemie
write login - pisanie do zalogowanego użytkownika
9
3.2. Obsługa dysków
Obsługa systemu plików uniksów nie koncentruje się wokół napędów, tak jak w systemie
windows. W uniksach główny system plików montowany jest w korzeniu - katalogu głównym,
a kolejne systemy plików - partycje, dyski wymienne, dyski sieciowe - montowane są
w podkatalogach. Partycje nie są w unixie tylko bajerem - dzielą system plików w sposób
strukturalny, pozwalając na przykład na współdzielenie danych tylko do odczytu (/usr) bądz
katalogów użytkowników (/home) przez sieć między wieloma maszynami.
Do montowania i odmontowywania systemów plików służą dwie podstawowe komendy:
mount i umount. Uprawnienia do korzystania z nich posiada administrator. Admin może jednak
wyznaczyć systemy plików, które mogą być montowane przez zwykłych użytkowników: dokonuje
się tego przez odpowiedni wpis w /etc/fstab. Katalogi (/mnt/floppy) i (/mnt/cdrom) odpowiadają
stacji dyskietek i cdrom. Przykład skorzystania z czytnika CD-ROM:
kajojj@sli:~$ cd /mnt
kajojj@sli:/mnt$ ls cdrom
kajojj@sli:/mnt$ mount cdrom
kajojj@sli:/mnt$ ls cdrom
debian install pics README.txt
dists isolinux pool tools
doc md5sum.txt README.html
kajojj@sli:/mnt$ umount cdrom
kajojj@sli:/mnt$ ls cdrom
kajojj@sli:/mnt$
Linux nie nadaje kolejnym odnalezionym urządzeniom nazw, tak jak robi to Windows.
W zamian stosuje nazywanie urządzenia z zależności od jego miejsca występowania - kontrolera,
trybu pracy w IDE (master/slave) czy partycji.
Zacznijmy od stacji dyskietek. W komputerze klasy PC można mieć tylko dwie takowe, stąd
tylko dwa pliki urządzenia dla nich: /dev/fd0 i /dev/fd1, odpowiednio pierwszej i drugiej stacji.
Dodano jednak możliwość wyboru rozmiaru dyskietki, którą odczytujemy bądz zapisujemy. Nazwa
urządzenia brzmi wtedy /dev/fd(numer)u(rozmiar), gdzie rozmiar wyrażony jest w kilobajtach.
Nazwy napędów IDE tworzy się według schematu: /dev/hd(pozycja)(partycja). Pozycja napędu IDE
to pojedyncza mała litera z zakresu a-t. Numery partycji na komputerach klasy PC ustala się
następująco. Partycje podstawowe mają numery 1-4, zależnie od ich położenia w tablicy partycji.
Natomiast numery od 5 w górę przydzielane są dyskom logicznym w kolejności występowania. Dla
każdego kontrolera nadawane są dwie litery, jedna dla napędu master, druga dla slave. Schemat
wygląda więc następująco:
/dev/hda - 1 kontroler, master
/dev/hdb - 1 kontroler, slave
/dev/hdc - 2 kontroler, master
/dev/hdd - 2 kontroler, slave
10
3.3. Układ katalogów
/ - katalog główny
bin/ - tutaj znajdują się niezbędne do funkcjonowania systemu programy np. pwd, kill, bash
boot/ - miejsce gdzie umieszczane jest jądro systemu i pliki startowe
dev/ - tutaj w postaci plików figurują urządzenia
etc/ - zawiera wszystkie pliki konfiguracyjne
home/ - w tym katalogu są podkatalogi udostępnione dla użytkowników systemu
lib/ - tutaj przechowywane są biblioteki systemowe, pliki zabezpieczające system (pam) oraz
moduły jądra, które możemy załadować
proc/ - pliki statusu jądra, urządzeń i procesów
root/ - odpowiednik katalogów domowych, z tym małym wyjątkiem, że jego właścicielem jest
administrator, i nikt poza nim nie ma żadnych praw dostępu
sbin/ - programy odpowiedzialne za pracę systemu np. insmod, lilo itd. dostępne tylko dla
administratora
tmp/ - pliki tymczasowe tworzone przez różne aplikacje podczas ich pracy
usr/ - zawiera mnóstwo programów, bibliotek, dokumentów, które są dostępne dla
użytkowników systemu
11
3.4. Badanie stanu systemu
Linuxa pamięć wolna jest pamięcią zmarnowaną. Jądro stara się więc wypełnić wolną
pamięć, przykładowo pamięcią podręczną dysku. Kiedy potrzeba więcej pamięci fizycznej do pracy
programów, pamięć podręczna jest kurczona. Dlatego jedynym czasem, kiedy można zobaczyć
dużą ilość wolnej pamięci, jest moment tuż po uruchomieniu. Aby uzyskać informacje o pamięci
możemy użyć programu free:
kajojj@sli:~$ free -m -t
total used free shared buffers cached
Mem: 503 469 33 0 107 267
-/+ buffers/cache: 94 408
Swap: 494 0 494
Total: 997 469 527
kajojj@sli:~$
Informacje o partycjach, ile wolnego miejsca, ile użytego, możemy sprawdzić programem df:
kajojj@sli:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 5.0G 927M 3.9G 20% /
/dev/hda6 10G 33M 9.4G 1% /var/spool
/dev/hda7 93G 489M 88G 1% /home
kajojj@sli:~$
Wpisując w konsole polecenie uptime otrzymamy informacje o czasie pracy systemu:
kajojj@sli:~$ uptime
20:50:56 up 112 days, 2:20, 3 users, load average: 0.00, 0.00, 0.00
kajojj@sli:~$
W wyświetleniu informacji na temat pamięci wirtualnej pomoże nam program vmstat:
kajojj@sli:~$ vmstat
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy wa id
1 0 0 33516 110076 274136 0 0 0 4 19 15 81 0 0 19
kajojj@sli:~$
12
3.5. Zarządzanie procesami
Procesy w uniksie mogą powstać tylko w jeden sposób - przez duplikację istniejącego
procesu podczas wywołania systemowego fork. Jedynym wyjątkiem jest proces init o numerze 1,
który tworzony jest od zera przez kernel podczas uruchamiania systemu. Uruchomienie innego
programu przez proces następuje przez wywołanie execve. Każdy proces, z racji sposobu
powstawania, posiada swój proces macierzysty. Proces taki posiada zarówno swoje prawa, jak
i obowiązki. Proces macierzysty może nadzorować pracę procesu potomnego za pomocą ptrace -
tak działają debuggery. Do obowiązków należy odczytanie kodu powrotnego procesu za pomocą
wywołania wait. Jeśli kod powrotny nie zostanie odczytany, zakończony proces będzie wciąż
widoczny na liście procesów jako zombie.
Procesy uniksowe poddawane są szeregowaniu z wywłaszczaniem. Każdy proces, który
zostaje umieszczony na procesorze, jest utrzymywany na nim tylko przez określony kwant czasu,
a następnie usuwany, żeby na jego miejsce mógł wejść inny. Stosowany jest system priorytetów,
pozwalający tak ustawić intensywnie używające procesor procesy tła, aby nie blokowały pracy
procesom interakcyjnym. Jednak, niezależnie od priorytetu, każdy proces musi otrzymać kwant
czasu; nie ma możliwości dławienia przez procesy wysoko-priorytetowe.
W systemie Linux informacje o pracujących procesach udostępnione są w podkatalogach
/proc o nazwie takiej, jak PID procesu. Z informacji tych korzysta program ps, który pozwala na
wyświetlenie ich w uporządkowanej, tabelarycznej postaci. Program ps przyjmuje liczne parametry,
pozwalając dopasować ilość wyświetlanych procesów i wyświetlane informacje do chwilowych
potrzeb. Wykonajmy ps bez żadnych argumentów:
kajojj@sli:~$ ps
PID TTY TIME CMD
29518 pts/0 00:00:00 bash
29530 pts/0 00:00:00 ps
kajojj@sli:~$
Wyświetlany jest numer PID, terminal sterujący procesu, całkowity czas, w którym proces
zajmował procesor, oraz komenda, za pomocą której proces został uruchomiony. Wyświetlono
jedynie te procesy, które pracują na tym samym terminalu, co użytkownik. Aby wyświetlić procesy,
które są na innych terminalach lub nie posiadają żadnego terminala, należy użyć opcji x:
kajojj@sli:~$ ps x
PID TTY STAT TIME COMMAND
29517 ? S 0:00 sshd: kajojj@pts/0
29518 pts/0 S 0:00 -bash
29532 pts/0 R 0:00 ps x
kajojj@sli:~$
Aby wyświetlić wszystkie procesy używane w systemie, trzeba połączyć dwie opcje a i x:
kajojj@sli:~$ ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:04 init [3]
2 ? SW 0:00 [keventd]
3 ? SWN 0:01 [ksoftirqd_CPU0]
4 ? SW 0:00 [kswapd]
5 ? SW 0:00 [bdflush]
itd&
Wywołując komendę ps ax, pewno nasuwa się pytanie. Czy procesy które uruchamiamy
może zobaczyć inny użytkownik systemu? Tak, na standardowym kernelu bez żadnego problemu
użytkownik może podejrzeć jakie procesy mam uruchomione. Jednak po załataniu jądra patchami
13
grsecurity można uzyskać ukrycie procesów innych użytkowników, dając pełną prywatność.
Oczywiście root wciąż posiada prawo zobaczenia procesów wszystkich użytkowników.
Przydatną opcją formatującą jest opcja f. Powoduje ona wyświetlenie drzewa procesów,
uwzględniając zależność proces macierzysty - proces potomny:
kajojj@sli:~$ ps fx
PID TTY STAT TIME COMMAND
29613 ? S 0:00 sshd: kajojj@pts/5
29614 pts/5 S 0:00 -bash
29626 pts/5 R 0:00 \_ ps fx
29597 ? S 0:00 sshd: kajojj@pts/0
kajojj@sli:~$
Top jest programem działającym w czasie rzeczywistym, prezentującym najbardziej
pożerające procesor i pamięć procesy w systemie. Po uruchomieniu, ekran terminala wygląda
następująco:
kajojj@sli:~$ top
20:59:56 up 112 days, 2:28, 2 users, load average: 0.00, 0.00, 0.00
52 processes: 49 sleeping, 3 running, 0 zombie, 0 stopped
CPU states: 0.0% user 0.0% system 100.0% nice 0.0% iowait 0.0% idle
Mem: 515480k av, 480924k used, 34556k free, 0k shrd, 109648k
136356k active, 279728k inactive
Swap: 506008k av, 0k used, 506008k free 274112k
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
1 root 8 0 236 236 208 S 0.0 0.0 0:04 0 init
2 root 8 0 0 0 0 SW 0.0 0.0 0:00 0 keventd
3 root 19 19 0 0 0 SWN 0.0 0.0 0:01 0 ksoftirqdCPU
4 root 9 0 0 0 0 SW 0.0 0.0 0:00 0 kswapd
5 root 9 0 0 0 0 SW 0.0 0.0 0:00 0 bdflush
Jedną z typowo uniksowych metod komunikacji proces - proces i jądro - proces są sygnały.
Sygnały są mechanizmem asynchronicznym - proces po otrzymaniu sygnału przerywa pracę
i wykonuje kod obsługi sygnału. Część sygnałów służy do komunikowania procesu o kluczowych
wydarzeniach przez jądro, takie jak słynny SIGSEGV, sygnalizujący błąd dostępu do pamięci. Te
sygnały nie mogą być ignorowane. Inne sygnały przeznaczone są do użycia w komunikacji
międzyprocesowej.
14
Oto tabela najczęściej używanych sygnałów:
nr nazwa dom. akcja opis
1 SIGHUP zakończenie wyłączenie terminala sterującego
2 SIGINT zakończenie przerwanie z klawiatury (CTRL+C)
3 SIGQUIT zrzut core wyjście nakazane z klawiatury
4 SIGILL zrzut core próba wykonania nieprawidłowej instrukcji
6 SIGABRT zrzut core sygnał przerwania pracy procesu wywołany przez abort()
9 SIGKILL zakończenie natychmiastowe usunięcie procesu
11 SIGSEGV zrzut core nieprawidłowe odwołanie do pamięci wirtualnej
14 SIGALRM zakończenie sygnał alarmowy wywołany przez funkcję alarm()
15 SIGTERM zakończenie sygnał zakończenia pracy procesu
17 SIGCHLD ignorowanie zatrzymanie bądz wyłączenie procesu potomnego
18 SIGCONT start kontynuacja zatrzymanego procesu
Możliwe jest ręczne wysłanie sygnału do procesu. Do tego celu wykorzystuje się polecenie
kill. Domyślnie wysyła ono sygnał SIGTERM, może jednak wysłać dowolny sygnał.
15
4. Podstawy konfiguracji i administracji
4.1. Użytkownicy i grupy
Konfiguracja użytkowników i grup w linuksie i innych uniksach tradycyjnie znajduje się
w trzech plikach: /etc/passwd, w którym znajdują się dane użytkowników, /etc/group, gdzie
zapisane są informacje o grupach i przynależności do nich, oraz /etc/shadow, gdzie znajdują się
zaszyfrowane hasła oraz informacje dotyczące autoryzacji.
/etc/passwd [ login:passwd:uid:gid:gecos:home:shell ] gdzie:
" login - nazwa użytkownika w systemie
" passwd - hasło kodowane DES, w systemach z shadow wpisywane jest x
" uid - numer użytkownika
" gid - numer głównej grupy
" gecos - pole komentarza
" home - katalog domowy użytkownika
" shell - domyślny interpreter poleceń
np. kajojj:x:100:100:Karol Dudek:/home/kajojj:/bin/bash
/etc/group [ group::gid:users ] gdzie:
" group - nazwa grupy
" gid - numer grupy
" users - lista nazw użytkowników po przecinku
/etc/shadow [ login:passwd:t1:t2:t3:t4:t5:t6:none ] gdzie:
" login - nazwa użytkownika
" passwd - hasło, zakodowane w DES lub MD5
" t1 - data ostatniej zmiany hasła, w dniach od 01.01.1970 GMT
" t2 - dni od zmiany hasła, po których można zmienić je ponownie
" t3 - dni od zmiany hasła, po których hasło musi być zmienione
" t4 - dni przed wygaśnięciem hasła, kiedy użytkownik jest ostrzegany
" t5 - dni po wygaśnięciu hasła, po których konto jest wyłączane
" t6 - data wyłączenia konta, w dniach od 01.01.1970 GMT
" none - pozostawione dla przyszłego użytku
Narzędzie chfn służy do zmiany pola gecos. Wywołane bez parametru pierw spyta nas o
hasło, a następnie zapyta o zawartość pola gecos. Użyte przez roota pozwala na zmianę danych
dowolnego użytkownika - jego nazwę należy podać jako parametr. Natomiast program chsh
pozwala na zmianę domyślnego shella - tzn. tego, który przywita nas po prawidłowym logowaniu.
Każdy użytkownik może zmienić swój shell na dowolny z pliku /etc/shells. Superużytkownik może
zmienić shella dowolnego użytkownika, ponadto nie jest ograniczony do shelli z /etc/shells.
16
Program useradd może przyjmować parametry:
-c - ręczne ustawienie pola komentarza
-d - domyślny katalog domowy
-e - data, od której konto użytkownika zostanie wyłączone
-f - liczba dni od wygaśnięcia hasła, po których konto jest blokowane
-g - główna grupa użytkownika
-m - automatyczne tworzenie katalogu domowego użytkownika na podstawie wzorca /etc/skel
-k - pozwala ustawić katalog wzorca inny niż /etc/skel
-s - domyślny shell użytkownika
-u - uid użytkownika
Program userdel przyjmuje jeden parametr - nazwę użytkownika do usunięcia. Dodatkowo
dodana opcja -r spowoduje usunięcie wraz z użytkownikiem jego katalogu domowego.
17
4.2. Tabela systemów plików
Plik /etc/fstab jest to tabela systemów plików, jakie są dostępne w systemie. Opisuje,
w jakich punktach drzewa katalogów montowane są poszczególne systemy plików, w jakich
formatach są zapisane i kto ma prawo do ich montowania i odmontowywania. Za pomocą fstab
można również ustawić kilka dodatkowych opcji. Plik fstab ma format kolumnowy. Poszczególne
kolumny oddzielane są spacjami bądz znakami tabulatora. Typowy plik fstab wygląda tak:
kajojj@sli:/etc# cat fstab
/dev/hda5 swap swap defaults 0 0
/dev/hda1 / ext3 defaults 1 1
/dev/hda6 /var/spool ext3 defaults 1 2
/dev/hda7 /home ext3 defaults 1 2
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
/\ /\ /\ /\ /\ /\
urządzenie punkt montowania sys. plików opcje dump fsck
Znaczenie poszczególnych kolumn:
" urządzenie montowane urządzenie np. dysk (/dev/hda1), cdrom (/dev/cdrom)
" punkt montowania jest to katalog wskazujący miejsce gdzie ma być montowane
" system plików najpopularniejsze typy systemów plików to: ext3, ex2, jfs, reiserfs
" opcje opcje montowania. Większość można zanegować, dodając no na początku nazwy:
o async - asynchroniczny (tzn. buforowany) zapis do systemu plików
o auto - montowany automatycznie przy uruchamianiu systemu
o defaults - suma rw, suid, dev, exec, auto, nouser i async
o dev - obsługiwanie plików urządzeń
o exec - zezwolenie na uruchamianie plików wykonywalnych z urządzenia
o quota, usrquota, grpquota - włączenie mechanizmów quoty dyskowej
o remount - spróbuj przemontować już zamontowany system plików
o ro - montuj tylko do odczytu
o rw - montuj do odczytu i zapisu
o suid - zezwól na działanie bitom SUID i SGID
o sync - synchroniczny zapis do systemu plików. Wolniejszy od zapisu
asynchronicznego, jednak znajduje pewne zastosowania
o user - zezwól użytkownikom na zamontowanie systemu plików
" dump - opcja dla programu do automatycznego backupu, zazwyczaj nie używane
" fsck - kolejność sprawdzania nieprawidłowo odmontowanych systemów plików za pomocą
fsck, zero oznacza brak konieczności sprawdzania
18
4.3. Interfejsy sieciowe
Połączenia sieciowe w systemie Linux są dostępne administratorowi pod postacią
interfejsów. Każdy interfejs posiada nazwę oraz jeden lub więcej adresów przypisanych do tego
interfejsu. Najczęściej spotykane interfejsy sieciowe to:
" lo - Interfejs loopback pozwala na połączenie się z samym sobą za pośrednictwem
protokołów IP. Zgodnie ze standardem, przypisany jest mu adres 127.0.0.1. Adres ten
wskazuje zawsze na lokalną maszynę oraz nie jest dostępny z innych sieciowanych maszyn.
" ethx - Interfejsy eth są połączeniami z siecią w standardzie Ethernet, obecnie
najpopularniejszym standardem budowy sieci. Interfejsów ethernetowych może być
w systemie dowolna ilość; numerowane są one w kolejności wykrycia. Do obsługi ethernetu
potrzebny jest sterownik do zainstalowanej karty sieciowej obecny w jądrze.
W dystrybucyjnych kernelach wystarczy załadować moduł sterownika.
" pppx - Interfejsy ppp, działają przez współdziałanie sterownika ppp w jądrze systemu oraz
demona ppp w przestrzeni użytkownika.
Najpopularniejszym narzędziem do zarządzania interfejsami sieciowymi jest z pewnością
ifconfig. Pozwala on na sprawdzenie stanu, podnoszenie, wyłączanie oraz ustawianie adresu
interfejsu. Aby użyć ifconfig do konfiguracji interfejsu, należy wywołać ifconfig z nazwą interfejsu
jako pierwszy parametr i poleceniem jako drugi. Wywołany bez parametrów listuje wszystkie
zarejestrowane w systemie interfejsy sieciowe wraz z adresami:
root@sli:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:01:03:41:08:A9
inet addr:80.53.60.46 Bcast:80.53.60.47 Mask:255.255.255.252
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1729591 errors:0 dropped:0 overruns:0 frame:0
TX packets:1456500 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:989981103 (944.1 Mb) TX bytes:146394405 (139.6 Mb)
Interrupt:11 Base address:0xd000
eth1 Link encap:Ethernet HWaddr 00:01:03:41:06:6F
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:167840 errors:0 dropped:0 overruns:24 frame:0
TX packets:230649 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14899998 (14.2 Mb) TX bytes:247291954 (235.8 Mb)
Interrupt:10 Base address:0xd400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:13667 errors:0 dropped:0 overruns:0 frame:0
TX packets:13667 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:882694 (862.0 Kb) TX bytes:882694 (862.0 Kb)
root@sli:~#
19
Routing w ogólności to kierowanie ruchem pakietów. Mechanizmy routingu decydują na
podstawie rozmaitych czynników, które pakiety powędrują do których interfejsów sieciowych.
Najpopularniejszą metodą routingu jest routowanie statyczne, polegające na kierowaniu pakietów
do interfejsów sieciowych na podstawie adresu przeznaczenia pakietu. Do zarządzania routingiem
statycznym służy polecenie route. Wywołanie go bez parametrów spowoduje wylistowanie
aktualnej zawartości tabeli routingu:
root@sli:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
80.53.60.44 * 255.255.255.252 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
loopback * 255.0.0.0 U 0 0 0 lo
default router.sli.pl 0.0.0.0 UG 1 0 0 eth0
root@sli:~#
20
4.4. Filtrowanie pakietów
Użytkownik podłączony do sieci rzadko nie obawia włamania na swoją maszynę.
W zupełnie innej sytuacji jest administrator. Z nie zaufanych sieci, takich jak Internet, mogą
przybywać pakiety tworzone przez sieciowych włamywaczy, zwanych popularnie hackerami,
których celem jest zbadanie struktury sieci bądz przeprowadzenie ataku. Ponadto potrzebne mogą
być mechanizmy translacji adresów NAT, aby zezwolić użytkownikom sieci wewnętrznej na dostęp
do Internetu lub umieścić kilka serwerów pod jednym internetowym adresem IP. Potrzebny jest
więc mechanizm, który będzie w stanie analizować zawartość pakietów sieciowych i na jej
podstawie decydować o losie pakietów. Mechanizm taki nazywa się filtrem pakietowym. System
Linux wyposażony jest w filtr netfilter, dostępny dla administratora przez iptables. Kluczem do
poprawnego skonfigurowania filtru pakietowego jest dokładne zrozumienie zasad jego
funkcjonowania. Zostaną więc one dokładnie omówione.
Najmniejszą jednostką konfiguracji filtra pakietowego jest reguła. Zawiera ona zbiór
warunków, jakie musi spełniać pakiet, oraz akcję, jaka zostanie wykonana, gdy warunki zostaną
spełnione. Pojedyncze reguły grupowane są w łańcuchy. Zbiór łańcuchów natomiast tworzy tabelę.
Istnieją trzy tabele, mianowicie:
" filter - domyślna tabela, służąca do filtrowania pakietów
" nat - tabela ta jest wywoływana przez pakiety rozpoczynające nowe połączenia, steruje
mechanizmem translacji adresów
" mangle - tabela specjalizowana w modyfikacji przepływających pakietów
Każda z tabel zawiera kilka predefiniowanych łańcuchów oraz łańcuchy zdefiniowane przez
administratora. Istnieją następujące predefiniowane łańcuchy:
" INPUT - wywoływany dla pakietów przybywających z sieci przeznaczonych dla lokalnej
maszyny
" FORWARD - wywoływany dla pakietów routowanych przez lokalną maszynę, lecz
pochodzących spoza niej i nie przeznaczonych dla niej
" OUTPUT - wywoływany dla pakietów tworzonych lokalnie i wychodzących poza maszynę
" PREROUTING - wywoływany dla pakietów z zewnątrz jeszcze przed ich routowaniem
" POSTROUTING - wywoływany dla pakietów, które właśnie opuszczają maszynę
Różne tabele dysponują różnymi wbudowanymi łańcuchami. Tabela filter zawiera łańcuchy
INPUT, FORWARD i OUTPUT. Warte zauważenia jest, że (w przeciwieństwie do występującego
w kernelach 2.2 ipchains) pakiet może znalezć się w tylko jednym z tych trzech łańcuchów. Tabela
nat zawiera łańcuchy PREROUTING, OUTPUT i POSTROUTING. Natomiast tabela mangle
zawiera wszystkie rodzaje wbudowanych łańcuchów. Każdy pakiet rozpoczyna swoją podróż przez
filtr pakietowy w jednym z predefiniowanych łańcuchów. Aańcuch skanowany jest od góry do dołu
w poszukiwaniu reguł, które będą odpowiadać sprawdzanemu pakietowi. Po napotkaniu takiej
reguły, wykonywana jest jej akcja. Pozostała część łańcucha nie jest już skanowana. Wyjątkiem jest
przypadek, gdy wywołany zostanie łańcuch zdefiniowany przez administratora zakończony akcją
RETURN. Skanowanie rozpocznie się wtedy od kolejnej reguły od tej, która wywołała przeskok do
łańcucha administratora. Jeśli pakiet opuszcza łańcuch bez wykonania żadnej akcji, wykonywana
jest akcja domyślna (chain policy). Do zarządzania regułami służy polecenie iptables. Można je
wywołać na następujące sposoby:
" iptables -t tabela -A łańcuch opis_reguły
Dodaje regułę na koniec wskazanego łańcucha we wskazanej tabeli. Parametr -t można
pominąć, zostanie wtedy użyta tabela filter.
21
" iptables -t tabela -D łańcuch opis_reguły
Usuwa zadaną regułę z łańcucha.
" iptables -t tabela -I łańcuch numer_reguły opis_reguły
Dodaje regułę we wskazanym miejscu łańcucha. Jeśli pominie się numer_reguły, reguła
zostanie wstawiona na początku łańcucha.
" iptables -t tabela -R łańcuch numer_reguły opis_reguły
Zamienia regułę wskazaną numerem na opisaną w poleceniu.
" iptables -t tabela -D łańcuch numer_reguły
Usuwa regułę o podanym numerze.
" iptables -t tabela -L łańcuch
Listuje reguły we wskazanym łańcuchu. Pominięcie nazwy łańcucha spowoduje
wylistowanie całej zawartości tabeli.
" iptables -t tabela -N łańcuch
Tworzy łańcuch użytkownika o zadanej nazwie.
" iptables -t tabela -X łańcuch
Usuwa łańcuch użytkownika. Warunkiem jest brak odwołań do wskazanego łańcucha
w innych łańcuchach.
" iptables -t tabela -P łańcuch domyślny_cel
Ustawia policy (domyślną akcję) zadanego łańcucha.
Na definicję reguły składa się dowolna ilość warunków oraz dokładnie jedna akcja.
W przypadku braku warunków akcja wykonywana jest zawsze, oczywiście tylko wtedy, gdy
wykonanie łańcucha dojdzie do takiej reguły. Natomiast reguła posiadająca tylko warunki, a nie
posiadająca akcji, będzie używana wyłącznie do liczenia pakietów pasujących do warunków.
Najczęściej używane warunki to:
" -p protokół - protokół, do którego należy pakiet. Może być to tcp, udp, icmp lub all
(wszystkie). Może być również użyta wartość numeryczna. Wykrzyknik przed nazwą
protokołu odwraca znaczenie warunku.
" -s adres_zródłowy/maska - adres zródłowy pakietu. Maska może być zapisana tradycyjnie
- w postaci czterech liczb oddzielonych kropkami, np. 255.255.255.0 - bądz jako liczbę
oznaczającą ilość bitów ustawionych po lewej stronie maski. W przypadku nie podania
maski, przyjmowana jest wartość domyślna /32 - akceptowany jest więc tylko zadany adres.
Wykrzyknik przed adresem odwraca znaczenie warunku.
" -d adres_zródłowy/maska - adres docelowy pakietu. Zasady zapisu adresu takie same, jak
dla adresu zródłowego.
" -i interfejs - interfejs, z którego pakiet został przyjęty. Można użyć wykrzyknika dla
odwrócenia znaczenia warunku.
" -o interfejs - interfejs, przez który pakiet zostanie wysłany.
" --source-port port - port zródłowy lub zakres portów wg. schematu
port_minimalny:port_maksymalny. Użyteczne jedynie z -p tcp lub udp.
" --destination-port port - port docelowy lub zakres portów wg. schematu
port_minimalny:port_maksymalny. Użyteczne jedynie z -p tcp lub udp.
22
Akcję definiuje się, używając parametru -j. Najczęściej używane akcje to:
" ACCEPT - przyjmij pakiet
" DROP - wyrzuć pakiet bez żadnego komunikatu
" RETURN - powoduje powrót z łańcucha zdefiniowanego przez administratora do łańcucha,
z którego został on wykonany
" REJECT - odrzuca pakiet z odesłaniem komunikatu o błędzie, domyślnie ICMP port
unreachable
" MARK - oznaczenie pakietu za pomocą wartości numerycznej podanej w parametrze
--set-mark (użyteczne w tabeli mangle)
" MASQUERADE - maskuje adres nadawcy pakietu, użyteczne wyłącznie w łańcuchu
POSTROUTING tabeli nat. Powinno się używać jedynie przy dynamicznie przydzielanym
adresie IP.
" SNAT - zmienia adres zródłowy pakietów i zapamiętuje tą zmianę dla danego połączenia.
Używane głównie do podłączania sieci LAN do Internetu przez łącze ze stałym adresem IP.
Użyteczne wyłącznie w łańcuchu POSTROUTING tabeli nat. Akceptuje parametr --to-
source, wskazujący adres IP do wstawienia jako adres zródłowy - zazwyczaj IP interfejsu
internetowego.
" REDIRECT - przekierowuje pakiet do lokalnej maszyny, użyteczne w łańcuchach
PREROUTING i OUTPUT tabeli nat. Opcjonalny argument --to-ports pozwala na
przekierowanie połączenia na dowolnie wybrany port lokalnej maszyny.
" DNAT - zmienia adres docelowy pakietów i zapamiętuje zmianę dla danego połączenia.
Używane głównie do przekazywania połączeń z interfejsu internetowego do maszyn w sieci
lokalnej. Użyteczne w łańcuchach PREROUTING i OUTPUT tabeli NAT. Akceptuje
parametr --to-destination, określający adres z opcjonalnym portem docelowym (wg formatu
adres:port).
23
4.5. Limity dyskowe
W środowiskach wieloużytkownikowych udostępnienie użytkownikowi nieograniczonej
ilości miejsca nie jest dobrym pomysłem. W takim przypadku użytkownik mógłby zapełnić napęd,
uniemożliwiając zapis na dysku innym użytkownikom. Można zapobiec takiej sytuacji, używając
mechanizmu quota - limitów dyskowych. Uaktywnienie mechanizmu quoty wymaga wykonania
kilku kroków:
" Oznaczenie systemów plików. Należy dodać opcje usrquota do wszystkich systemów
plików w /etc/fstab, do których chcemy zastosować mechanizm quoty.
" Przeanalizowanie systemów plików w celu wypełnienia bazy danych o użyciu dysków.
Należy wywołać komendę quotacheck -uga, najlepiej w trybie jednoużytkownikowym
(init 1), aby wyniki nie były zakłócone zapisami w trakcie skanu.
" Uaktywnienie quoty za pomocą quotaon -uga.
Po wykonaniu tej sekwencji czynności quota są uaktywnione, można więc ustawić już limity
użytkowników. Aby narzucić limity użytkownika należy użyć programu setquota.
24
4.6. Konfiguracja serwera WWW
Serwer stron WWW Apache zawarty jest w większości dystrybucji Linuksa. Demon ten
odpowiada za wyświetlanie na każde żądanie stron WWW, które dla wielu stało się synonimem
sieci globalnej. Apache jest najpopularniejszą wersją serwera WWW, ponieważ jego atutem jest
łatwość obsługi i przejrzysta konfiguracja. Demon httpd jest jednym z ważniejszych demonów
w środowisku Linuksowym, więc ważne jest jego poprawne skonfigurowanie.
Konfiguracja serwera stron apache opiera się na edycji pliku: httpd.conf, który w dystrybucji
Slackware znajduje się w katalogu /etc/apache/. Plik definiuje ustawienia konfiguracyjne dla
protokołu httpd i dla operacji serwera. Znajdują się w nim funkcje główne serwera Apache, takie
jak np. lista dynamicznie ładowanych modułów (komenda LoadModule oraz AddModule), nazwa
serwera i inne opcje protokołu httpd. W pliku tym należy zwrócić uwagę na podstawowe funkcje,
takie jak:
# definiuje użytkownika i grupę z jakiego będzie uruchomiony demon
User nobody
Group nobody
# kontaktowy adres e-mail do administratora
ServerAdmin admin@sli.pl
# ścieżka do plików zawierających stronę WWW
DocumentRoot "/home/sli"
# adres serwera
ServerName sli.pl
# definiuje ilość hostów połączonych z serwerem stron
MaxClients 200
# podaję ścieżkę do pliku logującego błędy serwera
ErrorLog /var/log/httpd/error_log
# podaję ścieżkę do pliku logującego żądania Apacze
TransferLog /var/log/httpd/transfer_log
Jeśli chcemy, aby serwer Apache obsługiwał wiele adresów wirtualnych, na których będą
się znajdować strony WWW trzeba zastosować opcję VirtualHost, która jest standardowo nie jest
używana. Aby obsłużyć witrynę linux.pl i gosc.pl na jednym serwerze, należałoby umieścić takie
linie w pliku konfiguracyjnym serwera apache:
DocumentRoot /home/linux
ServerName linux.pl
DocumentRoot /home/gosc
ServerName gosc.pl
ErrorLog /var/log/apache/gosc/error_log
TransferLog /var/log/apache/gosc/transfer_log
Pierwszy przykład zawiera tylko podstawowe funkcje, jakie są potrzebne do uruchomienia
na serwerze adresu wirtualnego dla strony. Podaje tylko nazwę adresu wirtualnego (ServerName)
oraz ścieżkę, w której znajdują się dokumenty do wyświetlenia (DocumentRoot). Drugi przykład
zawiera również te funkcje, ale za pomocą funkcji ErrorLog i TransferLog wszystkie żądania na ten
adres wirtualny będą logowane nie do głównych plików serwera, ale do osobnych plików
w podanej lokalizacji.
25
Definicje adresów wirtualnych można wzbogacić również o inne dyrektywy, na przykład
jeśli dwa adresy wirtualne odwołują się do tego samego dokumentu, można użyć dyrektywy
ServerAlias, w której podajemy te dodatkowe adresy. Dla dwóch adresów linux.pl, www.linux.pl
definicja adresu wirtualnego wyglądać będzie tak jak w przykładzie poniżej:
ServerAlias www.linux.pl
DocumentRoot /home/linux
ServerName linux.pl
Linux jest doskonałą platformą dla serwera WWW używającego zawarte w dystrybucji
oprogramowanie apache. Za pomocą linuksa można skutecznie obsługiwać witryny WWW dużych
organizacji, które zawierają wiele adresów wirtualnych. W systemie Linux Slackware serwer
Apache uruchamiany jest za pomocą skryptu startowego o nazwie rc.httpd, który znajduje się
w katalogu /etc/rc.d/. Skrypt ten sprawdza istnienie oraz poprawność plików konfiguracyjnych, gdy
nie wykryje żadnych błędów, uruchamia serwer WWW, w innym wypadku wyświetla komunikat
o błędzie i przerywa działanie.
26
4.7. Konfiguracja serwera nazw
Jest to chyba jeden z najważniejszych demonów, które spotykane są w sieci. Aby poznać
dokładniej jego działanie, trzeba zaczerpnąć trochę wiadomości o historii struktur DNS.
W początkowym stadium tworzenia sieci Internet, kiedy to jeszcze nazywała się siecią ARPNet,
informacje odwzorowujące nazwy hostów na adresy IP przechowywano w pliku hosts.txt. Plik ten
zawierał dane o wszystkich połączonych komputerach i zostawał rozsyłany do wszystkich
połączonych komputerów w sieci, które przetwarzały zawarte w nim wpisy do swoich plików
/etc/hosts. Ponieważ liczba komputerów w tej sieci była niewielka, rozwiązanie to wystarczało na
ówczesne potrzeby. Jednak szybko wzrastająca liczba komputerów była przyczyną zwiększenia
danych zawartych w tym pliku, a także powodowała ogromny ruch poprzez wymianę go między
jednostkami. Konieczne stało się utworzenie systemu, który miałby być rozwiązaniem tego
problemu. Tak powstał DNS (Domain Name System), stosowany do dziś w Internecie.
System DNS jest rozproszoną bazą danych informacji o hostach. Baza ta jest podzielona na
strefy . Strefa jest fragmentem nazwy domeny, zdefiniowanym w określonym pliku strefowym
(zone file). Każdy serwer DNS odpowiada tylko za pewną część nazw oraz adresów. System składa
się z serwera nazw (Name Server), który zawiera bazę danych o innych komputerach w sieci oraz
z klienta nazw (Resolver), który kieruje zapytania do serwera nazw.
Serwer nazw, oprócz zamiany nazwy hosta na adres IP, wykonuje też funkcję odwrotną,
zwaną Reverse DNS . Jest to mechanizm translacji z adresu IP na nazwę hosta. Do tego celu
utworzono specjalną domenę IN-ADDR.ARPA. Przykładowo komputer o IP 192.168.1.1 będzie
posiadał adres 1.1.168.192.IN-ADDR.ARPA. Ciekawostką jest to, że jeden host może posiadać
wiele wpisów w domenie prostej, ale tylko jeden wpis w domenie odwrotnej.
Poniżej znajduje się przykład zapytania serwera nazw o numer IP dla domeny oraz
sprawdzenie zwrotnego adresu dla numeru IP:
kajojj@sli:~# host sli.pl
sli.pl has address 80.53.60.46
kajojj@sli:~# host 80.53.60.46
46.60.53.80.in-addr.arpa domain name pointer sli.pl.
kajojj@sli:~#
System operacyjny Linux posiada wiele serwerów nazw, mniej lub bardziej
zaawansowanych, np. djbdns, dents. Jednak najbardziej popularną i najczęściej stosowaną realizacją
serwera DNS jest BIND (Berkley Internet Name Domain). Są różne wersje tego serwera nazw,
wersja BIND-4 jest najstarsza i obecnie bardzo rzadko spotykana. Wersja BIND-8 jest aktualnie
używaną stabilną wersją, jej następca BIND-9 posiada wiele ulepszeń, jak np. poprawienie poziomu
bezpieczeństwa oraz implementację protokołu IPv6.
Najważniejszym plikiem konfiguracyjnym serwera nazw BIND jest plik /etc/named.conf,
zawierający ogólne opcje działania programu, a także definicje obsługiwanych stref. Każda strefa
definiowana jest w osobnym pliku zawierającym informacje o wszystkich hostach w danej strefie
w postaci tzw. rekordów. Są różne rodzaje rekordów: rekordy odwzorowujące nazwę hosta na jego
adres (rekord A), definiujące serwery nazw (rekord NS), tworzące aliasy do nazw kanonicznych
(rekord CNAME), lub wskazujące na adres serwera przyjmującego pocztę dla domeny (rekord
MX).
Przyjrzyjmy się dokładnie plikowi konfiguracyjnemu i plikowi strefy. Składnia poleceń
umieszczanych w tym pliku jest podobna do składni języków wysokiego poziomu. Elementy
odnoszące się do wspólnego zasobu są zgrupowane za pomocą nawiasów klamrowych, a każda
instrukcja kończy się średnikiem. Wszelkie komentarze poprzedza się dwuslashem (//) lub podobnie
jak w języku C umieszcza się między znakami /* oraz */. Najważniejszą instrukcją, jaką powinien
zawierać plik konfiguracyjny BINDa jest instrukcja options oraz zawarta w niej dyrektywa
directory, wskazująca na katalog, w którym znajdują się wszystkie pliki stref.
27
Przykładowa instrukcja może wyglądać następująco:
options {
directory "/var/named";
};
Definiowanie strefy odbywa się za pomocą dyrektywy zone. Instrukcja ta zawiera nazwę
strefy, typ serwera dla tej strefy, wskazanie zródła informacji o strefie oraz dodatkowe opcje.
Instrukcja zone wpisywana jest osobno dla każdej strefy. Ze względów bezpieczeństwa dodaje się
również w dyrektywie zone instrukcję allow-transfer, w której ograniczamy dostęp do transferu
naszego pliku strefy dla nieupoważnionych hostów. Przykładowo, jeśli nasz serwer nazw będzie
obsługiwał domenę sli.pl i jest on serwerem podstawowym dla tej domeny, dyrektywa zone może
wyglądać tak:
zone "sli.pl" {
type master;
file "file-sli.pl";
allow-transfer { 80.53.60.46; };
};
Znaczy to, że nasz plik strefy domeny sli.pl będzie znajdował się w katalogu /var/named
i nosił nazwę file-sli.pl. Dodatkowa instrukcja allow-transfer oznacza, że plik strefy może być
przesłany tylko do hosta o numerze IP 80.53.60.46.
W katalogu /var/named (wskazanym w pliku named.conf) należy stworzyć plik file-sli.pl.
Umieszczane są w nim rekordy zasobów. Każdy plik strefy musi zawierać niektóre rekordy, które
są niezbędne do poprawnego działania. Plik strefy zaczyna się od rekordu SOA (Start of Authority),
który określa początek strefy. W jednym pliku strefy może być tylko jeden wpis SOA. Wpis ten
składa się z paru części składowych. Przykładowy rekord SOA może wyglądać następująco:
@ IN SOA sli.pl. admin.sli.pl. ( 2004020200 604800 86400 2419200 604800 )
Znaczenie poszczególnych pól rekordu SOA:
" @ - oznacza nazwę strefy w pliku named.conf
" IN - oznacza Internet, jest to jedna z klas danych
" Serial - numer wersji, po wprowadzeniu zmian do pliku strefy należy zwiększyć ten numer,
format tego numeru RRRRMMDDNN (rok, miesiąc, dzień, wersja z dnia)
" Refresh - określa jak często serwer pomocniczy ma sprawdzać, czy na serwerze
podstawowym nie zaszły zmiany
" Retry - czas, po którym serwer pomocniczy będzie próbował odtworzyć dane po nieudanej
próbie odświeżania
" Empire - maksymalny czas, przez który serwer pomocniczy może utrzymywać dane
w cache bez odświeżania
" Default - domyślny czas jaki ma zostać użyty dla rekordów, które nie posiadają wpisanych
powyższych wartości
Następne rekordy to główne rekordy zasobów, takie jak:
" NS - (Name Server) identyfikuje serwer nazw domeny
" A - (Address) odwzorowuje nazwę hosta na adres
" PTR (Poiter) odwzorowuje adres na nazwę hosta
" MX - (Mail Exchanger) identyfikuje serwer pocztowy domeny
" CNAME (Canonical Name) definiuje alias dla nazwy hosta
28
Przykładowe wpisy do pliku strefy mogą być takie:
@ IN NS ns1.sli.pl.
@ IN NS ns2.sli.pl.
ns1 IN A 80.53.60.46
ns2 IN A 80.53.60.162
@ IN A 80.53.60.46
www IN A 80.53.60.46
ftp IN A 80.53.60.46
W przykładzie najpierw zdefiniowaliśmy dwa serwery nazw dla domeny sli.pl w rekordach
@ IN NS. Następnie zostały przypisane konkretne IP do serwerów nazw, oraz została przydzielona
główna domena do IP.
Złożenie w jedną całość rekordu SOA oraz innych podrekordów tworzy poprawnie
skonfigurowany plik strefy.
Konfiguracja domeny odwrotnej praktycznie niczym się nie różni od konfiguracji domeny
prostej. Główną różnicą jest to, że do pliku strefy domeny odwrotnej wpisujemy inne rekordy (tylko
SOA, NS oraz PTR). Dla domen odwrotnych utworzono specjalną domenę IN-ADDR.ARPA.
Konfigurujemy w pliku /etc/named.conf strefę i podajemy plik, w którym będą przechowywane
informacje. Wykonuje się to podobnie jak w domenie prostej, tylko nasza strefa będzie miała
nazwę 60.53.80.IN-ADDR.ARPA, natomiast jej plik strefy może na przykład nosić nazwę
file-sli.pl-rev. Domena prosta i domena odwrotna to praktycznie dwa różne zagadnienia i są
konfigurowane w dwóch różnych plikach strefy.
Program BIND jest uruchamiany w czasie ładowania systemu przez jeden ze skryptów
startowych, który w systemie Slackware nosi nazwę rc.bind i znajduje się w katalogu /etc/rc.d/.
Skrypt ten sprawdza, czy program named i plik /etc/named.conf są dostępne. Jeśli tak jest,
uruchamia się serwer nazw BIND.
29
4.8. Konfiguracja serwera FTP
Ostatnim z ważniejszych dla użytkownika demonów linuksa jest demon FTPD (File
Transfer Protocol). Jego działanie polega na nawiązaniu przez użytkownika połączenia z serwerem
na ustalony port TCP i przesyłania plików za pomocą protokołu FTP. Usługa ta wymaga do
połączenia podania nazwy użytkownika i poprawnego hasła. Niektóre z serwerów umożliwiają
anonimowy dostęp do swoich zasobów po uprzednim skonfigurowaniu demona, wtedy nazwa
użytkownika to anonymous, a używanym hasłem jest adres pocztowy osoby logującej się.
Anonimowe FTP jest znakomitą usługą, ale może stanowić problem dla bezpieczeństwa, jeśli nie
jest prawidłowo skonfigurowane. Powstają również różne wersje oprogramowania spełniającego
rolę demona FTP. Najczęściej możemy się zetknąć z demonem ProFTPd, ponieważ jest uważany za
jeden z bardziej bezpiecznych.
Plik konfiguracyjny powinien nosić nazwę proftpd.conf i znajdować się w katalogu /etc
naszego serwera. Przykładowe wpisy pliku konfiguracyjnego, które są potrzebne do uruchomienia
demona działającego na oprogramowaniu ProFTP, mogą wyglądać następująco:
ServerName nazwa serwera
ServerType inetd
Port 21
User nobody
Group nobody
Konfiguracja anonimowego demona w linuksie jest uproszczona, ponieważ w systemie
użytkownik anonimowy jest już dodany. Jego nazwa to ftp, a katalog domowy to /home/ftp czego
dowiadujemy się pliku zawierającego użytkowników systemu /etc/passwd.
Pozostaje jeszcze konfiguracja anonimowego dostępu do serwera. Umożliwiamy taką usługę
przez dodanie do pliku konfiguracyjnego opcji anonymous:
User ftp
Group ftp
UserAlias anonymous ftp
RequireValidShell off
Powyższy przykład definiuje dostęp anonimowy nadając logującej się osobie nazwę
użytkownika ftp z grupy ftp, który może się zalogować również poprzez nazwę anonymous
(funkcja UserAlias). Użytkownik ten nie potrzebuje do prawidłowego zalogowania się prawidłowej
powłoki systemowej (funkcja RequireValidShell). Za pomocą funkcji Limit można ograniczyć
dostęp dla niektórych hostów do naszego serwera FTP. Aby ograniczyć dostęp do FTP dla hostów
z domeny .com dodajemy taki wpis do /etc/proftpd.conf
Order deny, allow
Deny from .com,
Allow from all
Podane przykłady przedstawiają tylko podstawowe komendy oraz funkcje, które
wystarczają do uruchomienia anonimowego serwera FTP. Plik konfiguracyjny może zostać
wzbogacony o różne inne funkcje, a ich opis znajduje się w dołączonej do oprogramowania
dokumentacji i plików pomocy.
30
5. Sieci
5.1. Sieci komputerowe
Sieci komputerowe są to systemy komunikacyjne pozwalające na przesyłanie danych,
między dwoma lub więcej połączonymi komputerami i urządzeniami zewnętrznymi np. drukarka.
Typowa sieć składa się z kabla przyłączającego do sieci karty sieciowe znajdujące się w każdym
komputerze. A po co w ogóle zakładać sieć? Korzyści są ogromne, do najważniejszych należy
zaliczyć: współużytkowanie programów, plików i baz danych znajdujących się na różnych
komputerach, współużytkowanie zasobów sieci obejmujących np. drukarki, pamięci masowe,
szybka i łatwa komunikacja między użytkownikami, możliwość stworzenia grup roboczych
umożliwiających na prace nad danym projektem osobom znajdującym się daleko od siebie.
Najbardziej ogólny podział sieci komputerowych odbywa się na podstawie rozmiaru sieci:
" LAN (Local Area Network) - sieć lokalna, najczęściej obejmuje jedno przedsiębiorstwo
i łączy użytkowników zgromadzonych na niewielkim obszarze (kilka budynków),
najczęściej wykonana w technologii Ethernet. Przykładowo sieć szkoły.
" MAN (Metropolitan Area Network) - sieć miejska, łączy oddzielne sieci LAN na
przestrzeni jednego miasta. Przykładowo sieć Lodman.
" WAN (Wide Area Network) - sieć rozległa, łącząca ze sobą sieci MAN na terenie jednego
kraju. Przykładowo sieć Polpak.
31
5.2. Topologie sieci komputerowych
Topologia sieci to zbiór reguł fizycznego łączenia i reguł komunikacji poprzez dany nośnik
sieci (medium transmisyjne). W zależności od wybranej topologii sieci istnieją konkretne
specyfikacje dotyczące kabli, złączy i standardów komunikacji komputerów ze sobą.
Topologia magistrali - jest stosowana przy łączeniu komputerów za pomocą przewodu
koncentrycznego. Urządzenia dołączane są do jednej wspólnej magistrali, za pomocą odczepów
w przebiegu przewodu. Od tego systemu łączenia raczej się odchodzi, z uwagi że jest skazany na
awaryjną prace. Uszkodzenie karty sieciowej lub rozłączenie przewodu w jednym miejscu
najczęściej prowadzi do awarii całej sieci.
Topologia gwiazdy - jest stosowana przy łączeniu komputerów za pomocą kabla
czteroparowego skręcanego. Komputery podłączane są najczęściej do switcha (przełącznika)
rzadziej huba (koncentratora). Cechą odróżniającą od topologii magistrali jest łączenie za pomocą
jednego przewodu tylko dwóch urządzeń sieciowych. Stosowanie tego systemu połączeń jest
najbardziej bezpiecznym rozwiązaniem, ale również pracochłonnym i drogim.
32
Topologia pierścieniowa - jest stosowana przy łączeniu komputerów ze sobą za pomocą
kabla światłowodowego. Najczęściej stosuje się obwód dublujący, ponieważ w przypadku
przerwania pierwszego pierścienia komputery tracą ze sobą kontakt i zadania komunikacji
przejmuje pierścień dublujący. Topologia ta jest stosowana w sieciach Token Ring.
Topologia logiczna - opisuje reguły komunikacji, z których powinna korzystać każda stacja
przy komunikowaniu się w sieci. Poza połączeniem fizycznym hostów i ustaleniem standardu
komunikacji, topologia fizyczna zapewnienia bezbłędną transmisję danych.
Topologia fizyczna - jest ściśle powiązana z topologią logiczną. Przykładowo, specyfikacja
Ethernet umożliwia wykorzystanie topologii fizycznej gwiazdzistej lub magistrali, ale nie
umożliwia zbudowania sieci w oparciu o topologię pierścieniową.
Topologie logiczne definiowane są przez IEEE (Institute of Electrical and Eletronic
Engineers). Najczęściej spotykane specyfikacje sieci komputerowej to:
" IEEE 802.3 10Mb Ethernet
" IEEE 802.3u 100Mb Ethernet
" IEEE 802.3x Full Duplex Ethernet
" IEEE 802.3z 1Gb Ethernet
" IEEE 802.5 Token Ring
" IEEE 802.11 Wireless LANs
" IEEE 802.12 100VG-AnyLAN
" IEEE 802.14 Cable Modem
33
5.3. Standardy transmisji
W sieciach typu Ethernet można stosować różnorodne rodzaje mediów transmisyjnych. Ich
wybór opiera się o kilka cech, które należy rozważyć projektując sieć:
" wymagania szerokości pasma aplikacji i użytkownika
" perspektywy rozwoju sieci
" odległości między systemami komputerów
" środowisko geograficzne (kabel, transmisja radiowa lub satelitarna)
" wymagana tolerancja błędu zdolność sieci do funkcjonowania pomimo poważnej awarii,
najczęściej jest funkcją topologii sieci
" środowisko rodzaj i moc zakłóceń generowanych przez otoczenie
" koszty
maksymalna długość
rok szybkość
segmentu w metrach
standard norma topologia
ogłoszenia transmisji
half-duplex full-duplex
10Base5 802.3 1980 10Mb/s magistrala 500 n/a
10Base2 802.3a 1985 10Mb/s magistrala 185 n/a
10Broad36 802.3b 1985 10Mb/s magistrala 1800 n/a
FOIRL 802.3d 1987 10Mb/s gwiazda 1000 >1000
1Base5 802.3e 1987 1Mb/s gwiazda 250 n/a
10Base-T 802.3i 1993 10Mb/s gwiazda 100 100
10Base-FL 802.3j 1993 10Mb/s gwiazda 2000 >2000
10Base-FB 802.3j 1993 10Mb/s gwiazda 2000 n/a
10Base-FP 802.3j 1993 10Mb/s gwiazda 1000 n/a
100Base-TX 802.3u 1995 100Mb/s gwiazda 100 100
100Base-FX 802.3u 1995 100Mb/s gwiazda 412 2000
100Base-T4 802.3u 1995 100Mb/s gwiazda 100 n/a
100Base-T2 802.3y 1997 100Mb/s gwiazda 100 100
1000Base-LX 802.3z 1998 1Gb/s gwiazda 316 5000
1000Base-SX 802.3z 1998 1Gb/s gwiazda 316 550
1000Base-CX 802.3z 1998 1Gb/s gwiazda 25 25
1000Base-T 802.3ab 1999 1Gb/s gwiazda 100 100
Kabel koncentryczny
Technologia oparta na kablu koncentrycznym przechodzi do historii. Obarczona jest ona
wieloma wadami (omówię je w dalszej części rozdziału), które powodują rezygnowanie z jej
stosowania. Wyróżnia się dwa rodzaje kabla koncentrycznego:
" Ethernet gruby 10Base-5 (Thick Ethernet) oznaczenie kabla RG-8 i RG-11, o impedancji
falowej 50 omów i grubości 1/2", praktycznie wyszedł z użycia, czasem stosowany jako
rdzeń sieci (max. odległość między stacjami do 500m).
" Ethernet cienki 10Base-2 (Thin Ethernet) oznaczenie kabla RG-58, o impedancji falowej
50 omów i grubości 1/4", powszechnie stosowany w małych sieciach lokalnych (przy
połączeniu 2 komputerów max. odległość między nimi to 185m). Czasem jeszcze spotyka
się tą technologię w praktycznych zastosowaniach.
34
Zalety kabla koncentrycznego:
" ze względu na posiadaną ekranizację, jest mało wrażliwy na zakłócenia i szumy
" jest tańszy niż ekranowany kabel skręcany
" posiada twardą osłonę, dzięki czemu jest bardziej odporny na uszkodzenia fizyczne
Wady kabla koncentrycznego:
" ograniczenie szybkości do 10Mbit
" niewygodny sposób instalacji (duże łącza, terminatory, łączki T, duża grubość i niewielka
elastyczność kabla)
" słaba skalowalność (problemy z dołączeniem nowego komputera)
" niska odporność na poważne awarie (przerwanie kabla unieruchamia dużą część sieci)
" trudności przy lokalizowaniu usterki
zródło transmisji elektryczne
współpracujące topologie 10Mb ethernet
maksymalna długość segmentu 185 m
minimalna długość kabla 0,5 m
maksymalna liczba stacji 30 na jeden segment kabla
maksymalna liczba segmentów 5 powtórzonych segmentów
maksymalna całkowita długość sieci 925 m
W technologii 10Base-2 kolejne odcinki kabla łączymy w topologii
magistrali za pomocą końcówek zwanych zakończeniami BNC. Podczas instalacji
końcówek wykorzystuje się specjalne narzędzie do zagniatania zakończenia w raz
z kablem koncentrycznym.
Kable koncentryczne powinny być zakończone terminatorami (specjalne
końcówki o rezystancji 50 ohma dostosowanej do impedancji falowej kabla), z czego jeden z nich
powinien być uziemiony (podłączony krótkim łańcuszkiem do obudowy komputera).
Schemat fizycznego łączenia komputerów w technologii 10Base-2
Chociaż sieć 10Base-2 jest technologią wychodzącą z użytku, nadal może się okazać
przydatna w niektórych zastosowaniach. Przykładowo przy instalacji małej sieci domowej - do 5
komputerów - koszt (tanie używane karty sieciowe, brak dodatkowych urządzeń sieciowych
koncentratora) takiej instalacji jest o wiele niższy od instalacji z wykorzystaniem skrętki. Ponadto
przy niewielkiej liczbie komputerów problemy z diagnozowaniem uszkodzeń fizycznych sieci nie
są zbyt duże. Ciekawym zastosowaniem tej technologii, stają się ostatnio sieci osiedlowe.
W przypadku odległości pomiędzy blokami powyżej 100 m, często wykorzystuje się przewód
koncentryczny. Dodatkowo, kabel ten jest mocniejszy mechanicznie i bardziej odporny na warunki
35
zewnętrzne, co ułatwia jego instalację na zewnątrz budynków. Ponadto w środowiskach o dużych
szumach elektromagnetycznych, również objawiają się zalety kabla koncentrycznego.
Skrętka UTP
Aktualnie najpopularniejszym środkiem transmisji stał się nie ekranowany dwuparowy
kabel skręcany (UTP - Unshielded Twisted-Pair cable) 10Base-T.
Zalety skrętki:
" jest najtańszym medium transmisji (jeśli chodzi o cenę metra, bez uwzględniania
dodatkowych urządzeń)
" wysoka prędkość transmisji (do 1Gb/s)
" łatwe diagnozowanie uszkodzeń
" łatwa instalacja
" odporność na poważne awarie (przerwanie kabla unieruchamia najczęściej tylko jeden
komputer lub segment)
" jest akceptowana przez wiele rodzajów sieci
Wady skrętki:
" niższa długość odcinka kabla niż w innych mediach stosowanych w Ethernecie
" mała odporność na zakłócenia (skrętki nie ekranowanej)
" niska odporność na uszkodzenia mechaniczne
zródło transmisji elektryczne
współpracujące topologie 10Mb, 100Mb i 1Gb Ethernet, FDDI, ATM
maksymalna długość kabla 100 m
minimalna długość kabla brak
minimalna liczba stacji 2 na kabel
maksymalna liczba stacji 1024 na segment
maksymalna liczba segmentów Dla 100Tx i 1Gb: 2 powtórzone segmenty
maksymalna średnica sieci dla 100Mb 205 m.; dla 10Mb 2000 m.
maksymalna całkowita długość segmentu 100 m
Dla szybkości 100Mb/s istnieją dwa różne media:
100Base-TX - skrętka kategorii 5, wykorzystane 2 pary (tak jak w 10Base-T).
100Base-T4 - skrętka kategorii 5, wykorzystane 4 pary.
Dla szybkości 1000Mb/s została przewidziana również skrętka kategorii 5 wykorzystująca
wszystkie 4 pary. Oczywiście można użyć lepszego kabla. W przypadku wykorzystania skrętki
w środowiskach o dużych szumach elektromagnetycznych, stosuje się ekranowany kabel skręcany
(STP). Zbudowany jest on z czterech skręcanych ze sobą par przewodów miedzianych, otoczonych
ekranującą siatką lub folią i umieszczonych w izolacyjnej osłonie.
W większości urządzeń istnieje możliwość dokonania zamiany kolejności przewodów
wewnątrz urządzenia i wykorzystania kabla zgodnego do łączenia koncentratorów lub
przełączników. Metoda ta nazywana jest wewnętrznym krzyżowaniem; gniazdka (lub przełączniki)
realizujące takie połączenie oznaczane są symbolem X. Jeśli mówimy o przewodach to należało by
wspomnieć jak są zakończone:
36
Połączenie zgodne (EIA 568B)
kolor przeznaczenie przeznaczenie kolor
biało-pomarańczowy odbieranie (+) wysyłanie (+) biało-pomarańczowy
pomarańczowy odbieranie (-) wysyłanie (-) pomarańczowy
biało-zielony wysyłanie (+) odbieranie (+) biało-zielony
niebieski nie używane nie używane niebieski
biało-niebieski nie używane nie używane biało-niebieski
zielony wysyłanie (-) odbieranie (-) zielony
biało-brązowy nie używane nie używane biało-brązowy
brązowy nie używane nie używane brązowy
Połączenie krzyżowe (EIA 568B)
kolor kolor
zielony biało-pomarańczowy
biało-zielony pomarańczowy
pomarańczowy biało-zielony
niebieski niebieski
biało-niebieski biało-niebieski
biało-pomarańczowy zielony
biało-brązowy biało-brązowy
brązowy brązowy
Podstawowe wymagania, według norm TIA/EIA:
" Minimalny promień zgięcia kabla wynosi czterokrotność średnicy kabla.
" Kabla nie należy nadmiernie naciągać podczas układania w korytkach.
" Pary przy wtyczce nie powinny być rozkręcone na długości większej niż 1,3 cm.
" Kable sieciowe powinny przebiegać dalej niż 30,5 cm od skrętki. Od transformatorów
i silników należy zachować odległość 1,02 m. Jeśli skrętka została umieszczona
w metalowym korytku prowadzącym, to minimalna odległość od przewodów zasilających
wynosi 6,4 cm.
" Jeśli zaistnieje konieczność skrzyżowania kabli zasilającego ze skrętką, powinny one być
ułożone prostopadle do siebie.
Światłowód
Obecnie najnowocześniejszym medium transmisyjnym jest światłowód (Fiber Optic Cable).
Zasada jego działania opiera się na transmisji impulsów świetlnych między nadajnikiem (Optical
Transmitter) przekształcającym sygnały elektryczne na świetlne, a odbiornikiem (Optical Receiver)
przekształcającym sygnały świetlne odebrane ze światłowodu w sygnały elektryczne. Sieci oparte
na światłowodach zwane są FDDI (Fiber Distributed Data Interface).
Promień światła wędrując w rdzeniu światłowodu (o współczynniku załamania n1), natyka
się na środowisko o innym współczynniku załamania (n2) płaszcz. Gdy promień pada od strony
rdzenia na płaszcz pod kątem a, to pewna część światła zostaje odbita i wraca do rdzenia.
W zależności od kąta padania i współczynników załamania materiałów rdzenia i płaszcza, zmienia
37
się ilość odbitego światła. Powyżej pewnego kąta zachodzi zjawisko całkowitego odbicia
wewnętrznego i światło padające zostaje odbite bez strat.
Apertura numeryczna światłowodu (Numerical Aperture) jest miarą maksymalnego
dopuszczalnego kąta a między wchodzącym promieniem światła, a osią światłowodu. Największy
możliwy kąt a nazywany jest akceptowanym kątem włókna światłowodowego.
Światłowód wielomodowy - charakteryzuje się tym, że promień światła może być
wprowadzony do niego pod różnymi kątami (modami). Najważniejszym problemem w przypadku
tego rodzaju światłowodów jest zjawisko dyspersji, polegające na poszerzaniu się promienia
świetlnego wraz z drogą przebytą wewnątrz światłowodu. Ponieważ dyspersja powiększa się wraz
z drogą promienia świetlnego, więc kable wielomodowe stosowane są maksymalnie na długościach
do 5 km. Występują dwa rodzaje depresji:
" Dyspersja modalna wynikające z różnic w kątach (modach) wprowadzenia światła do
rdzenia. W zależności od kąta, światło przebywa różną drogę wewnątrz rdzenia, co zmienia
czas przejścia światła przez światłowód i powoduje tzw. poszerzenie sygnału.
" Dyspersja chromatyczna wynika z tego, że promień świetlny nie jest monochromatyczny
(zródłem światła są diody LED), a światło o różnej długości fali przebiega światłowód
z różnymi szybkościami.
W światłowodzie jednomodowym rdzeń złożony jest z wielu warstw o różnych
współczynnikach załamania. Dodatkową różnicą jest zmniejszenie średnicy rdzenia do 9 nm.
Dzięki temu w światłowodzie propagowany jest tylko jeden mod. Nie istnieje zjawisko całkowitego
odbicia wewnętrznego na granicy rdzenia i płaszcza. Dzięki temu zjawisko dyspersji zostało
zredukowane do minimum, co umożliwia wykorzystanie tego medium przy odległościach rzędu
60km. Zwiększona została również częstotliwość pracy takiego włókna, co poszerza pasmo pracy
sieci. Niestety koszt takiego światłowodu jest znacznie wyższy niż światłowodu wielomodowego,
a dodatkowo instalacja wymaga o wiele większej precyzji przy wprowadzaniu promienia
świetlnego (diody laserowe) do rdzenia. Tego typu światłowody stosowane są w sieciach WAN,
przeważnie do budowy sieci szkieletowych np. POLPAK.
38
5.4. Ośrodki transmisji
Kable miedziane - w konwencjonalnych sieciach komputerowych kable są podstawowym
medium łączącym komputery ze względu na ich niską cenę i łatwość instalowania. Chociaż kable
mogą być wykonane z różnych metali, wiele sieci jest połączonych kablami miedzianymi, ponieważ
miedz ma małą oporność, co sprawia, że sygnał może dotrzeć dalej. Typ okablowania w sieciach
komputerowych jest tak dobierany, aby zminimalizować interferencję sygnałów. Zjawisko to
powstaje w kablach łączących komputery, ponieważ sygnał elektryczny biegnący w kablu działa
jak mała stacja radiowa - kabel emituje niewielką ilość energii elektromagnetycznej, która
"wędruje" przez powietrze. Ta fala elektromagnetyczna, napotykając inny kabel generuje w nim
słaby prąd. Natężenie wygenerowanego prądu zależy od mocy fali elektromagnetycznej oraz
fizycznego umiejscowienia kabla. Zwykle kable nie biegną na tyle blisko, aby interferencja
stanowiła problem. Jeżeli dwa kable leżą blisko siebie pod kątem prostym i sygnał przechodzi przez
jeden z nich to prąd wygenerowany w drugim jest prawie niewykrywalny. Jeżeli jednak dwa kable
leżą równolegle obok siebie, to silny sygnał wysłany jednym spowoduje powstanie podobnego
sygnału w drugim. Ponieważ komputery nie rozróżniają sygnałów przypadkowych od zamierzonej
transmisji, indukowany prąd może wystarczyć do zakłócenia lub uniemożliwienia normalnej
transmisji.
Aby zminimalizować interferencję, sieci są budowane z wykorzystaniem jednego z dwu
podstawowych typów okablowania: skrętki lub kabla koncentrycznego. Okablowanie skrętką jest
również stosowane w systemach telefonicznych. Skrętkę tworzą cztery pary kabla, z których każda
jest otoczona materiałem izolacyjnym. Para takich przewodów jest skręcana. Dzięki skręceniu
zmienia się elektryczne własności kabla i może on być stosowany do budowy sieci. Po pierwsze
dlatego, że ograniczono energię elektromagnetyczną emitowaną przez kabel. Po drugie, para
skręconych przewodów jest mniej podatna na wpływ energii elektromagnetycznej - skręcanie
pomaga w zabezpieczeniu przed interferencją sygnałów z innych kabli.
Wyróżnić można 5 kategorii skrętki. Kategorie 1 i 2 zostały uznane w 1995 roku za
przestarzałe. Dwie z owych 5 kategorii okazały się najbardziej popularne wśród użytkowników -
trzecia i piąta. Kategoria 3 oferuje pasmo 16 MHz, które umożliwia przesyłanie sygnałów
z prędkością do 10 Mbps na odległość maksymalną 100 m. Kategoria 4 obsługuje pasmo
o szerokości 20 MHz, a kategoria 5 o szerokości 100 MHz. Przy założeniu, że wymagania
dotyczące maksymalnej odległości są spełnione, kable kategorii 5 umożliwiają przesyłanie danych
z prędkością 100 Mbps, 155 Mbps, a nawet 1000 Mbps.
Światłowody - do łączenia sieci komputerowych używa się również giętkich włókien
szklanych, przez które dane są przesyłane z wykorzystaniem światła. Cienkie włókna szklane
zamykane są w plastykowe osłony, co umożliwia ich zginanie nie powodując łamania. Nadajnik na
jednym końcu światłowodu jest wyposażony w diodę świecącą lub laser, które służą do
generowania impulsów świetlnych przesyłanych włóknem szklanym. Odbiornik na drugim końcu
używa światłoczułego tranzystora do wykrywania tych impulsów.
Można wymienić cztery główne powody przewagi światłowodów nad zwykłymi przewodami:
" Nie powodują interferencji elektrycznej w innych kablach ani też nie są na nią podatne.
" Impulsy świetlne mogą docierać znacznie dalej niż w przypadku sygnału w kablu
miedzianym.
" Światłowody mogą przenosić więcej informacji niż za pomocą sygnałów elektrycznych.
" Inaczej niż w przypadku prądu elektrycznego, gdzie zawsze musi być para przewodów
połączona w pełen obwód, światło przemieszcza się z jednego komputera do drugiego
poprzez pojedyncze włókno.
39
Obok tych zalet światłowody mają także wady:
" Przy instalowaniu światłowodów konieczny jest specjalny sprzęt do ich łączenia, który
wygładza końce włókien w celu umożliwienia przechodzenia przez nie światła.
" Gdy włókno zostanie złamane wewnątrz plastikowej osłony, znalezienie miejsca
zaistniałego problemu jest trudne.
" Naprawa złamanego włókna jest trudna ze względu na konieczność użycia specjalnego
sprzętu do łączenia dwu włókien tak, aby światło mogło przechodzić przez miejsce łączenia.
Radio - fale elektromagnetyczne mogą być wykorzystywane nie tylko do nadawania
programów telewizyjnych i radiowych, ale i do transmisji danych komputerowych. Nieformalnie
o sieci, która korzysta z elektromagnetycznych fal radiowych, mówi się, że działa na falach
radiowych, a transmisję określa się jako transmisję radiową. Sieci takie nie wymagają
bezpośredniego fizycznego połączenia między komputerami. W zamian za to każdy uczestniczący
w łączności komputer jest podłączony do anteny, która zarówno nadaje, jak i odbiera fale.
Anteny używane w sieciach mogą być duże lub małe w zależności od żądanego zasięgu.
Antena zaprojektowana na przykład do nadawania sygnałów na kilka kilometrów przez miasto
może składać się z metalowego słupka o długości 2 m zainstalowanego na dachu. Antena
umożliwiająca komunikację wewnątrz budynku może być tak mała, że zmieści się wewnątrz
przenośnego komputera (tzn. mniejsza niż 20 cm).
Podczerwień - bezprzewodowe zdalne sterowniki używane w urządzeniach takich jak
telewizory czy wieże stereo komunikują się za pomocą transmisji w podczerwieni. Taka transmisja
jest ograniczona do małej przestrzeni i zwykle wymaga, aby nadajnik był nakierowany na
odbiornik. Sprzęt wykorzystujący podczerwień jest w porównaniu z innymi urządzeniami niedrogi
i nie wymaga anteny.
Transmisja w podczerwieni może być użyta w sieciach komputerowych do przenoszenia
danych. Możliwe jest na przykład wyposażenia dużego pokoju w pojedyncze połączenie na
podczerwień, które zapewnia dostęp sieciowy do wszystkich komputerów w pomieszczeniu.
Komputery będą połączone siecią podczas przemieszczania ich w ramach tego pomieszczenia. Sieci
oparte na podczerwień są szczególnie wygodne w przypadku małych, przenośnych komputerów.
Światło laserowe - wspomniano już, że światło może zostać użyte do komunikacji poprzez
światłowody. Promień światła może być również użyty do przenoszenia danych powietrzem.
W połączeniu wykorzystującym światło są dwa punkty - w każdym znajduje się nadajnik
i odbiornik. Sprzęt ten jest zamontowany w stałej pozycji, zwykle na wieży, i ustawiony tak, że
nadajnik w jednym miejscu wysyła promień światła dokładnie do odbiornika w drugim. Nadajnik
wykorzystuje laser do generowania promienia świetlnego gdyż jego światło pozostaje skupione na
długich dystansach.
Światło lasera podobnie jak mikrofale porusza się po linii prostej i nie może być
przesłaniane. Niestety promień lasera nie przenika przez roślinność. Tłumią go również śnieg
i mgła. To powoduje, że transmisje laserowe mają ograniczone zastosowanie.
40
5.5. Protokoły sieciowe
Do przekazywania informacji przez sieć teleinformatyczną stosuje się protokoły liniowe,
określające sposób transmisji danych na poziomie kanału fizycznego. Zbiór procedur sterowania
transmisją i sposób postępowania podczas inicjowania, utrzymania i zakończenia transmisji, a także
sposób kontroli poprawności przekazu tworzą protokół liniowy.
Istnieje wiele protokołów liniowych różniących się strukturą bloków wiadomości
i sposobem sterowania, jednak wszystkie zawierają podstawowe fazy:
" nawiązanie i zestawienie łącza
" właściwy przekaz danych
" zakończenie transmisji i likwidacja połączenia
Protokołem komunikacyjnym nazywamy zbiór formalnych reguł i konwencji szczegółowo
określających mechanizmy wymiany informacji między stacjami połączonymi medium
transmisyjnym (kablem sieciowym).
Protokoły znakowe. Protokoły zorientowane znakowo używają znaku o określonej
(ustalonej) długości jako podstawowego nośnika informacji. Informacja jest transmitowana
w blokach ograniczonych znakami sterującymi, a podstawowy format bloku protokołu zawiera:
nagłówek, tekst i zakończenie. Wadami protokołów o orientacji znakowej są: konieczność
rozpoznawania dużej liczby znaków i sekwencji sterujących, oraz złożony sposób zapewnienia
przezroczystości informacyjnej. Protokoły bitowe. W protokołach zorientowanych bitowo
podstawowym nośnikiem informacji jest bit (lub raczej strumień bitów) bez formalnego podziału
pola informacji tekstowej na poszczególne znaki. Format bloku zawiera sekwencję "flag"
wyznaczającą początek i koniec ramki oraz spełniającą rolę synchronizacji blokowej.
Model OSI jest tylko ogólnym modelem koncepcyjnym komunikacji między stacjami
podłączonymi do sieci. Model OSI nie określa szczegółowych metod komunikacji. Mechanizmy
rzeczywistej komunikacji są określone w formie protokołów komunikacyjnych (Communication
Protocols).
Protokół realizuje funkcje jednej lub wielu warstw modelu OSI. Istniejąca obecnie bardzo
duża liczba różnych protokołów komunikacyjnych utrudnia często zorientowanie się
w mechanizmach działania sieci. Pomocne może okazać się uświadomienie sobie podziału
wszystkich protokołów komunikacyjnych na następujące klasy:
" Protokoły sieci lokalnych LAN (LAN Protocols) - obsługują funkcje dwóch najniższych
warstw modelu OSI (warstw Fizycznej i Aącza danych).
" Protokoły sieci rozległych WAN (WAN Protocols) - obsługują funkcje trzech najniższych
warstw modelu OSI (Fizycznej, Aącza danych i Sieciowej) i definiują komunikację przez
różne media stosowane w sieciach rozległych.
" Protokoły trasowania (Routing Protocols) - obejmują warstwę Sieciową modelu OSI, są
odpowiedzialne za określanie tras przepływu pakietów.
" Protokoły sieciowe (Network Protocols) - są to zbiory wielu różnych protokołów
obejmujących wyższe warstwy modelu OSI (np. AppleTalk, DECnet, SNA, IP, IPX).
Protokół IP (Internet Protocol) - został opracowany około 24 lat temu przez Departament
Obrony USA. Departament obrony szukał sposobu na połączenie różnych rodzajów posiadanych
komputerów i sieci je obsługujących w jedną wspólną sieć. Osiągnięto to za pomocą warstwowego
protokołu, który odizolował aplikację od sprzętu sieciowego. Protokół ten używa modelu nieco
różniącego się od modelu OSI. Jest on nazwany jako model TCP/IP. Protokół TCP zapewnia
połączeniową transmisje danych pomiędzy dwoma lub więcej hostami, może obsługiwać wiele
strumieni danych, kontrolę błędów, a nawet ponowne porządkowanie pakietów otrzymanych
w niewłaściwej kolejności.
41
Protokóły IPX/SPX Novell - zestaw protokołów firmy Novell bierze nazwę od swoich
dwóch głównych protokołów: międzysieciowej wymiany pakietów IPX i sekwencyjnej wymiany
pakietów SPX. Ten firmowy stos protokołów został oparty na protokole systemów sieciowych
firmy Xerox, wykorzystywanym w pierwszej generacji Ethernet. Wymiana IPX/SPX zyskała na
znaczeniu we wczesnych latach 80, jako integralna część systemu Novell Netware. Netware stał się
faktycznym standardem sieciowego systemu operacyjnego dla sieci lokalnych pierwszej generacji.
Protokół IPX w dużym stopniu przypomina IP. Jest bezpołączeniowym protokołem
datagramowym, który nie wymaga ani nie zapewnia potwierdzenia każdego transmitowanego
pakietu. Protokół IPX polega na SPX w taki sam sposób, w jaki protokół IP polega na TCP
w zakresie porządkowania kolejności i innych usług połączeniowych warstwy 4. Stos protokołów
IPX/SPX obejmuje cztery warstwy funkcjonalne: dostępu do nośnika, łącza danych, Internetu
i aplikacji. Głównym protokołem warstwy aplikacji jest protokół rdzenia NetWare (NCP). Protokół
NCP można bezpośrednio sprzęgnąć zarówno z protokołem SPX, jak i IPX. Jest wykorzystywany
do drukowania, współdzielenia plików, poczty elektronicznej i dostępu do katalogów. Innymi
protokołami warstwy aplikacji są: protokół informacyjny trasowania, firmowy protokół
ogłoszeniowy usługi i protokół obsługi łącza systemu NetWare. Protokół warstwy Internetu SPX
jest protokołem połączeniowym i może być wykorzystywany do przesyłania danych między
klientem serwerem, dwoma serwerami czy dwoma klientami. Tak jak w przypadku TCP, protokół
SPX zapewnia niezawodność transmisjom IPX, zarządzając połączeniem i udostępniając sterowanie
strumieniem danych, kontrolę błędów i porządkowanie kolejnych pakietów.
Protokóły AppleTalk firmy Apple - gdy komputery Apple zyskały większą popularność,
a ich użytkownicy zaczęli z nich korzystać w sposób bardziej wyszukany, nieunikniona została
konieczność połączenia ich w sieć. Sieć opracowana przez Apple jest tak przyjazna użytkownikowi
jak komputery Apple. Z każdym komputerem sprzedawany jest AppleTalk, czyli stos protokołów
pracy sieciowej, a także niezbędny sprzęt. AppleTalk jest siecią równoprawną dostarczające proste
funkcję jak korzystanie z plików i drukarek. Inaczej niż w sieciach klient serwer, funkcjonalności
sieci równoprawnej nie ograniczają żadne sztywne definicje. Każdy komputer może działać jako
serwer i klient. Stos protokołów AppleTalk obejmuje pięć warstw funkcjonalnych: dostępu do sieci,
datagramową, sieci, informacji o strefach o aplikacji. Warstwa fizyczna i łącza danych służą do
zapewnienia zgodności z technologiami sieciowymi opartymi na ustanowionych standardach.
Interfejs NetBEUI - został opracowany przez IBM i wprowadzony na rynek w 1985 roku.
Jest stosunkowo małym ale wydajnym protokołem komunikacyjnym LAN. NetBEUI jest wyłącznie
protokołem transportu sieci LAN dla systemów operacyjnych Microsoft. Nie jest trasowany.
Dlatego jego implementacje ograniczają się do warstwy 2, w których działają wyłącznie komputery
wykorzystujące systemy operacyjne firmy Microsoft. Aczkolwiek staje się to coraz mniejszą
przeszkodą, to jednak ogranicza dostępne architektury obliczeniowe i aplikacje technologiczne.
Zalety korzystania z protokołu NetBEUI są następujące:
" Komputery korzystające z systemów operacyjnych lub oprogramowania sieciowego firmy
Microsoft mogą się komunikować.
" NetBEUI jest w pełni samo dostrajającym się protokołem i najlepiej działa w małych
segmentach LAN.
" Ma minimalne wymagania odnośnie pamięci.
" Zapewnia doskonałą ochronę przed błędami transmisji, a także powrót do normalnego stanu
w razie ich wystąpienia.
Natomiast wadą protokołu NetBEUI jest fakt, że nie może być trasowany i niezbyt dobrze działa
w sieciach WAN.
42
Protokół ICMP (Internet Control Message Protocol) - jest częścią warstwy Internetu, do
swojego transportu wykorzystuje datagramy IP. Pełni on następujące funkcje:
" Sterowanie przepływem danych w przypadku, gdy komputer docelowy transmisji IP nie
nadąża za obróbką przychodzących datagramów IP, ICMP wysyła komunikat Source
Quench, po którym nadawca czasowo wstrzymuje transmisję.
" Wykrywanie nieosiągalnych miejsc przeznaczenia jeśli komputer docelowy nie
odpowiada system, który wykrył problem wysyła do nadawcy komunikat
Destination Unreachable. Jeśli komunikat ten jest wysyłany przez ruter, oznacza, że ruter
nie może wysyłać pakietów do danego komputera. Może to nastąpić w dwóch przypadkach:
o Adres docelowy IP nie istnieje (np.: komputer docelowy jest wyłączony, ma
odłączoną sieć, zle ustawioną maskę), występuje wtedy typ komunikatu
Host-unreachable.
o Ruter nie może dostarczyć datagramu do tej sieci, występuje wtedy typ
Network-unreachable.
" W momencie, gdy komunikat ten jest wysyłany przez host, może to oznaczać, że:
o Dany komputer nie posiada wsparcia dla któregoś z protokołów warstw
wyższych, występuje wtedy typ Protocol-unreachable.
o Port protokołu TCP jest nieosiągalny, występuje wtedy typ Port-unreachable.
" Przekierowywanie ścieżek jeśli komputer, do którego dotarł datagram IP uzna, że
właściwszą bramką będzie inny komputer z tej samej sieci, wysyła komunikat Redirect
wskazujący na ten właśnie komputer (musi znajdować się w tej samej sieci). Po otrzymaniu
takiego komunikatu nadawca aktualizuje swoją tablicę rutingu.
" Sprawdzanie zdalnego hosta odbywa się podczas wywołania komendy ping. Wysyłany
jest komunikat Echo Message, po otrzymaniu którego komputer docelowy musi
odpowiedzieć. Jeśli tego nie zrobi, uznawany jest za nieosiągalny.
" Jeśli jakiś datagram, podczas przechodzenia przez ruter osiągnie zerowy limit czasu życia
(Time-to-Live) jest usuwany. Do komputera zródłowego danego datagramu wysyłany jest
komunikat ICMP Time-exceeded.
Protokół ten jest bardzo ważnym protokołem kontrolnym w Internecie. Obsługuje on
większość sytuacji awaryjnych i informuje o nich zainteresowane hosty. Bardzo często
wykorzystywany jest przy rozwiązywaniu wszelakich typów problemów przez używanie
popularnych komend ping i traceroute (w systemach Windows komenda tracert)
zaimplementowanych w większości sieciowych systemów operacyjnych.
Protokół ARP (Address Resolution Protokol) - jest protokołem umożliwiającym
przekształcanie adresów protokołów sieciowych (w naszym przypadku adresów IP) na 48 bitowe
adresy Ethernetowe (MAC). W momencie gdy protokół warstwy Internetu chce przekazać datagram
do warstwy dostępu do sieci, warstwa ta (a dokładniej warstwa łącza danych modelu ISO/OSI)
musi określić adres docelowy, komputera do którego ma przekazać datagram. Jeśli jeszcze go nie
zna, rozsyła zapytanie rozgłoszeniowe (broadcast - z docelowym adresem MAC równym
FFFFFFFFFFFF) do wszystkich komputerów w danej sieci lokalnej. Następnie odpowiedni
komputer cel (jeśli istnieje w sieci lokalnej) rozpoznaje zawarty ramce Ethernetowej adres
protokołu sieciowego IP, odpowiada i podaje swój adres MAC. W tym momencie protokół ARP na
komputerze zródłowym uzupełnia swoją tablicę danych o adres docelowego komputera. Następnym
razem, w przypadku ponowienia transmisji do tej właśnie stacji, już bezpośrednio zaadresuje
datagram i skieruje go do danej karty sieciowej (pamiętajmy, że adres Ethernetowy jest
równocześnie niepowtarzalnym adresem określonego urządzenia sieciowego - karty sieciowej).
System ten działa inaczej, gdy zródło i cel transmisji znajdują się w oddzielnych sieciach
LAN połączonych ruterem. yródło rozsyła broadcastowe zapytanie o adres MAC karty sieciowej
komputera mającego odebrać transmisję. Ramki rozgłoszeniowe są odbierane przez wszystkie
43
urządzenia w sieci LAN, jednak żadne nie odpowiada na zapytanie. yródło uznaje, że w sieci
lokalnej nie ma urządzenia o takim adresie MAC i przesyła dane do domyślnej bramki, czyli rutera.
W przypadku tzw. proxy-arp (np.: połaczenie modemowe) ruter, który jest urządzeniem
pośredniczącym dla stacji docelowej (np.: przy połączeniu modemowym stacji docelowej
z ruterem), odbiera to zapytanie. Ruter stwierdza że poszukiwany adres IP pasuje do jednego
z wpisów w jego tablicy rutingu. Odpowiada na zapytanie udając, że dany adres sieciowy jest jego
własnym adresem. Urządzenie nadające przyporządkowuje w swojej tablicy ARP adres sieciowy
celu (np.: adres IP) do adresu MAC rutera i transmituje datagramy do rutera. Ruter przekazuje dalej
pakiety dla systemu docelowego, które przychodzą na jego adres MAC. Aktualną tablicę ARP
najczęściej możemy podejrzeć za pomocą polecenia arp (Linux, Unix, Windows NT).
Protokół ARP może być wykorzystywany w celu uniknięcia nadania dwóch takich samych
adresów IP w jednej sieci lokalnej. W momencie inicjacji systemu komputer wysyła ramkę ARP
z zapytaniem o adres IP, który aktualnie został mu przydzielony. Jeśli inny komputer w sieci zgłosi
się, że posiada już taki adres, zablokowana zostaje transmisja IP i w sieci nie pojawia się drugi taki
sam adres IP.
44
5.6. Zasady dzielenia adresów
Każdy adres IP jest 32-bitową liczbą, składającą się z czterech oktetów (liczb
ośmiobitowych). Adresowanie TCP/IP jest łatwiej zrozumieć przyjmując koncepcję, że każdy
sposób adresowania jest ściśle związany z funkcją i zadaniami danego komputera. Każdy komputer
(a dokładniej węzeł) w sieci TCP/IP ma niepowtarzalny, 32-bitowy adres IP identyfikujący nie
tylko komputer, lecz również sieć do której należy. Należy odróżnić ilość numerów od ilości
komputerów, ale o tym z chwilę. W istniejącej klasyfikacji wyróżnia się pięć klas adresów: klasa A,
klasa B, klasa C, klasa D oraz klasa E.
Adresy klasy A odnoszą się najczęściej do dużych sieci zawierających wiele komputerów,
adresy klasy B odpowiadają sieciom średniej wielkości, zaś adresy klasy C małym sieciom. Adresy
klasy D to tzw. adresy grupowe, wykorzystywane przy przesyłaniu wiadomości do grupy
komputerów w Internecie. Tego typu system umożliwia znaczne zmniejszenie ruchu w sieci
w stosunku do systemu nawiązywania oddzielnych połączeń z każdym z użytkowników. Obecnie
istnieją jednak lepsze techniki rozgłaszania wiadomości grupowych w sieci. Klasa E jest
eksperymentalna i zarezerwowana dla IETF. Jeśli sieć jest przyłączona do Internetu, to adres sieci
oraz adresy komputerów są przydzielane przez organizację zarządzająca Internetem. Jeśli natomiast
jest to lokalna sieć firmowa, to odpowiednie adresy przydziela administrator. Wybierając
odpowiednią klasę adresów można przyporządkować danej sieci: więcej adresów podsieci, a mniej
komputerów (adresy klasy C); równą liczbę adresów podsieci i komputerów (klasa B) lub mniej
adresów podsieci, a więcej komputerów (klasa A). W sieciach lokalnych wykorzystuje się adresy
klasy A, B lub C. Adres IP zapisuje się dziesiętnie w czterech blokach trzycyfrowych rozdzielonych
kropkami (każdy blok trzycyfrowy odpowiada 8 bitom, więc może być to liczba do 0 do 255).
Duże różnice między klasami od lat marnowały dużą potencjalną liczbę adresów IP.
Przykładem może być sieć lokalna dla firmy posiadającej 300 komputerów, które należy przyłączyć
do Internetu. Pojedyncza grupa adresów klasy C daje 254 adresy co jest liczbą niewystarczającą.
Dwie grupy dają zbyt wiele adresów i wymagają obsługi dwóch sieci. Wybranie adresów klasy B
daje odpowiednią liczbę adresów w jednej sieci, ale odznacza się dużym marnotrawstwem (65 234)
adresów. W początkowej fazie rozwoju Internetu zbyt często przydzielano bezpodstawnie adresy
klasy B co spowodowało, że przestrzeń adresowa tej klasy wyczerpała się szybciej od innych,
równocześnie przyczyniając się do obecnych braków wolnych adresów dla nowo przyłączanych
komputerów. W celu ulepszenia wykorzystania 32-bitowej przestrzeni adresowej zaprojektowano
wiele specjalnych rozszerzeń protokołu IP.
Podział na podsieci umożliwia podział sieci IP dowolnej klasy (A, B lub C) na mniejsze
sieci. Adres IP w podsieci składa się z czterech części:
" bitów określających klasę adresu
" adresu sieci
" adresu podsieci
" adresu hosta
Możliwość podziału na podsieci zależy od typu wykorzystywanego adresu IP. Im więcej
bitów hosta w pierwotnym adresie IP, tym więcej można utworzyć podsieci. Podsieci zmniejszają
jednak liczbę możliwych do zaadresowania hostów , gdyż bity z adresu hosta pobierane są do
identyfikacji podsieci. Podsieci identyfikuje się za pomocą pseudo-adresu IP, zwanego maską
podsieci. Maska podsieci jest, podobnie jak sam adres IP, liczbą 32-bitową. Budowa maski podsieci
wygląda w ten sposób że pierwsze n-bitów jest jedynkami pozostałe natomiast są zerami. Stąd też
dość łatwo można zidentyfikować czy maska podsieci została podana poprawnie. Bity maski
identyfikujące część sieciową zawierają jedynki, natomiast bity identyfikujące hosta zawierają zera.
Przykładowo, maska 11111111.11111111.11111111.11000000 (inaczej 255.255.255.192) daje 64
teoretycznie możliwe adresy hostów. Praktycznie jednak dwa z nich (000000 i 111111) są
zarezerwowane do identyfikacji samej podsieci i do rozgłaszania w niej.
45
Ponieważ w praktyce zajmujemy się małymi sieciami (do 254 komputerów), opiszę sieć
w klasie C, która umożliwia wykorzystanie maksymalnie:
" 256 dla maski 0 (0-255)
" 128 dla maski 128 (0-127, 128-255)
" 64 dla maski 192 (0-63, 64-127, 128-191, 192-255)
" 32 dla maski 224 (0-31, 32-63, 64-65, 96-127, 128-159 itd.)
" 16 dla maski 240 (0-15, 16-31, 32-47, 48-63, 64-79, 80-95, itd.)
" 8 dla maski 248 (0-7, 8-15, 16-23, 24-31, 32-39, 40-48, itd.)
" 4 dla maski 252 (0-3, 4-7, 8-11, 12-15, 16-19, 20-23 itd.)
" 2 dla maski 254 (0-1, 2-3, 4-5 - teoretycznie możliwe, ale praktycznie nie jest
wykorzystywane)
" 1 dla maski 255 (numer pojedynczej stacji - niewykorzystywane w projektowaniu podsieci
zawierającej co najmniej kilka komputerów)
Przy budowie małych sieci najczęściej jest wykorzystywana maska 255.255.255.0. Przy
pomocy tej maski możemy zaadresować do 254 maszyn, więc chyba wystarczająco. Opiszę teraz
podział adresów w najprostszym przypadku, bez podziału na podsieci. Załóżmy mamy za zadania
rozdzielenia adresów dla sieci osiedlowej w której jest połączonych 230 komputerów. W takim
przypadku można zastosować przykładową konfigurację:
192.168.1.0 - adres sieci
255.255.255.0 - maska
192.168.1.255 - broadcast (krańcowy, górny numer sieci)
192.168.1.1 - adres urządzeń dostępowych np. serwer, router czy AP
192.168.1.2-232 - adresy klientów
Drugi przykład, chcemy zaadresować sieć osiedlową w której skład wchodzą trzy podsieci
składających się z sieci, trzech różnych bloków mieszkalnych. Gdzie pierwszy ma 12 mieszkańców,
drugi 110 i trzeci 27 mieszkańców. Więc należało by podzielić na podsieci 128, 32 i 16
numerkową. A sprawa adresów będzie wyglądała następująco:
użytkowników 110 (numerków 128)
192.168.1.0 - adres sieci
255.255.255.128 - maska
192.168.1.127 - broadcast (krańcowy, górny numer sieci)
192.168.1.1 - adres urządzeń dostępowych np. serwer, router czy AP
192.168.1.2-126 - adresy klientów
użytkowników 27 (numerków 32)
192.168.1.128 - adres sieci
255.255.255.224 - maska
192.168.1.159 - broadcast (krańcowy, górny numer sieci)
192.168.1.129 - adres urządzeń dostępowych np. serwer, router czy AP
192.168.1.130-158 - adresy klientów
46
użytkowników 12 (numerków 16)
192.168.1.160 - adres sieci
255.255.255.240 - maska
192.168.1.175 - broadcast (krańcowy, górny numer sieci)
192.168.1.161 - adres urządzeń dostępowych np. serwer, router czy AP
192.168.1.162-174 - adresy klientów
47
5.7. Model sieci OSI
W 1977 roku Międzynarodowa Organizacja Normalizacyjna (International Standard
Organization) opracowała wzorcowy Model łączenia systemów otwartych (Open System
Interconnection). Ideą przyświecającą tym działaniom, było umożliwienie współdziałania ze sobą
produktów pochodzących od różnych producentów. Proces komunikacji został podzielony na 7
etapów, zwanych warstwami, ze względu na sposób przechodzenia pomiędzy nimi informacji.
Często struktura tworzona przez warstwy OSI nazywana jest stosem protokołów wymiany danych.
W złożonym zagadnieniu komunikacji wyodrębnia się pewne niezależne zadania, które
mogą być rozwiązywane przez wydzielone układy sprzętowe lub pakiety oprogramowania zwane
obiektami. Klasę obiektów rozwiązujących dane zagadnienie nazywa się warstwą. Pojęcie warstwy
nie jest jednoznaczne z pojęciem protokołu funkcje danej warstwy mogą być wykonywane przez
kilka różnych protokołów. Każdy protokół komunikuje się ze swoim odpowiednikiem, będącym
implementacją tego samego protokołu w równorzędnej warstwie komunikacyjnej systemu
odległego. Warstwy (a dokładnie konkretne protokoły zawarte w tej warstwie) komunikują się
bezpośrednio z odpowiadającymi im warstwami w odległym hoście. Należy więc też zapewnić
reguły przekazywania informacji w dół do kolejnych warstw pracujących na danym komputerze.
Dane przekazywane są od wierzchołka stosu, poprzez kolejne warstwy, aż do warstwy fizycznej,
która przesyła je poprzez sieć do odległego hosta. Na szczycie stosu znajdują się usługi świadczone
bezpośrednio użytkownikowi przez aplikacje sieciowe, na spodzie sprzęt realizujący transmisję
sygnałów niosących informacje.
Każda kolejna warstwa musi jedynie znać format danych wymagany do komunikacji
poprzez warstwę niższą zwany protokołem wymiany danych. Przy przechodzeniu do warstwy
niższej dana warstwa dokleja do otrzymanych przez siebie danych nagłówek z informacjami dla
swojego odpowiednika na odległym hoście. W ten sposób kolejne warstwy nie ingerują w dane
otrzymane z warstwy poprzedniej. Przy odbieraniu danych z warstwy niższej, dana warstwa
interpretuje ten nagłówek doklejony poprzez swojego odpowiednika i jeśli zachodzi potrzeba
przekazania danych do warstwy wyższej, usuwa swój nagłówek i przekazuje dane dalej. Transmisja
danych pomiędzy kolejnymi warstwami ISO/OSI przedstawia poniższy rysunek:
Warstwa fizyczna (physical layer) - zapewnia transmisję danych pomiędzy węzłami sieci.
Definiuje interfejsy sieciowe i medium transmisji. Określa m.in. sposób połączenia mechanicznego
(wtyczki, złącza), elektrycznego (poziomy napięć, prądów), standard fizycznej transmisji danych.
W skład jej obiektów wchodzą min.: przewody, karty sieciowe, modemy, wzmacniaki,
koncentratory.
Warstwa łącza danych (data link layer) - zapewnia niezawodność łącza danych. Definiuje
mechanizmy kontroli błędów w przesyłanych ramkach lub pakietach - CRC (Cyclic Redundancy
Check). Jest ona ściśle powiązana z warstwą fizyczną, która narzuca topologię. Warstwa ta często
48
zajmuje się również kompresją danych. W skład jej obiektów wchodzą sterowniki urządzeń
sieciowych, np.: sterowniki (drivery) kart sieciowych oraz mosty (bridge) i przełączniki (switche).
Warstwa sieciowa (network layer) - zapewnia metody ustanawiania, utrzymywania i
rozłączania połączenia sieciowego. Obsługuje błędy komunikacji. Ponadto jest odpowiedzialna za
trasowanie (routing) pakietów w sieci, czyli wyznaczenie optymalnej trasy dla połączenia. W
niektórych warunkach dopuszczalne jest gubienie pakietów przez tę warstwę. W skład jej obiektów
wchodzą min.: rutery (routery).
Warstwa transportowa (transport layer) - zapewnia przezroczysty transfer danych typu
point-to-point. Dba o kolejność pakietów otrzymywanych przez odbiorcę. Sprawdza poprawność
(CRC) przesyłanych pakietów i w przypadku ich uszkodzenia lub zaginięcia, zapewnia ich
retransmisję. Powyżej tej warstwy dane mogą być traktowane jako strumień.
Warstwa sesji (session layer) - zapewnia aplikacjom na odległych komputerach realizację
wymiany danych pomiędzy nimi. Kontroluje nawiązywanie i zrywanie połączenia przez aplikację.
Jest odpowiedzialna za poprawną realizację zapytania o daną usługę. Do warstwy tej można
zaliczyć funkcje API udostępniane programiście przez bibliotekę realizującą dostęp do sieci na
poziomie powyżej warstwy transportowej takie jak np. biblioteka strumieni i gniazdek BSD.
Warstwa prezentacji (presentation layer) - zapewnia tłumaczenie danych, definiowanie ich
formatu oraz odpowiednią składnię. Umożliwia przekształcenie danych na postać standardową,
niezależną od aplikacji. Rozwiązuje takie problemy jak niezgodność reprezentacji liczb, znaków
końca wiersza, liter narodowych itp. Odpowiada także za kompresję i szyfrowanie.
Warstwa aplikacji (application layer) - zapewnia aplikacjom metody dostępu do
środowiska OSI. Warstwa ta świadczy usługi końcowe dla aplikacji, min.: udostępnianie zasobów
(plików, drukarek). Na tym poziomie rezydują procesy sieciowe dostępne bezpośrednio dla
użytkownika.
49
6. Bibliografia
" Projektowanie sieci wieloprotokołowych tom 1 i 2 Brenton Chris, Wydawnictwo EXIT,
1998.
" TCP/IP Administracja sieci Hunt Craig, Oficyna Wydawnicza READ ME, Aódz, 1998.
" Teleinformatyka Piwowar P., Urbanek A., Wydawnictwo IDG Poland S.A., listopad
1998.
" Ethernet - poradnik administratora Charles E. Spurgeon, Wydawnictwo RM,
Warszawa 2000.
" Serwery sieciowe Linuksa Craig Hunt, Wydawnictwo MIKOM, Warszawa 2000
50
Wyszukiwarka
Podobne podstrony:
Praca Dyplomowa Sklep Internetowy(1)Praca mag Działalność promocyjna na rynku usług internetowych na przkładzie IDMnet (2)potrafie korzystac z internetu na studiach (2)przykladowa praca dyplomowa dla grupyPotrafie korzystac z Internetu na studiachBezpieczeństwo systemňw komputerowych praca dyplomowa7176525 Praca Dyplomowa Kontrukcje Drewnianepotrafie korzystac z internetu na studiachJak napisac prace dyplomowa (praca dyplomowa, praca magisterska) (2)praca dyplomowa inzAVR na LinuxieInstrukcja podłączenia sie do internetu na MSBudowa systemu ekspertowego (Praca dyplomowa)więcej podobnych podstron