Kolejne podrozdziały są specyficzne dla konkretnych technologi sieciowych. Informacje tam zawarte nie muszą mieć zastosowania do innego rodzaju technologii sieciowych.
Urządzenia ARCNET posiadają nazwy `arc0s
', `arc1e
',
`arc2e
' itd. Pierwsza karta wykryta przez jądro otrzymuje nazwę
`eth0
', a dalsze otrzymują nazwy z kolejnymi numerami. Litera na
końcu nazwy oznacza że wybrałeś 'ethernet encapsulation' lub standard pakietu
zgodny z RFC1051.
Opcje konfiguracji jądra:
Network device support --->
[*] Network device support
<*> ARCnet support
[ ] Enable arc0e (ARCnet "Ether-Encap" packet format)
[ ] Enable arc0s (ARCnet RFC1051 packet format)
Jeśli posiadasz już prawidłowo skompilowane jądro potrafiące obsługiwać kartę, jej konfiguracja jest bardzo prosta.
Zwykle będziesz musiał wydać następujące polecenia:
# ifconfig arc0e 192.168.0.1 netmask 255.255.255.0 up
# route add 192.168.0.0 netmask 255.255.255.0 arc0e
Proszę zapoznaj się z zawartością pliku
/usr/src/linux/Documentation/networking/arcnet-hardware.txt
.
Obsługa sieci ARCNet została wykonana przez Averyego Pennaruna,
apenwarr@foxnet.net
.
AF_APPLETALK
) Obsługa sieci Appletalk nie wprowadza żądnych dodatkowych nazw urządzeń sieciowych.
Opcje konfiguracji jądra:
Networking options --->
<*> Appletalk DDP
Obsługa Appletalk pozwala twojemu Linuksowi komunikować się z sieciami Apple.
Bardzo ważnym wykorzystywaniem tej możliwości jest współdzielenie między twoim
Linuksem i komputerami Apple zasobów takich jak drukarki, czy dyski. Wymagane
jest do tego dodatkowe oprogramowanie o nazwie netatalk. Pakiet
netatalk udostępniający oprogramowanie implementujące protokół
Appletalk oraz kilka pożytecznych programów narzędziowych stworzył wraz z grupą
`Research Systems UnixGroup' na uniwersytecie Michigan reprezentujący ten zespół
Wesley Craig netatalk@umich.edu
. Pakiet netatalk
powinieneś otrzymać w swojej dystrybucji Linuksa, lub możesz go pobrać przez ftp
ze źródła : University of
Michigan
Aby zbudować i zainstalować pakiet, musisz wydać następujące polecenia:
# cd /usr/src
# tar xvfz .../netatalk-1.4b2.tar.Z
- W tym momencie możesz zmienić plik `Makefile', np. w celu zmiany
katalogu docelowego DESTDIR. Domyślnie zostanie zainstalowany w
/usr/local/atalk co jest dosyć bezpiecznym wyborem.
# make
- jako administrator:
# make install
Pierwszą rzeczą jaką musisz zrobić aby zaczęło działać to dodanie nowych
pozycji do pliku /etc/services
. A mianowicie:
rtmp 1/ddp # Routing Table Maintenance Protocol
nbp 2/ddp # Name Binding Protocol
echo 4/ddp # AppleTalk Echo Protocol
zip 6/ddp # Zone Information Protocol
Kolejnym krokiem będzie utworzenie plików konfiguracyjnych pakietu w katalogu
usr/local/atalk/etc
(lub tam gdzie go zainstalowałeś).
Pierwszym plikiem, który należy utworzyć jest
/usr/local/atalk/etc/atalkd.conf
. Początkowo potrzebuje od jedynie
dodania wiersza określającego nazwę urządzenia sieciowego, które obsługuje sieć,
na której znajdują się komputery Apple.
eth0
Demon Appletalk po jego uruchomieniu dołoży kilka szczegółow.
Możesz eksportować swoje pliki, tak aby inne komputery sieci Appletalk miały do nich dostęp.
W tym celu należy odpowiednio zmienić plik konfiguracyjny
/usr/local/atalk/etc/AppleVolumes.system
. Istnieje również inny
plik konfiguracyjny o nazwie
/usr/local/atalk/etc/AppleVolumes.default
w takim samym formacie
opisujący który system plików zostanie udostępniony podłączającym się do nas
użytkownikom posiadającym przywileje gościa (guest).
Szczegółowe informacje na temat konfiguracji tych plików, oraz opis znaczenia wszystkich opcji można znaleźć na stronie podręcznika poświęconej afpd (man afpd).
Krótki plik przykładowy, mógłby wyglądać następująco:
/tmp Scratch
/home/ftp/pub "Obszar ogólnie dostępny"
W tym przykładzie eksportujemy katalog /tmp
jako system plików
AppleShare o nazwie `Scratch' oraz katalog anonimowego ftp jako AppleShare
Volume o nazwie "Obszar ogólnie dostępny". Nazwy wolumenów nie są obowiązkowe,
demon wybierzą jakąś za ciebie, lecz przecież nic cię nie kosztuje podanie
nazwy.
Współdzielenie drukarki Linuksa z innymi komputerami sieci Appletalk jest całkiem proste. Musisz uruchomić program papd, Printer Access Protocol Daemon. Po uruchomieniu będzie akceptował żądania wydrukowania dokumentu, gromadził go a następnie drukował korzystajšc z programów obsługi drukarki pod Linuksem.
Konfiguracja tego programu polega na edycji pliku
/usr/local/atalk/etc/papd.conf
. Składnia jest taka sama, jak pliku
/etc/printcap
. Nazwa jaką nadasz drukarce zostanie zarejestrowana
za pomocą NBP, protokołu nazw sieci Appletalk.
Prosta konfiguracja mogłaby wyglądać następująco:
TricWriter:\
:pr=lp:op=cg:
Utworzona została drukarka o nazwie `TricWriter' udostępniona sieci
Appletalk. Zadania wysłane na tę drukarkę, będą drukowane na drukarce
`lp
' (zdefiniowanej w pliku /etc/printcap
) przy pomocy
programu lpd. Pozycja `op=cg
' mówi, że operatorem tej
drukarki jest użytkownik Linuksa o nazwie `cg'.
Ok, w tej chwili powinieneś być już gotowy do sprawdzenia podstawowej konfiguracji. Pakiet netatalk dostarcza pliku rc.atalk, który powinień nadawać się dla ciebie. Powinieneś jedynie go uruchomić:
# /usr/local/atalk/etc/rc.atalk
Wszystko powinno się uruchomić i działać poprawnie. Nie powinieneś zobaczyć, żadnych komunikatów o błędach, lecz jedynie komunikaty wysłane na konsole informujące o zakończeniu kolejnych etapów uruchamiania oprogogramowania.
Aby sprawdzić, czy oprogramowanie pracuje poprawnie, połącz sieć z jednym z twoich komputerów Apple, rozwiń menu główne, wybierz Chooser, kliknij na AppleShare i powinieneś zobaczyć tam swojego Linuksa.
rc.inet1
.
.AppleDesktop
i Network Trash Folder
. Następnie dla
każdego katalogu, do którego sięgniesz utworzy w nim .AppleDouble
aby mieć gdzie przechowywać 'resource forks' itp. Dlatego pomyśl dwa razy,
zanim wyeksportujesz /
, później spędzisz wiele miłych chwil
sprzątając po nim.
/proc/net
.
Więcej szczegółowej informacji w jaki sposób skonfigurować Appletalk dla Linuksa znajdziesz w Linux Netatak-HOWTO : thehamptons.com.
Projekt obsługi Asynchronous Transfer Mode pod Linuksem jest prowadzony przez
Wernera Almesbergera <werner.almesberger@lrc.di.epfl.ch>
.
Aktualne informacje na ten temat można znaleźć tutaj: lrcwww.epfl.ch.
AF_AX25
) Urządzenia AX.25 w jądrze wersji 2.0.* to `sl0
',
`sl1
', itd. w 2.1.*
są to `ax0
',
`ax1
', itd.
Opcje konfiguracji jądra:
Networking options --->
[*] Amateur Radio AX.25 Level 2
Protokoły AX25, Netrom i Rose są opisane w AX25-HOWTO. Stosowane są przez krótkofalowców w eksperymentach z przesyłaniem pakietów drogą radiową.
Większość pracy związanej z udostępnieniem tej funkcji pod Linuksem wykonał
Jonathon Naylor, jsn@cs.not.ac.uk
.
W chwili obecnej prowadzone są prace nad obsługą sieci DECNet. Powinna się
pojawić w późnych wersjach jądra serii 2.1.x
.
Urządzenie EQL nosi nazwę `eql
'. W standtardowej wersji jądra
możesz mieć w komputerze tylko jedno urządzenie EQL. EQL umożliwia wykorzystanie
kilku połączeń point-to-point (np. PPP, SLIP, plip) jako pojedynczego łącza
logicznego przenoszącego ruch tcp/ip. Często taniej jest skorzystać z kilku
linii o niższej prędkości niż z jednej linii o wysokiej prędkości.
Opcje konfiguracji jądra:
Network device support --->
[*] Network device support
<*> EQL (serial line load balancing) support
Obsługa tego mechanizmu wymaga, aby drugi koniec połączenia również obsługiwał EQL. Linux, Livingstone Portmasters i nowsze serwery dostępowe udostępniają tę usługę.
Aby skonfigurować EQL będziesz potrzebować odpowiednich narzędzi, dostępnych z: sunsite.unc.edu.
Sama konfiguracja jest całkiem prosta. Rozpoczyna się od skonfigurowania interfejsu eql. Jest to taki samo urządzenie, jak każde inne urządzenie sieciowe. Konfiguracja adresu IP i wielkości mtu odbywa się tak samo za pomocą programu ifconfig:
ifconfig eql 192.168.10.1 mtu 1006
route add default eql
Następnie musisz ręcznie zainicjować każdą w linii, którą będziesz używał. Sposób inicjacji połączenia będzie zależał od rodzaju tej linii, więcej informacji na ten temat znajdziesz w odpowiednim podrozdziale.
Na koniec potrzebujesz skojarzyć połączenie przez port szeregowy z urządzenie EQL, nazywa się to `enslaving' i dokonuje się za pomocą polecenia eql_enslave:
eql_enslave eql sl0 28800
eql_enslave eql ppp0 14400
Parametr `szacowana prędkość' (estimated speed), który podajesz w poleceniu eql_slave nie ma bezpośredniego wpływu na działanie systemu. Jest wykorzystywany przez sterownik EQL do określenia stopnia podziału datagramów które powinny być otrzymywane przez urządzenie, możesz w ten sposób dokładnie dopasować równomierne obciążenie wszystlich linii.
W celu odłączenia linii od urządzenia EQL stosuje się polecnie eql_amancipate:
eql_emancipate eql sl0
Budowa tablicy trasowania odbywa się w taki sam sposób, jak w przypadku
zwykłego połączenia point-to-point, za wyjątkiem tego, że wszystkie trasy
zamiast do urządzeń ppp*, sl* powinny się odnosić do urządzenia
eql
. Zwykle polecenia wyglądają mniej więcej tak:
route add default eql0
Sterownik EQL został opracowany przez Simona Janesa,
simon@ncm.com
.
Urządzenia kart ethernetowych noszą nazwy `eth0
',
`eth1
', `eth2
' itd. Pierwsza karta wykryta przez jądro
otrzymuje nazwę `eth0
', a reszta kolejne nazwy w miarę
rozpoznawania kart przez system.
Jeśli chcesz się nauczyć, jak pracują karty ethernetowe pod Linuksem, przeczytaj Ethernet-HOWTO.
Kiedy jądro poprawnie rozpoznaje posiadane przez ciebie karty ethernetowe, ich dalsza konfiguracja jest prosta.
Zwykle wystarczą takie polecenia:
# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
# route add 192.168.0.0 netmask 255.255.255.0 eth0
Większość sterowników kart ethernetowych została opracowana przez Donalda
Beckera becker@CESDIS.gsfc.nasa.gov
.
Urządzenia standardu FDDI noszą nazwy `fddi0
',
`fddi1
', `fddi2
' itd. Pierwsze urządzenie rozpoznane
przez jądro otrzymuje nazwę `fddi0
', a pozostałe kolejne nazwy w
miarę ich rozpoznawania przez system.
Sterownik kart Digital Equipment Corporation FDDI EISA o PCI został
opracowany przez Lawrencea V. Stefaniego, stefani@lkg.dec.com
.
Opcje konfiguracji jądra:
Network device support --->
[*] FDDI driver support
[*] Digital DEFEA and DEFPA adapter support
Kiedy jądro poprawnie rozpoznaje posiadane przez ciebie karty, konfiguracja interfejsu FDDI jest niemal identyczna, jak inicjalizacja kart ethernetowych. Po prostu jako argument programów ifconfig i route podajesz jedynie nazwę odpowiedniego urządzenia FDDI.
Istnieją dwa rodzaje urządzeń standardu Frame Relay w jądrze Linuksa, DLCI o
nazwach `dlci00
', `dlci01
' itd. oraz FRAD o nazwach
`sdla0
', `sdla1
' itd.
Frame Relay jest nową technologią sieciową, przeznaczoną przede wszystkim dla ruchu ruchu o nieciągłej, przerywanej naturze. Do sieci Frame Relay podłącza się za pomocą urządzenia Frame Relay Access Device (FRAD). Frame Realy pod Linuksem obsługuje przesyłanie pakietów IP zgodnie z opisem przedstawionym w RFC-1490.
Opcje konfiguracji jądra:
Network device support --->
<*> Frame relay DLCI support (EXPERIMENTAL)
(24) Max open DLCI
(8) Max DLCI per device
<*> SDLA (Sangoma S502/S508) support
Obsługa protokołu Frame Relay, oraz niezbędne do tego narzędzia zostały
napisane przez Mikea McLagana, mike.mclagan@linux.org
.
W chwili obecnej, jedynym obsługiwanym urządzeniem FRAD jest Sangoma Technologies S502A
,
S502E
and S508
.
Po prawidłowym skompilowaniu jądra, do skonfigurowania urządzeń FRAD i DLCI są niezbędne narzędzia konfiguracyjne: ftp://ftp.invlogic.com/pub/linux/fr/frad-0.15.tgz. Komplilacja i instalacja narzędzi jest prosta, niestety brak głównego pliku Makefile, powoduje, że trzeba to zrobić ręcznie.
# cd /usr/src
# tar xvfz .../frad-0.15.tgz
# cd frad-0.15
# for i in common dlci frad; do cd $i; make clean; make; cd ..; done
# mkdir /etc/frad
# install -m 644 -o root -g root bin/*.sfm /etc/frad
# install -m 700 -o root -g root frad/fradcfg /sbin
# install -m 700 -o root -g root dlci/dlcicfg /sbin
Po zainstalowaniu narzędzi, trzeba utworzyć plik
/etc/frad/router.conf
. Możesz skorzystać z poniższego wzoru, który
jest zmodyfikowanym plikiem przykładowym:
# /etc/frad/router.conf
# Jest to wzorzec pliku konfiguracyjnego urządzeń Frame Relay
# Zawiera wszystkie możliwe opcje. Wartości domyślne są ustawione
# na podstawie kodu sterowników karty Sangoma S502A dla MSDOSu.
#
# Znak '#' w dowolnym miejscu wiersza rozpoczyna komentarz
# Puste miejsca są ignorowane (możesz tabulatorem ładnie sformatować
# cały plik
# Nieznane pozycje [] i słowa kluczowe są ignorowane
#
[Devices]
Count=1 # Liczba urządzeń do skonfigurowania
Dev_1=sdla0 # nazwa urządzenia
#Dev_2=sdla1 # nazwa urządzenia
# Podane tutaj parametry mają zastosowanie do wszystkich urządzeń,
# lecz dla każdego urządzenia indywidualnie może być podana inna wartość
#
Access=CPE
Clock=Internal
KBaud=64
Flags=TX
#
# MTU=1500 # Maksymalna długość ramki IFrame, domyślnie 4096
# T391=10 # T391 value 5 - 30, domyślnie 10
# T392=15 # T392 value 5 - 30, domyślnie 15
# N391=6 # N391 value 1 - 255, domyślnie 6
# N392=3 # N392 value 1 - 10, domyślnie 3
# N393=4 # N393 value 1 - 10, domyślnie 4
# Podane tutaj parametry mają zastosowanie do wszystkich urządzeń
# CIRfwd=16 # CIR forward 1 - 64
# Bc_fwd=16 # Bc forward 1 - 512
# Be_fwd=0 # Be forward 0 - 511
# CIRbak=16 # CIR backward 1 - 64
# Bc_bak=16 # Bc backward 1 - 512
# Be_bak=0 # Be backward 0 - 511
#
#
# Konfiguracja poszczególnych urządzeń
#
#
#
# Pierwsze urządzenie - Sangoma S502E
#
[sdla0]
Type=Sangoma # Rodzaj urządzenia do skonfigurowania,
# rozpoznawana jest tylko SANGOMA
#
# Poniższe parametry są specyficzne dla typu Sangoma
#
# Rodzaj karty śangoma - S502A, S502E, S508
Board=S502E
#
# Nazwa firmowego oprogramowania testowego dla karty Sangoma
# Testware=/usr/src/frad-0.10/bin/sdla_tst.502
#
# Nazwa firmowego oprogramowania FR
# Firmware=/usr/src/frad-0.10/bin/frm_rel.502
#
Port=360 # Port uzywany przez tę kartę
Mem=C8 # Adres okna pamięci, A0-EE, zależny od karty
IRQ=5 # Numer przerwania IRQ , nie potrebny w przypadku S502A
DLCIs=1 # Liczba urządzeń DLCI przyłączonych do tego urządzenia
DLCI_1=16 # numer pierwszego urządzenia DLCI, 16 - 991
# DLCI_2=17
# DLCI_3=18
# DLCI_4=19
# DLCI_5=20
#
# Podane poniżej opcje mają zastosowanie tylko do tego urządzenia
# i zastępują wartościdomyślne podane wcześniej
#
# Access=CPE # CPE lub NODE, domyślnie CPE
# Flags=TXIgnore,RXIgnore,BufferFrames,DropAborted,Stats,MCI,AutoDLCI
# Clock=Internal # External lub Internal, domyślnie Internal
# Baud=128 # Określona prędkość (bodów) przyłączonych CSU/DSU
# MTU=2048 # Maksymalna długość ramki IFrame, domyślnie 4096
# T391=10 # T391 value 5 - 30, domyślnie 10
# T392=15 # T392 value 5 - 30, domyślnie 15
# N391=6 # N391 value 1 - 255, domyślnie 6
# N392=3 # N392 value 1 - 10, domyślnie 3
# N393=4 # N393 value 1 - 10, domyślnie 4
#
# Drugim urządzeniem jest zupełnie inna karta
#
# [sdla1]
# Type=ŚmiesznaKarta # Rodzaj konfigurowanego urządzenia
# Board= # Rodzaj karty Sangoma
# Key=Value # Parametry specyficzne dla tego urządzenia
#
# Domyślne parametry konfiguracyjne urządzeń DLCI
# Mogą zostać zastępione w konkretnych sekcjach konfiguracyjnych DCI
#
CIRfwd=64 # CIR forward 1 - 64
# Bc_fwd=16 # Bc forward 1 - 512
# Be_fwd=0 # Be forward 0 - 511
# CIRbak=16 # CIR backward 1 - 64
# Bc_bak=16 # Bc backward 1 - 512
# Be_bak=0 # Be backward 0 - 511
#
# Konfiguracja DLCI
# Wszystkie parametry są opcjonalne. Nazewnictwo:
# [DLCI_D<devicenum>_<DLCI_Num>]
#
[DLCI_D1_16]
# IP=
# Net=
# Mask=
# Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames
# DLCIFlags=TXIgnore,RXIgnore,BufferFrames
# CIRfwd=64
# Bc_fwd=512
# Be_fwd=0
# CIRbak=64
# Bc_bak=512
# Be_bak=0
[DLCI_D2_16]
# IP=
# Net=
# Mask=
# Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames
# DLCIFlags=TXIgnore,RXIgnore,BufferFrames
# CIRfwd=16
# Bc_fwd=16
# Be_fwd=0
# CIRbak=16
# Bc_bak=16
# Be_bak=0
Po stworzeniu pliku /etc/frad/router.conf
pozostało jedynie
skonfigurować rzeczywiste urządzenia. Jest to tylko troszkę sprytniejsze niż
konfigurowanie zwykłych urządzeń sieciowych. Musisz pamiętać aby przed
uruchomieniem urządzeń DLCI uruchomić wpierw urządzenie FRAD.
# Konfiguracja karty FRAD i parametrów DLCI
/sbin/fradcfg /etc/frad/router.conf || exit 1
/sbin/dlcicfg file /etc/frad/router.conf
#
# Podnoszenie urządzenia FRAD
ifconfig sdla0 up
#
# Konfiguracja interfejsów DLCI i trasowania
ifconfig dlci00 192.168.10.1 pointopoint 192.168.10.2 up
route add 192.168.10.0 netmask 255.255.255.0 dlci00
#
ifconfig dlci01 192.168.11.1 pointopoint 192.168.11.2 up
route add 192.168.11.0 netmask 255.255.255.0 dlci00
#
route add default dev dlci00
#
Cechy jądra Linuksa dotyczące zliczania ruchu umożliwiają gromadzenie i analizę informacji na temat wykorzystania sieci. Gromadzone dane zawierają liczbę pakietów, liczbę odpowiadających im bajtów przesłanych od ostatniego zerowania liczników. Możesz zliczać ruch na wiele różnych sposobów, odpowiednio grupując ruch tak aby gromadzone informacje zawierały odpowiednie, interesujące cię statystyki.
Opcje konfiguracji jądra:
Networking options --->
[*] IP: accounting
Po skompilowaniu i zainstalowaniu nowego jądra, musisz skorzystać z narzędzia o nazwie ipfwadm, służącego do wprowadzania i zmiany reguł zliczania ruchu. Istnieje wiele reguł zliczania ruchu, które mógłbyś zastosować. Wybrałem kilka prostych, które mogą być użyteczne, zapoznaj się ze stroną podręcznika dotyczącą programu ipfwadm.
Scenariusz: Posiadasz sieć ethernetową przyłączoną do Internetu za pomocą połączenia PPP. Na segmencie ethernetowym znajduje się komputer oferujący szereg usług. Jesteś zainteresowany jaki ruch jest generowany przez telnet, rlogin, ftp i www.
Możesz skorzystać z poniższego zestawu poleceń:
#
# Usuń istniejące reguły zliczania ruchu
ipfwadm -A -f
#
# dodaj reguły dotyczące lokalnego segmentu ethernetowego
ipfwadm -A in -a -P tcp -D 44.136.8.96/29 20
ipfwadm -A out -a -P tcp -S 44.136.8.96/29 20
ipfwadm -A in -a -P tcp -D 44.136.8.96/29 23
ipfwadm -A out -a -P tcp -S 44.136.8.96/29 23
ipfwadm -A in -a -P tcp -D 44.136.8.96/29 80
ipfwadm -A out -a -P tcp -S 44.136.8.96/29 80
ipfwadm -A in -a -P tcp -D 44.136.8.96/29 513
ipfwadm -A out -a -P tcp -S 44.136.8.96/29 513
ipfwadm -A in -a -P tcp -D 44.136.8.96/29
ipfwadm -A out -a -P tcp -D 44.136.8.96/29
ipfwadm -A in -a -P udp -D 44.136.8.96/29
ipfwadm -A out -a -P udp -D 44.136.8.96/29
ipfwadm -A in -a -P icmp -D 44.136.8.96/29
ipfwadm -A out -a -P icmp -D 44.136.8.96/29
#
# Reguły domyślne
ipfwadm -A in -a -P tcp -D 0/0 20
ipfwadm -A out -a -P tcp -S 0/0 20
ipfwadm -A in -a -P tcp -D 0/0 23
ipfwadm -A out -a -P tcp -S 0/0 23
ipfwadm -A in -a -P tcp -D 0/0 80
ipfwadm -A out -a -P tcp -S 0/0 80
ipfwadm -A in -a -P tcp -D 0/0 513
ipfwadm -A out -a -P tcp -S 0/0 513
ipfwadm -A in -a -P tcp -D 0/0
ipfwadm -A out -a -P tcp -D 0/0
ipfwadm -A in -a -P udp -D 0/0
ipfwadm -A out -a -P udp -D 0/0
ipfwadm -A in -a -P icmp -D 0/0
ipfwadm -A out -a -P icmp -D 0/0
#
# Wyświetl listę obowiązujących reguł
ipfwadm -A -l -n
#
Ostatnie polecenie wyświetla listę reguł zliczania ruchu wraz ze zgromadzonymi informacjami.
Analizując wielkość ruchu IP należy pamiętać, że będzie zwiększany licznik każdej reguły, która pasuje do analizowanego pakietu, aby uzyskać wyniki różnicowe, trzeba wykonać proste działania matematyczne. Gdybym chciał znać liczbę przesłanych bajtów poza usługami telnet, rlogin, ftp i www musiałbym od wielkości ruchu dla wszystkich portów odjąć zmierzone wielkości dla poszczególnych reguł.
# ipfwadm -A -l -n
IP accounting rules
pkts bytes dir prot source destination ports
0 0 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 20
0 0 out tcp 44.136.8.96/29 0.0.0.0/0 20 -> *
0 0 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 23
0 0 out tcp 44.136.8.96/29 0.0.0.0/0 23 -> *
10 1166 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 80
10 572 out tcp 44.136.8.96/29 0.0.0.0/0 80 -> *
242 9777 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 513
220 18198 out tcp 44.136.8.96/29 0.0.0.0/0 513 -> *
252 10943 in tcp 0.0.0.0/0 44.136.8.96/29 * -> *
231 18831 out tcp 0.0.0.0/0 44.136.8.96/29 * -> *
0 0 in udp 0.0.0.0/0 44.136.8.96/29 * -> *
0 0 out udp 0.0.0.0/0 44.136.8.96/29 * -> *
0 0 in icmp 0.0.0.0/0 44.136.8.96/29 *
0 0 out icmp 0.0.0.0/0 44.136.8.96/29 *
0 0 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 20
0 0 out tcp 0.0.0.0/0 0.0.0.0/0 20 -> *
0 0 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 23
0 0 out tcp 0.0.0.0/0 0.0.0.0/0 23 -> *
10 1166 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 80
10 572 out tcp 0.0.0.0/0 0.0.0.0/0 80 -> *
243 9817 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 513
221 18259 out tcp 0.0.0.0/0 0.0.0.0/0 513 -> *
253 10983 in tcp 0.0.0.0/0 0.0.0.0/0 * -> *
231 18831 out tcp 0.0.0.0/0 0.0.0.0/0 * -> *
0 0 in udp 0.0.0.0/0 0.0.0.0/0 * -> *
0 0 out udp 0.0.0.0/0 0.0.0.0/0 * -> *
0 0 in icmp 0.0.0.0/0 0.0.0.0/0 *
0 0 out icmp 0.0.0.0/0 0.0.0.0/0 *
#
Istnieją programy sieciowe, które wymagają aby jedno urządzenie sieciowe posiadało wiele numerów IP. Dostawcy internetu często korzystają z tej cechy do tworzenia wirtualnych serwerów WWW i ftp oferując klientowi utworzenie serwera o innym adresie niż ich własny.
Opcje konfiguracji jądra:
Networking options --->
....
[*] Network aliasing
....
<*> IP: aliasing support
Po skompilowaniu i zainstalowaniu jądra z obsługą IP_Alias, konfiguracja jest
bardzo prosta. Aliasy są dodawane do wirtualnych urządzeń sieciowych
stowarzyszonych z istniejącymu urządzeniami sieciowymi. Stosuje się prostą
konwencję nazywania tych urządzeń, a mianowicie <devname>:<numer
urządzenia wirtualnego>
, np. eth0:0
, ppp0:10
etc.
Załóżmy, że posiadasz sieć ethernetową, która obsługuje jednocześnie dwie różne podsieci IP. Chciałbyś aby twój komputer miał bezpośredni dostęp do obu tych podsieci:
#
# ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0 up
# route add -net 192.168.1.0 netmask 255.255.255.0 eth0:0
#
# ifconfig eth0:1 192.168.10.1 netmask 255.255.255.0 up
# route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0
#
Aby usunąć alias należy do jego nazwy dołączyć znak `-
' podczas
następnego odwołania się do niego, np. tak:
# ifconfig eth0:0- 0
Wraz z usunięciem tego aliasu z tabeli trasowań zostaną usunięte wrzystkie trasy korzystające z tego aliasu.
Filtrowanie pakiet i zasady przy tym obowiązujące są dokładniej omówione w Firewall-HOWTO. IP Firewalling pozwala na zabezpieczenia twojego komputera przed nieuprawnionym dostępem przez sieć, wykorzystując w tym celu filtrowanie pakietów. Istnieją trzy różne klasy reguł: filtrowanie pakietów przychodzących, filtrowanie pakietów wychodzących i filtrowanie pakietów przekazywanych dalej (forwarding). Reguły filtrowania pakietów przychodzących dotyczą pakietów otrzymanych przez urządzenie sieciowe. Reguły filtrowania pakietów wychodzących, dotyczą pakietów tuż przed wysłaniem przez urządzenie sieciowe. Reguły fitrowania pakietów przesyłanych dotyczą pakietów, które zostały przez nasz komputer odebrane, lecz nie jest on ich ostatecznym adresatem, tzn. pakiety, które będą poddane trasowaniu.
Opcje konfiguracji jądra:
Networking options --->
[*] Network firewalls
....
[*] IP: forwarding/gatewaying
....
[*] IP: firewalling
[ ] IP: firewall packet logging
Wprowadzanie reguł filtrowania pakietów IP wykonuje się za pomocą programu ipfwadm. Jak wspominałem wcześniej nie jestem ekspertem od zabezpieczeń sieci komputerowych, więc choć prezentuję przykład, z którego możesz skorzystać, powinieneś samodzielnie zapoznać się z tym tematem i opracować własne reguły filtrowania pakietów, oczywiście tylko wtedy, gdy jest dla ciebie ważne bezpieczeństwo twojego systemu.
Prawdopodobnie najczęstszym wykorzystaniem filtrowania pakietów jest sytuacja, gdy twój Linux pracuje jako router i filtr pakietów chroniący lokalną sieć przed nieuprawnionym dostępem z sieci zewnętrznej.
Przedstawiona poniżej konfiguracja jest oparta na sugestiach przesłanych
przez Arnta Gulbrandsena, <agulbra@troll.no>
.
Przykład opisuje konfigurację reguł filtra pakietów praującego na Linuksie, wykorzystywanym w sposób przedstawiony na poniższym schemacie:
- -
\ | 172.16.37.0
\ | /255.255.255.0
\ --------- |
| 172.16.174.30 | Linux | |
NET =================| f/w |------| ..37.19
| PPP | router| | --------
/ --------- |--| Mail |
/ | | /DNS |
/ | --------
- -
Poniższe polecenia zwykle są umieszczane w jednym z plików rc
,
aby były automatycznie wykonywane przy każdym uruchomieniu systemu. Aby
maksymalnie zwiększyć bezpieczeństwo systemu, powinny być wykonywane tuż po
skonfigurowaniu urządzeń sieciowych, lecz tuż przed ich włączeniem. W ten sposób
niwelujemy chwilę słąbości związaną z restartem komputera.
#!/bin/sh
# Oczyść tabelę reguł przesyłania pakietów (forwarding)
# Zmień domyślną polityką na 'accept' (akceptuj):
#
/sbin/ipfwadm -F -f
/sbin/ipfwadm -F -p accept
#
# .. i dla ruchu przychodzącego (Incoming)
#
/sbin/ipfwadm -I -f
/sbin/ipfwadm -I -p accept
# Po pierwsze zabezpiecz interfejs PPP
# Chętnie zamiast '-a deny' wstawiłbym '-a reject -y', lecz wtedy nie
# byłoby możliwe rozpoczynanie połączeń wychodzących przez ten
# interfejs. Parametr -o pozwala rejestrować odrzucane datagramy.
# Kosztem przestrzeni dyskowej zajętej przez informacje sysloga
# uzyskujemy informacje na temat niechcianego ruchu IP.
#
/sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30
# Odrzuć pewnego rodzaju pakiety:
# Nic nie powinno przychodzić z adresów multicast/anycast/broadcast
#
/sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24
#
# nic nie powinno przychodzić z adresu pętli zwrotnej
#
/sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24
# Zezwól na połączenia SMTP i DNS, lecz jedynie do serwera Mail/DNS
#
/sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37.19 25 53
#
# DNS korzysta z UDP i TCP, musisz pozwolić na oba rodzaje połączeń
#
/sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37.19 53
#
# Nie pozwalamy na "odpowiedzi" przychodzące do tak niebezpiecznych
# portów jak NFS czy rozszerzenie NFSu Larryego McVoya. Jeśli
# korzystasz ze squida dopisz tutaj jego port
#
/sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 \
-D 172.16.37.0/24 2049 2050
# odpowiedzi do innych portów są OK
#
/sbin/ipfwadm -F -a accept -P udp -S 0/0 53 \
-D 172.16.37.0/24 53 1024:65535
# Odrzuć połączenia przychodzące do identd
# korzystamy tutaj z 'reject', aby łączący się komputer wiedział, że
# nie ma co próbować nawiązać połączenia. W przeciwnym wypadku narazimy
# się na opóźnienia wywołane działaniem programu ident po drugiej
# stronie nawiązywanego przez nas połączenia
#
/sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113
# Pozwól na popularne usługi pochodzące z sieci 192.168.64 i 192.168.65
#
/sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 \
-D 172.16.37.0/24 20:23
# akceptuj i przesyłaj wszystko co wzięło się z sieci lokalnej
#
/sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0
# zabroń większości innych połączeń TCP i rejestruj je
# (jeśli masz kłopot z działaniem ftp dodaj 1:1023)
#
/sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24
# ... for UDP too
#
/sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/24
Dobra konfiguracja filtra jest niemal sztuką. Powyższy przykład powinien być rozsądnym punktem startowym. Strona podręcznika dotycząca ipfwadm oferuje dodatkowe informacje na ten temat. Jeśli planujesz założenie filtra upewnij się, że zebrałeś wokół maksymalnie wiele porad ze źródeł, którym możesz ufać i poproś kogoś aby sprawdził działanie twojego filtra z zewnątrz.
AF_IPX
) Protokół IPX jest powszechnie wykorzystywany w lokalnych sieciach Novell Netware(tm). Linux potrafi obsługiwać ten protokół i może zostać skonfigurowany do pracy jako końcówka sieci Novell Netware(tm) lub jako router pakietów IPX.
Opcje konfiguracji jądra:
Networking options --->
[*] The IPX protocol
[ ] Full internal IPX network
Protokół IPX i standard NCPFS są dokładniej omówione w IPX-HOWTO.
Właśnie gdy zaczęło ci się wydawać, że zaczynasz rozumieć sieci IP, zasady się zmieniły! IPv6 jest skrótem oznaczającym wersję 6 protokołu IP. IPv6 został opracowany w celu rozwiania obaw społeczności internetowej związanych z wyczerpywaniem się wolnych adresów IP. Adresy protokołu IPv6 są budowane na 32 bajtach (128 bitów), pozwoli to na lepsze zarządzanie sieciami, niż ma to obecnie.
Jądra Linuksa serii 2.1.*
już posiadają działającą, choć
niepełną implementacje protokołu IPv6.
Jeśli chcesz poeksperymentować z tą nową generacją technologii internetowych, lub jest ci to do czegoś potrzebne, powinieneś przeczytać IPv6-FAQ dostępny pod adresem: http://www.terra.net/ipv6/.
Sieć cyfrowa zintegrowanych usług (Integrated Services Digital Network - ISDN) składa się z serii standardów definujących cyfrową sieć pakietową ogólnego przeznaczenia. ISND jest zwykle dostarczana łączami o wysokiej prędkości, podzielonymi na wiele kanałów. Istnieją dwa różne rodzaje kanałów, kanały typu 'B' rzeczywiście przenoszące dane użytkownika, oraz kanał typu 'D' wykorzystywany do przesyłania informacji sterującej do centrali ISDN w celu zestawiania połączeń i innych funkcji. Dla przykładu w Australii ISDN może być dostarczony łączem 2Mbps podzielonym na 30 kanałów B po 64kbps każdy i jeden kanał D. W tej samej chwili może być wykorzystywana dowolna liczba kabałów w dowolnej kombinacji. Jest możliwe np, zestawienie 30 różnych połączeń z 30toma różnymi punktami docelowymi, każde po 64kbps lub 15 połączeń z 15toma różnymi punktami docelowymi, każde po 128 kbps (jedno połączenie wykorzystuje dwa kanały), lub zestawienie małej liczby połączeń pozostawiając pozostałą część pasma niewykorzytaną. Pierwotną przyczyną powstania ISDN, było umożliwienie firmom telekomunikacyjnym udostępniania jednej usługi przesyłania danych, która mogłaby być wykorzystywana dla telefonii (wykorzystują cyfrowe przetworniki głosu) lub do przesyłania danych bez konieczności wykonywania przez klienta jakichkolwiek zmian.
Istnieje kilka różnych metod podłączenia komputera do sieci ISDN. Jedną z nich jest wykorzystanie urządzenia o nazwie `Terminal Adaptor', które włącza się do końcówki sieciowej (Network Terminating Unit), zainstalowanej przez twojego dostawcę usługi ISDN, udostępniającego z drugiej strony kilka portów szeregowych. Jeden z tych portów służy do wprowadzania poleceń w celu skonfigurowania i nawiązania połączeń, pozostałe są podłączone do urządzeń sieciowych, które będą bezpośrednio korzystały z zestawionych kanałów transmisji danych. W takiej konfiguracji Linux będzie pracował poprawnie bez konieczności wykonywania jakichkolwiek modyfikacji. Korzystamy z portu szeregowego urządzenia 'Terminal Adaptor' w taki sam sposób, jak ze zwykłego portu szeregowego. Innym sposobem przyłączenia Linuksa do sieci ISDN, w czym wspomagać nas będzie kod obsługi ISDN zawarty w jądrze Linuksa jest zainstalowanie karty ISDN bezpośrednio w Linuksie. Wtedy moduł obsługi ISDN w jądrze Linuksa jest odpowiedzialny za obsługę urządzenia, protokołów i zestawianie połączeń.
Opcje konfiguracji jądra:
ISDN subsystem --->
<*> ISDN support
[ ] Support synchronous PPP
[ ] Support audio via ISDN
< > ICN 2B and 4B support
< > PCBIT-D support
< > Teles/NICCY1016PC/Creatix support
Implementacja ISDN w jądrze Linuksa rozpoznaje szereg różnych typów wewnętrznych kart ISDN. Ich lista jest przedstawiona podczas konfiguracji jądra:
Część z tych kart wymaga załadowania do ich wewnętrznej pamięci odpowiedniego oprogramowania. Służy do tego oddzielne narzędzie.
Szczegółowy opis jak skonfigurować obsługę ISDN pod Linuksem jest dostępny w
katalogu /usr/src/linux/Documentation/isdn/
. Istnieje również FAQ
poświęcony tej tematyce: isdn4linux jest dostępny pod adresem http://www.lrz-muenchen.de/~ui161ab/www/isdn/.
(po połączeniu, aby otrzymać wersję angielską, musisz kliknąć na angielskiej
fladze)
Uwaga na temat PPP. Rodzina protokołów PPP pracuje na łączach szeregowych synchronicznych lub asynchronicznych. Rozpowszechniany powszechnie program `pppd' obsługuje jedynie tryb asynchroniczny. Jeśli zamierzasz uruchamiać połączenie PPP wykorzystująć jako nośnik usługę ISDN, potrzebujesz specjalną, zmodyfikowaną wersję tego programu. Wskazówki, gdzie ją można znaleźć znajdziesz w dokumentacji, o której wspomnieliśmy wcześniej.
Wielu ludzi do połączenia z Internetem ma zwykłe konto u dostawcy Internetu. Niemal każdy korzystający z takiej konfiguracji otrzymuje od swojego dostawcy Internetu jeden adres IP. Zwykle jest to wystarczające na podłączenie do Internetu tylko jednego komputera. Maskarada adresu IP jest sprytną sztuczką umożliwiającą jednoczesne korzystanie z tego jednego adresu IP przez wiele komputerów, sprawiając, że dla świata zewnętrzengo komputery te wyglądają tak, jak gdyby były komputerem obsługujący połączenie modemowe z Internetem. Istnieje mała niedogodność, a mianowicie w większości przypadków maskarada adresów IP działa tylko w jedną stronę, to znaczy komputery, które z niej korzystają mogą nawiązywać połączenia z komputerami w sieci Internet, lecz same nie mogą otrzymywać połączeń z zewnątrz. To oznacza, że niektóre usługi sieciowe np. talk nie działąją, a inne np. ftp muszą być skonfigurowane do pracy w trybie pasywnym (PASV). Na szczęscie większość usług internetowych takich, jak telnet, WWW i irc działa bardzo dobrze.
Opcje konfiguracji jądra:
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Networking options --->
[*] Network firewalls
....
[*] TCP/IP networking
[*] IP: forwarding/gatewaying
....
[*] IP: masquerading (EXPERIMENTAL)
Wpierw twój Linux musi obsługiwać połączenie z internetem (zwykle przez SLIP lub PPP) w taki sam sposób, jak gdyby byłjedynym komputerme, który będzie z tego połączenia korzystał. Następnie należy skonfigurować dodatkowe urządzenie sieciowe, zwykle kartę sieci ethernet, zwykle korzystając z puli numerów IP zarezerwowanych dla sieci prywatnych, których nie wykorzystuje się w sieci Internet. Komputery korzystające z maskarady adresów IP bedą właśnie na tej sieci. Każdy z nich otrzyma adres IP i zostanie skonfigurowany w ten sposób, że jego gatewayem (routerem) stanie się interfejs karty ethernetowej naszego Linuksa.
Typowa konfiguracja wygląda mnie więcej tak:
- -
\ | 192.168.1.0
\ | /255.255.255.0
\ --------- |
| | Linux | .1.1 |
NET =================| masq |------|
| PPP/slip | router| | --------
/ --------- |--| host |
/ | | |
/ | --------
- -
Najważniejsze polecenia konfiguracyjne dla tego przykładu:
# Trasa do sieci na segmencie ethernetowym
route add 192.168.1.0 netmask 255.255.255.0 eth0
#
# Domyślna trasa do Internetu
route add default ppp0
#
# Wszystkie komputery w sieci 192.168.1/24 korzystają z maskarady
# adresów IP
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
Więcej informacji na temat maskarady adresów IP pod Linuksem znajdziesz tutaj: IP Masquerade Resource Page, lub w dokumencie IP-Masquerade-HOWTO.
Przezroczyste proxy IP jest udogodnieniem, które umożliwia przekierowanie połączeń do usług lub serwerów na innym komputerze do usług lub serwerów znajdujących się na tym komputerze. Zwykle jest to użyteczne w sytuacji gdy twój Linux pracuje jako router i jednocześnie pracuje jako serwer proxy. W takim przypadku możesz przekierować do lokalnego serwera proxy wszystkie połączenia do serwerów proxy znajdujących się za routerem.
Opcje konfiguracji jądra:
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Networking options --->
[*] Network firewalls
....
[*] TCP/IP networking
....
[*] IP: firewalling
....
[*] IP: transparent proxy support (EXPERIMENTAL)
Konfigurację przezroczystego proxy wykonuje się programem ipfwadm.
Prosty przykład, który może być użyteczny:
ipfwadm -I -a accept -D 0/0 80 -r 8080
W powyższym przykładzie przekierowujemy wszystkie połączenia skierowane na port 80 (www) dowolnego komputera, na połączenia do portu 8080 naszego Linuksa. Ten sposób mógłby być użyty (gdyby był poprawny - bo nie jest ...pp) do przekierowania całego ruchu www do lokalnego serwera proxy.
Termin 'IP mobility' opisuje zdolność komputera do przemieszczania swojego punktu styku z internetem z jednej sieci do innej sieci bez konieczności zmiany własnego adresu IP i bez utraty nawiązanych połączeń. Zwykle gdy komputer zmienia swój punkt przyłączenia do sieci, musi również zmienić adres IP. Udogodnienie IP Mobility przezwycięża tę niedogodność przydzielając komputerowi jeden, ustalony adres IP i wykorzystuje tunelowanie (IP tunneling) i automatyczne trasowanie zapewniając, że datagramy skierowane do tego komputera są kierowane do adresu IP, z którego korzysta.
Istnieje projekt mający zapewnić powstanie kompletu narzędzi dla udogodnienia 'IP mobility' pd Linuksem. Aktualny stan prac można poznać zaglądając na stronę: Linux Mobile IP Home Page.
IP Multicast pozwala na jednoczesne trasowanie datagramów do wielu różnych komputerów znajdujących się w zupełnie innych podsieciach. Korzysta się z tego mechanizmu rozpowszechniania w internecie audio i video lub innych nowoczesnych usług.
Opcje konfiguracji jądra:
Networking options --->
[*] TCP/IP networking
....
[*] IP: multicasting
Wymagany jest minimalny zestaw narzędzi i mała rekonfiguracja sieci. Dobrym źródłem informacji na temat istalacji i konfiguracji tego udogodnienia pod Linuksem jest strona http://www.teksouth.com/linux/multicast/.
AF_NETROM
) Urządzenia NetRom noszą nazwy `nr0
', `nr1
', itd.
Opcje konfiguracji jądra:
Networking options --->
[*] Amateur Radio AX.25 Level 2
[*] Amateur Radio NET/ROM
Protokoły AX25, NetRom i Rose są opisane w AX25-HOWTO. Są wykorzystywane głównie przez krótkofalowców (packet radio).
Wiekszość pracy w implementacji tych protokołów pod Linuksem wykonał Jonathon
Naylor, jsn@cs.not.ac.uk
.
Urządzenia PLIP noszą nazwy `plip0
', `plip1
, itd.
Pierwsze konfigurowane urządzenie otrzymuje numer `0
', a następne
otrzymują kolejne numery.
Opcje konfiguracji jądra:
Networking options --->
<*> PLIP (parallel port) support
plip (Parallel Line IP), jest podobny do SLIP, to znaczy zapewnia połączenie punkt-do-punktu (point-to-point) między dwoma komputerami, lecz wykorzystuje w tym celu porty równoległe komputera (zamiast portów szeregowych, jak to ma miejsce w przypadku protokołu SLIP). Ponieważ port równoległy umożliwia w jednej chwili transmisję więcej niż jednego bitu, wykorzystując interfejs plip możemy osiągnąć znacznie większe prędkośći transmisji, niż ma to miejsce w przypadku portu szeregowego. Co więcej, do plip może być wykorzystany nawet najprostszy rodzaj portu szeregowego, port drukarkowy, gdy do pełnego wykorzystania portów szeregowych konieczne jest zakupienie dosyć drogich układów UART 15550AFN.
Należy zwrócić uwagę, że niektóre laptopy używają układów, które nie będą poprawnie współpracować z PLIP, ponieważ nie zezwalają na przesyłanie pewnego rodzaju sygnałów, na których polega PLIP, a z których nie korzystają drukarki.
Interfejs plip pod Linuksem jest zgodny z Crynwyr Packet Driver PLIP, a to oznacza, że możesz przyłączyć do swojego Linuksa, komputer pracujący pod MSDOS, na którym działa oprogramowanie TCP/IP korzystające ze standardu 'packet drivera', korzystająe z sterownika plip.
Podczas kompilacji jądra jedyny plik, któremu warto się bliżej przyjrzeć to
/usr/src/linux/driver/net/CONFIG
. Zawiera parametry czasowe
sterownika plip podane w milisekundach. Wartości domyślne są
prawdopodobnie poprawne w większości przypadków. Jeśli twój komputer jest
wyjątkowo wolny, możesz się zastanowić nad zwiększeniem tych paramterów, ale na
komputerze po drugiej stronie połączenia.
Sterownik przyjmuje następujące wartości domyślne parametrów:
urządzenie adres IRQ
we/wy
------ -------- -----
plip0 0x3BC 5
plip1 0x378 7
plip2 0x278 2 (9)
Jeśli parametry portów równoległych twojego komputera nie pasują do żadnej z przedstawionych powyżej kombinacji, jesteś w stanie zmienić przerwanie IRQ wykorzystywane przez port (za pomocą programu ifconfig). Pamiętaj aby włączyć w BIOSie korzystanie przez porty równoległe z przerwań IRQ, oczywiście o ile BIOS posiada taką opcję.
W celu skonfigurowania interfejsu plip musisz do plików
rc
konfigurujących sieć dodać następujące polecenia:
#
# Przyłącz interfejs PLIP
#
# skonfiguruj pierwszy port równoległy jako urządzenie plip
/sbin/ifconfig plip0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up
#
# End plip
Gdzie:
oznacza twój adres IP.
oznacza adres IP komputera zdalnego.
Parametr pointopoint ma tutaj takie samo znaczenie, co w przypadku protokołu SLIP, a mianowicie określa adres IP komputera po drugiej stronie połączenia.
Urządzenie plip niemal pod każdym względem możesz traktować tak samo jak urządenie slip, poza tym, że ani dip ani slattach nie muszą i nie mogą być wykorzystywane.
plip został opracowany w taki sposób, aby wykorzystywał kable o takim samym układzie, co kable, z których korzystają inne popularne programy do transferu danych przez port równoległy pracujące w środowisku MSDOS.
Schemat połączeń (wzięty z /usr/src/linux/drivers/net/plip.c
)
znajduje się poniżej:
Nazwa Połączenie
--------- -----------------
GROUND 25 - 25
D0->ERROR 2 - 15
ERROR->D0 15 - 2
D1->SLCT 3 - 13
SLCT->D1 13 - 3
D2->PAPOUT 4 - 12
PAPOUT->D2 12 - 4
D3->ACK 5 - 10
ACK->D3 10 - 5
D4->BUSY 6 - 11
BUSY->D4 11 - 6
D5 7*
D6 8*
D7 9*
STROBE 1*
FEED 14*
INIT 16*
SLCTIN 17*
Uwagi: Nie należy łączyć końcówek oznaczonych `*'. Dodatkowe uziemienia to 18,19,20,21,22,23 i 24.
Jeśli kabel z którego korzystasz jest ekranowany, ekran powinien być podłączony do obudowy wtyczki DB-25 tylko na jednym końcu.
Ostrzeżenie: kabel ze źle wykonanymi połączeniami może fizycznie zniszczyć kartę kontrolora twojego komputera. Bądź bardzo ostrożny i dwukrotnie sprawdzaj każde połączenie, aby nie narazić się na niepotrzebny ból głowy lub atak serca.
Choć może się udać, że połączenie PLIP będzie pracować na duże odległości, należy jednak tego unikać. Specyfikacja kabla pozwala na wykonania kabla o długości ok 1m. Bądź ostrożny używając dłuższych kabli, ponieważ źródła silnych pół elekromagnetycznych (pioruny, linie wysokiego napięcia, nadajniki radiowe) mogą zakłócić pracę a czasami doprowadzić do uszkodzenia sterownika. Jeśli zależy ci na połączeniu dwóch komputerów na naprawdę dużą odległość, powinieneś zopatrzyć się w parę tanich kart ethernetowych pracujących na cienkim kablu koncentrycznym.
Urządzenia PPP noszą nazwy `ppp0
', `ppp1
, itd.
Urządzenia otrzymują kolejne numery poczynając od `0
'.
Opcje konfiguracji jądra:
Networking options --->
<*> PPP (point-to-point) support
Szczegółowy opis konfiguracji PPP można znaleźć w PPP-HOWTO.
Jeśli masz na tyle szczęścia, aby posiadać półstałe połączenie z siecią i chciałbyś, aby twój komputer automatycznie zestawiał połączenie PPP, gdy z jakiegoś powodu zostanie przerwane, pomoże ci w tym prosta sztuczka.
Skonfiguruj PPP w taki sposób, aby było uruchamiane przez administratora systemu za pomocą polecenia:
# pppd
Upewnij się, że w pliku /etc/ppp/options
znajduje się
opcja `-detach
'. Następnie dodaj do pliku
/etc/inittab
, poniżej definicji getty następujący wiersz:
pd:23:respawn:/usr/sbin/pppd
W ten sposób program init będzie uruchamiał i monitorował program pppd i za każdym razem, gdy pppd skończy pracę, będzie uruchamiał go ponownie.
AF_ROSE
) Urządzenia protokołu Rose noszą nazwy `rs0
', `rs1
',
itd. Dostępne są w jądrach w wersji 2.1.*
.
Opcje konfiguracji jądra:
Networking options --->
[*] Amateur Radio AX.25 Level 2
<*> Amateur Radio X.25 PLP (Rose)
Protokoły AX25, NetRom i Rose są dokładnie omówione w AX25-HOWTO. Są wykorzystywane przez krótkofalowców (packet radio).
Większość pracy związanej z implementacją tych protokołów pod Linuksem
wykonał Jonathon Naylor, jsn@cs.not.ac.uk
.
SAMBA jest implemnetacją protokołu SMB (Session Management Block). Pozwala na korzystanie z dysków i drukarek komputera pracującego pod Linuksem, komputerom pracującym pod systemami firmy Microsoft lub pod systemem OS2
SAMBA i jej konfigiracja jest szczegółowo omówiona w SMB-HOWTO.
Urządzenia protokołu SLIP są nazywane `sl0
', `sl1
'
itd. Pierwsze skonfigurowane urządzenie otrzymuje numer `0
',
pozostałe otrzymują kolejne numery, w momencie ich konfiguracji.
Opcje konfiguracji jądra:
Network device support --->
[*] Network device support
<*> SLIP (serial line) support
[ ] CSLIP compressed headers
[ ] Keepalive and linefill
[ ] Six bit SLIP encapsulation
Protokół SLIP (Serial Line Internet Protocol) pozwala na zestawienie połączenia TCP/IP przez linię szeregową, np. połączenie modemowe przez linię telefoniczną lub dzierżawioną. Oczywiście aby móc korzystać z protokołu SLIP należy mieć wpierw dostęp do serwera SLIP. Wiele uniwersytetów i firm komercyjnych udostępniają usługę SLIP.
SLIP wykorzystuje porty szeregowe komputera do przesyłania datagramów IP. W tym celu musi przejąć sterowanie portu szeregowego. Urządzenia SLIP noszą nazwy sl0, sl1 itd. Jak to się ma do urządzeń portów szeregowych? Oprogramowanie sieciowe korzysta z funkcji ioctl (i/o control) za pomocą których może zażądać zamiany urządzenia portu szeregowego w urządzenie SLIP. Dwa popularne programy potrafią to zrobić. Jeden z nich to dip, drugi slattach.
dip (Dialup IP) to zmyślny program umożliwiający ustawienie prędkości portów szeregowych, sterowanie modemem w celu wybrania odpowiedniego numeru, zautomatyzowane wejście do zdalnego systemu, przesukiwanie i wybieranie informacji przesyłanych przez zdalny serwer (np. przydzielonego nam na czas sesji adresu IP), korzystanie z funkcji ioctl w celu przestawienia portu szeregowego w urządzenie SLIP. Program dip posiada rozbudowany język przeznaczony do pisania skryptów, dzięki czemu można bardzo łatwo zautomatyzować procedurę zestawiania połączenia SLIP.
Jest dostępny pod adresem: sunsite.unc.edu.
Aby go zainstalować spróbuj wydać następujące polecenia:
#
# cd /usr/src
# gzip -dc dip337o-uri.tgz | tar xvf -
# cd dip-3.3.7o
<jeśli to konieczne popraw plik Makefile>
# make install
#
Plik Makefile
zakłada istnienie w twoim systemie grupy o nazwie
uucp, lecz możesz to zmienić np na dip, lub slip
zależnie od twojej konfiguracji.
slattach w przeciwieństwie do dip jest bardzo prostym programem, bardzo łatwym w użytkowaniu, nie posiadającym bogatych opcji programu dip. Nie posiada możliwości tworzenia skryptów, jedyne co robi to konfiguracja urządzenia portu szeregowego, jako urządzenia SLIP. Zakłada, że posiadasz wszystkie informacje niezbędne do zestawienia połączenia oraz, że połączenie fizyczne między portami jest już zestawione. slattch jest idealne do wykorzystania w stałych połączeniach z serwerem, np. przez kabel łączący bezpośrednio dwa porty szeregowe lub przez linie dzierżawioną.
Skorzystałbym z programu dip zawsze wtedy, gdy łączyłbyn komputer z serwerem SLIP przez modem i linię telefoniczną. Skorzystałbym z programu slattach wtedy, gdy zestawiałbym połączenie przez linię dzierżawioną lub kabel bezpośrednio między serwerem i moim komputerem i gdy nie muszę wykonywać żadnych czynności do fizycznego zestawienia połączenia między moim komputerem a serwerem. Patrz rozdział 'Stałe połączenie SLIP'.
Konfiguracja urządzenia SLIP jest zbliżona do konfiguracji urządzenia karty ethernetowej. (przeczytaj rozdział 'Konfiguracja karty ethernetowej). Jednakże istnieją dwie zasadnicze różnice:
Po pierwsze SLIP w przeciwieństwie do sieci ethernetowych łączy bezpośrednio ze sobą tylko dwa komputery, po jednym na każdym końcu połączenia. O ile podłączenie kabla sieci ethernet do komputera oznacza jej natychmiastową gotowość do pracy, o tyle w przypadku protokołu SLIP może być wymagana wcześniejsza inicjacja fizycznego połączenia między komputerami.
Jeśli korzystasz z programu dip, to zwykle inicjacja łącza odbywa
się nie tuż po uruchomieniu systemu, lecz później, gdy jesteś gotowy do
korzystania z połączenia. Można całą tę procedurę zautomatyzować. Jeśli
korzystasz z programu slattch
wtedy prawdopodobnie zechcesz
zmodyfikować plik startowy rc.inet1
. Jak to zrobić powiemy za
chwilę.
Istnieją dwa podstawowe serwery udostępniające SLIP. Różnią się sposobem przydziału adresu IP, mogą to robić statycznie (za każdym razem otrzymujesz ten sam adres IP) i dynamicznie (po nawiązaniu połączenia serwer podaje, jakiego adresu powinieneś używać). Niemal każdy serwer SLIP bedzie wymagał przedstawienia się i podania hasła. dip potrafi zautomatyzować wszystkie te procedury.
Statyczny serwer SLIP to skrót oznaczający serwer SLIP przydzielający adresy
IP w sposób statyczny. Otrzymany adres IP jest wyłącznie twój. Za każdym razem,
gdy przyłączysz się do serwera będziesz konfigurował port SLIP swojego komputera
tym samym adresem IP. Serwer odpowie na połączenie rozpoczęte przez twój modem,
prawdopodobnie poprosi o podanie identyfikatora i hasła, a następnie po
przejściu w tryb SLIP będzie przesyłał wszystkie datagramy adresowane na twój
adres IP przez nazwiązane przez ciebie połączenie. Jeśli korzystasz ze
statycznego serwera SLIP, możesz chcieć dodać do pliku /etc/hosts
pozycję z nazwą i adresem IP twojego komputera. Powinieneś również skonfigurować
kilka innych plików, między innymi rc.inet2
,
host.conf
, resolv.conf
, /etc/HOSTNAME
i
rc.local
. Pamiętaj, że modyfikując rc.inet1
nie musisz
podawać żadnych poleceń specyficznych dla połączenia SLIP, ponieważ to dopiero
dip wykona całą ciężką robotę konfigurując interfejs SLIP, po tym jak
nawiąże połączenie modemowe i zaloguje się na serwer.
Jeśli tak właśnie pracuje serwer SLIP z którego korzystasz możesz przejść do rozdziału 'Korzystanie z programu dip', tam dowiesz się jak poprawnie skonfigurować ten program.
Dynamiczny serwer SLIP to skrót oznaczający serwer SLIP, który z pewnej puli przydziela adresy IP w sposób dynamiczny (za każdym razem, gdy się z nim połączysz możesz otrzymać inny adres IP). To znaczy, że nie masz gwarancji, że łącząc się otrzymasz konkretny adres IP, może on być wykorzystywany przez kogoś innego, wtedy gdy nie korzystasz z połączenia. Administrator sieci, który skonfigurował serwer przydzielił mu pewną pulę adresów IP z której może korzystać. Obsługując kolejne przychodzące połączenie znajduje pierwszy niewykorzystany w danym momencie adres IP, przeprowadza użytkownika przez procedurę weryfikacyjną wyświetlając na koniec informacje zawierającą adres IP, który został przydzielony temu użytkownikowi na czas trwania nawiązanego właśnie połączenia.
Konfiguracja do korzystania z tego rodzaju serwera jest podobna do tej dla serwera statycznego. Trzeba jedynie dodać fragment pobrania adresu IP przydzielonego nam przez serwer na czas trwania połączenia, a następnie kontynuować konfigurowanie SLIPa z tym właśnie adresem.
Ponownie, dip wykonuje tę ciężką pracę, a jego nowsze wersje są na tyle sprytne, że potrafią nie tylko zalogować cię do systemu, ale również potrafią odczytać automatycznie adres IP wyświetlany przez serwer, zachowując go do późniejszego wykorzystania przy konfigurowaniu interfejsu SLIP.
Jeśli tak właśnie pracuje serwer SLIP z którego korzystasz możesz przejść do rozdziału 'Korzystanie z programu dip', tam dowiesz się jak poprawnie skonfigurować ten program.
Jak wyjaśniliśmy wcześniej dip jest potężnym programem, który potrafi uprościć i zautomatyzować proces łączenia się z serwerem SLIP, logowania się na ten serwer, uruchamiania tam odpowiedniego oprogramowania i konfigurowania lokalnych urządzeń SLIP za pomocą odpowiednich poleceń korzystających z programów ifconfig i route.
Podstawowym sposobem korzystania z programu dip jest pisanie i
uruchamianie specjalnych skryptów, składających się z listy poleceń rozumianych
przez program dip. Przyjrzyj się plikowi sample.dip
znajdującemu się w dystrybucji programu dip. Dip jest potężnym
programem posiadającym wiele opcji, nie bedziemy ich tu wszystkich przedstawiać,
jeśli cię to interesuje, przyjrzyj się stronom podręcznika poświęconym
programowi dip, plikom README i innym plikom przykładowym znajdującym się w
pakiecie dystrybucyjnym programu.
Prawdopodobnie zauważyłeś, że plik sample.dip
zakłada, że
korzystasz ze statycznego serwera SLIP, tzn. że wiesz jaki jest twój adres IP,
zanim połączysz się z serwerem. W przypadku korzystania z dynamicznego serwera
SLIP nowsze wersje programu dip zostały zaopatrzone w dodatkowe polecenie, które
potrafi automatycznie odczytać i skonfigurowć lokalne urządzenie SLIP z adresem
IP przydzielonym przez serwer. Poniższa próbka jest zmodyfikowanym plikiem
sample.dip
dostarczanym w pakiecie dip337j-uri.tgz i w
twoim przypadku prawdopodobnie jest dobrym punktem startowym.
Możesz go zachować jako np. /etc/dipscript
i dostosować go do
swoich warunków.
#
# sample.dip Dialup IP connection support program.
#
# This file (should show) shows how to use the DIP
# This file should work for Annex type dynamic servers, if you
# use a static address server then use the sample.dip file that
# comes as part of the dip337-uri.tgz package.
#
#
# Version: @(#)sample.dip 1.40 07/20/93
#
# Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
#
main:
# Next, set up the other side's name and address.
# My dialin machine is called 'xs4all.hacktic.nl' (== 193.78.33.42)
get $remote xs4all.hacktic.nl
# Set netmask on sl0 to 255.255.255.0
netmask 255.255.255.0
# Set the desired serial port and speed.
port cua02
speed 38400
# Reset the modem and terminal line.
# This seems to cause trouble for some people!
reset
# Note! "Standard" pre-defined "errlevel" values:
# 0 - OK
# 1 - CONNECT
# 2 - ERROR
#
# You can change those grep'ping for "addchat()" in *.c...
# Prepare for dialing.
send ATQ0V1E1X4\r
wait OK 2
if $errlvl != 0 goto modem_trouble
dial 555-1234567
if $errlvl != 1 goto modem_trouble
# We are connected. Login to the system.
login:
sleep 2
wait ogin: 20
if $errlvl != 0 goto login_trouble
send MYLOGIN\n
wait ord: 20
if $errlvl != 0 goto password_error
send MYPASSWD\n
loggedin:
# We are now logged in.
wait SOMEPROMPT 30
if $errlvl != 0 goto prompt_error
# Command the server into SLIP mode
send SLIP\n
wait SLIP 30
if $errlvl != 0 goto prompt_error
# Get and Set your IP address from the server.
# Here we assume that after commanding the SLIP server into SLIP
# mode that it prints your IP address
get $locip remote 30
if $errlvl != 0 goto prompt_error
# Set up the SLIP operating parameters.
get $mtu 296
# Ensure "route add -net default xs4all.hacktic.nl" will be done
default
# Say hello and fire up!
done:
print CONNECTED $locip ---> $rmtip
mode CSLIP
goto exit
prompt_error:
print TIME-OUT waiting for sliplogin to fire up...
goto error
login_trouble:
print Trouble waiting for the Login: prompt...
goto error
password:error:
print Trouble waiting for the Password: prompt...
goto error
modem_trouble:
print Trouble occurred with the modem...
error:
print CONNECT FAILED to $remote
quit
exit:
exit
Powyższy przykład zakłada, że łączysz się z dynamicznym serwerem
SLIP. Jeśli łączysz się z serwerem statycznym powinieneś skorzystać z
pliku sample.dip
dostarczanego razem z dip337j-uri.tgz.
Gdy dip otrzyma polecenie get $local przeszukuje tekst przesyłany przez serwer SLIP w poszukiwaniu ciągu znaków wyglądającego jako adres IP, tzn. ciągi cyfr rozdzielone kropką '.'. Została ona wprowadzone dla osób korzystających z dynamicznych serwerów SLIP, aby dip mógł sam, automatycznie odczytać adres IP przydzielony przez serwer.
W powyższym przykładzie po zestawieniu połączenia SLIP zostanie automatycznie dodana domyślna trasa skierowana właśnie przez to połączenie. Jeśli nie tego oczekujesz, możesz np. posiadać inne połączenie przez sieć ethernetową, przez które ma być skierowana domyślna trasa, usuń z powyższego pliku wiersz z poleceniem default. Jeśli po zakończeniu działania tego skryptu wydasz polecenie ifconfig zobaczysz, że pojawiło się nowe urządzenie sl0. To jest właśnie urządzenie SLIP. W miarę potrzeb możesz zmienić konfigurację sieci ręcznie, po zakończeniu działania programu dip, za pomocą pogramów ifconfig i route.
Należy pamietać, że dip pozwala na wybranie jednego z wielu różnych
protokołów wykorzystywanych w poleceniu mode
. Najczęściej jest to
cSLIP oznaczający SLIP z kompresją nagłówków. Pamiętaj, że oba końce
połączenia muszą pracować w identycznym trybie. Jeśli zmienisz jakieś
ustawienia, musisz się upewnić, że serwer sobie z nimi poradzi.
Powyższy przykład jest uniwersalny i powinien poradzić sobie z większością błędów jakie mogą wystąpić. Więcej informacji znajdziesz na stronie podręcznika poświęconej programowi dip (man dip). Oczywiście możesz w taki sposób zmodyfikować ten skrypt, aby w przypadku wystapienia błędu próbował powtórnie nawiązać połączenie telefoniczne, lub próbował połączyć się z innymi serwerami, które udostępniają ci wejscie do Internetu.
Jeśli jesteś posiadaczem kabla łączącego dwa komputery, lub szczęśliwcem posiadającym linie dzierżawioną lub inne stałe połączenie szeregowe dwóch komputerów, wtedy nie musisz się kłopotać zestawiając łącze szeregowe za pomocą programu dip. slattach jest bardzo łatwym w uzywaniu narzędziem umożliwiającym skonfigurować zestawiane połaczenie.
Ponieważ będzie to połączenie stałe, prawdopodobnie zechcesz dodać kilka
poleceń do pliku rc.inet1
. Podsumowując, wszystko co potrzebujesz w
przypadku zestawiania połączenia przez linię stałą, jest poprawne ustawienie
prędkości portów szeregowych i przełączenie ich w tryb SLIP. slattach
pozwala wykonać to wszystko wydając jedno polecenie. Dodaj do pliku
rc.inet1
następujące polecenie:
#
# Zestaw połączenie SLIP ze statycznym adresem IP
#
# configure /dev/cua0 for 19.2kbps and cslip
/sbin/slattach -p cslip -s 19200 /dev/cua0 &
/sbin/ifconfig sl0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up
#
# Koniec
Gdzie:
twój adres IP
adres IP po drugim końcu połączenia SLIP
slattach przyporządkowuje do urządzenia portu szeregowego pierwsze
wolne urządzenie slip. Rozpoczyna od sl0. To znaczy pierwsze wywołanie
polecenia slattach
przyporządkowuje portowi szeregowemu urządzenie
sl0, przy następnym wywołaniu będzie to sl1 itd.
slattach umożliwia skonfigurowanie wielu różnych protokołów
(argument opcji -p
). W twoim przypadku w zależności od tego czy
będziesz chciał korzystać z kompresji nagłówków czy nie będziesz korzystał albo
z protokołu cSLIP albo SLIP. Uwaga: oba końce połączenia muszą
używać tego samego protokołu.
Jeśli posiadasz komputer, być może przyłączony do sieci, i chcesz, aby udostępniał innym przez modem serwisy internetowe, to musisz skonfigurować go jako serwer. Jeśli protokołem, który chcesz używać jest SLIP, to istnieją trzy możliwości konfiguracji twojego komputera jako serwer. Osobiście preferuję pierwszą z prezentowanych, sliplogin. Wydaje się być najprostszą i najłatwiejszą do skonfigurowania i zrozumienia. Przedstawię opis wszystkich trzech metod, abyś mógł samemu podjąć decyzję.
sliplogin to program zastępujący zwykłą powłokę (interpreter poleceń) użytkownika, dla tych, którzy chcą korzystać z linii szeregowej w trybie SLIP. Pozwala na skonfigurowanie twojego komputera zarówno jako statycznego serwera SLIP (użytkownicy za każdym razem otrzymują ten sam adres IP), lub dynamicznego serwera SLIP (adres IP jest przydzielony raczej do linii szeregowej, a nie użytkownika, więc użytkownik nie ma pewności, że za każdym razem otrzyma ten sam adres IP).
Użytkownik musi wpierw przejść przez standardową procedurę wchodzenia do
systemu (logowanie się) podając swój identyfikator i hasło, lecz po wejściu do
systemu, zmiast zwykłego interpretera poleceń uruchamiany jest program
sliplogin, który przeszukuje swój plik konfiguracyjny
(/etc/slip.hosts
) w poszukiwaniu pozycji odpowiadającej
identyfikatorowi użytkownika. Po jej znalezieniu, przestawia linię w tryb 8mio
bitowy, a następnie korzystając z odpowiednich funkcji ioctl przełącza
linię w tryb SLIP. Po zakończeniu tego etapu następuje ostatnia faza,
sliplogin uruchamia skrypt, którego zadaniem jest skonfigurowanie
interfejsu SLIP (ustawienie adresu IP, netmaski) dodanie odpowiedniej trasy do
tabeli trasowania (routingu) jądra. Skrypt ten nosi zwykle nazwę
/etc/slip.login
lecz podobnie jak w przypadku getty, jeśli
niektórzy użytkownicy wymagają specjalnego traktowania możesz utworzyć skrypt
/etc/slip.login.identyfikator_uzytkownika
, który w takim przypadku
zostanie uruchomiony w miejsce standardowego skryptu.
Aby sliplogin działał poprawnie należy zmodyfikować trzy lub cztery pliki. Omówię szczegółowo skąd i jak zdobyć odpowiednie oprogramowanie i jak je poprawnie skonfigurować. Wspomniane pliki to:
/etc/passwd
, definiujacy użytkownikłów twojego systemu,
/etc/slip.hosts
, zawierający informacje o każdym użytkowniku
korzystającym ze SLIPa,
/etc/slip.login
, odpowiedzialny z odpowiednią konfigurację
systemu, po zalogowaniu się użytkownika,
/etc/slip.tty
wymagany tylko wtedy, gdy konfigurujesz
dynamiczny serwer SLIP, a który zawiera tabelę przydzielanych adresów
IP,
/etc/slip.logout
zawierający polecenia jakie należy wykonać
po zakończeniu pracy przez użytkownika, lub po zerwaniu połączenia.
Być może pakiet sliplogin jest już zainstalowany na twoim komputerze, jako część dystrybucji, jeśli nie, sliplogin jest dostępny pod adresem sunsite.unc.edu. Plik tar zawiera pliki źródłowe, skompilowane pliki binarne i dokumentację.
Aby zapewnić, że sliplogin może być uruchamiany przez upoważnionych
do tego użytkowników, powinieneś do pliku /etc/group
dodać pozycję
podobną do poniższej:
..
slip::13:radio,fred
..
Podczas instalacji pakietu sliplogin, Makefile
zmieni
grupę do której należy program sliplogin na slip
. W ten
sposób, prócz właściciela będą go mogli uruchamiać tylko użytkownicy należący do
grupy SLIP. W powyższym przykładzie mogą to robić tylko użytkownicy
radio
i fred
.
Aby zainstalować pliki binarne do katalogu /sbin/
, a strony
podręcznika do /man/
należy wykonoać następujące polecenia:
# cd /usr/src
# gzip -dc .../sliplogin-2.1.1.tar.gz | tar xvf -
# cd sliplogin-2.1.1
# <..Jeśli nie korzystasz z shadow pasword popraw Makefile..>
# make install
Jeśli przed instalacją chcesz samemu skompilować pliki binarne przed
make install
wykonaj polecenie make clean
. Jeśli
chcesz zainstalować pliki binarne w innym miejscu, musisz wcześniej zmienić plik
Makefile
.
Więcej informacji znajdziesz w plikach README
wewnątrz pakietu.
/etc/passwd
. Zwykle dla osób korzystających ze SLIPa tworzy się oddzielne konta.
Powszechnie przyjęta konwencja mówi, że jako pseudonim użytkownika należy
przyjąć nazwę łączącego się z nami komputera, poprzedzoną wielką literą 'S'.
Jeśli łączący się z nami komputer nosi nazwę radio
, mogłbyś
utworzyć dla niego pozycję w pliku /etc/passwd
wyglądajacą mniej
więcej tak:
Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin
Tak na prawdę nie ma znaczenia jaki jest identyfikator konta.
Uwaga: użytkownik SLIPa nie potrzebuje własnego katalogu macierzystego,
ponieważ nie będzie korzystał z powłoki interpretera poleceń na naszym
komputerze. Dlatego dobrym wyborem w takim przypadku jest katalog
/tmp
. Pamiętaj, że zamiast zwykłej powłoki uruchamiany jest program
sliplogin.
/etc/slip.hosts
Plik /etc/slip.hosts
jest przeszukiwany przez sliplogin
w poszukiwaniu szczegółów konfiguracyjnych dla użytkownika, przez którego został
uruchomiony. W tym właśnie pliku podaje się adres IP i netmaskę które będą
przydzielone temu użytkownikowi i wykorzystywane do konfiguracji. Przykładowe
dwie pozycje, jedną dla statycznej konfiguracji dla komputera radio i drugą,
dynamiczna konfiguracja dla komputera albert
mogły by wyglądać
następująco:
#
Sradio 44.136.8.99 44.136.8.100 255.255.255.0 normal -1
Salbert 44.136.8.99 DYNAMIC 255.255.255.0 compressed 60
#
Poszczególne pola w wierszu pliku /etc/slip.hosts
oznaczają:
DYNAMIC
wtedy adres IP, zostanie
przydzielony na podstawie informacji zawartych w pliku
/etc/slip.tty
. Uwaga: to udogodnienie pojawiło się dopiero
w wersji 1.3 programu sliplogin.
Uwaga: W polach 2 i 3 można podawać zarówna nazwy komputerów, jak i adresy IP. Jeśli podasz nazwę komputera, sprawdź, czy system potrafi znaleźć jego adres IP, w przeciwnym razie wykonanie skryptu zakończy się niepowodzeniem. Możesz to sprawdzić próbując połączyć się z nim za pomocą programu telnet. Jeśli zobaczysz komunikat `Trying nnn.nnn.nnn...' to znaczy, że twój komputer potrafi znaleźć adres IP komputera o podanej przez ciebie nazwie. Jeśli zobaczysz komunikat Unknown host', to znaczy, że jednak nie potrafi. Jeśli nie potrafi musisz podawać adres IP tego komputera lub sprwadź konfigurację DNS swojego komputera.
Najczęściej wykorzysytwane tryby pracy SLIP to:
zwykły, nieskompresowny SLIP.
kompresja nagłówków van Jacobsena (cSLIP)
Oczywiście są to dwie wzajemnie wykluczające się opcje. Więcej informacji na temat dostępnych opcji znajdziesz na stronie podręcznika poświęconej programowi sliplogin.
/etc/slip.login
. Po przeszukaniu przez sliplogin pliku /etc/slip.hosts
i
znalezieniu opowiednich pozycji, zostanie uruchomiony skrypt
/etc/sli.login
, który w rzeczywistości wykonuje cała pracę związaną
z konfiguracja interfejsów sieciowych, korzystając z przekazanych mu informacji
o adresie IP i netmasce sieci.
Przykładowy plik /etc/slip.login
dostarczany w pakiecie
sliplogin wygląda następująco:
#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a SLIP line. sliplogin invokes this with
# the parameters:
# $1 $2 $3 $4, $5, $6 ...
# SLIPunit ttyspeed pid the arguments from the slip.host entry
#
/sbin/ifconfig $1 $5 pointopoint $6 mtu 1500 -trailers up
/sbin/route add $6
arp -s $6 <hw_addr> pub
exit 0
#
Jak widać, powyższy skrypt po prostu korzysta z programu ifconfig i route. Konfiguruje urządzenie SLIP zgodnie z podanymi mu adresem IP i netmaską, następnie modyfikuje tabele trasowania w jądrze. Wykonuje te same polecenia, które należy wykonać ręcznie korzystając ze slattach.
Zwróć uwagę na użycie Proxy ARP w celu zapewnienia komunikacji
między komputerami znajdującymi się na tym samym segmencie sieci co nasz serwer,
a komputerem łączącym się przez linię szeregową. Pole
<hw_addr>
powinno zawierać adres sprzętowy karty ethernetowej
serwera. Jeśli serwer nie jest przyłączony do sieci ethernetowej możesz pominąć
ten wiersz całkowicie.
/etc/slip.logout
.Kiedy następuje przerwanie połączenie chcesz być pewny, że port szeregowy
jest przywracany do swego normalnego stanu i jest gotowy do obsługi kolejnego
połączenia. Do tego celu służy skrypt /etc/slip.logout
. Jest bardzo
prosty i jest wywoływany z tymi samymi argumentami co
/etc/slip.login
.
#!/bin/sh -
#
# slip.logout
#
/sbin/ifconfig $1 down
arp -d $6
exit 0
#
Wykonywane przez niego czynności to: wyłączenie interfejsu slip, spowoduje
automatyczne usunięcie z tabeli trasowania wprowadzonej tam podczas zestawiania
połączenie pozycji; usunięcie z tabeli arp
wprowadzonej tam ręcznie
pozycji. Nie potrzebujesz tego polecenia, jeśli twój serwer nie jest przyłączony
do sieci ethernetowej.
/etc/slip.tty
.Jeśli korzystasz z dynamicznego przydziału adresów IP (choć jeden komputer w
pliku /etc/slip.hosts
jest skonfigurowany z opcją
DYNAMIC
) to musisz również skonfigurować plik
/etc/slip.tty
informując system jakie adresy IP są przydzielone do
każdego z wykorzystywanych portów szeregowych. Plik ten jest potrzebny tylko
wtedy, gdy twój serwer będzie przydzielał adresy IP użytkownikom w sposób
dynamiczny.
Plik zawiera tabelę, która każdemu wykorzystywanemu urządzeniu tty przyporządkowuje adres IP jaki ma zostać przydzielony komputerowi łączącemu się przez to urządzenie tty.
Format niniejszego pliku jest następujący:
# slip.tty tty -> adres IP
# format: /dev/tty?? xxx.xxx.xxx.xxx
#
/dev/ttyS0 192.168.0.100
/dev/ttyS1 192.168.0.101
#
Pozycje w powyższym przykładzie oznaczają, że wszyscy, którzy połączą się
przez port /dev/ttuS0
i jako swoj adres mają w pliku
/etc/slip.hosts
słowo DYNAMIC
otrzymają adres
192.168.0.100
.
W ten sposób potrzebujesz jedynie jednego adresu IP na każdy wykorzystywany port dla wszystkich użytkowników, którzy nie potrzebują dedykowanego, stałego adresu IP. Dzięki temu liczba adresów potrzebna do obsługi wielu użytkowników jest bardzo mała.
Część z prezentowanej poniżej informacji pochodzi ze stron podręcznika dotyczących programu dip. Jest tam pokrótce opisane jak wykorzystać dip jako serwer SLIP. Proszę również zwrócić uwagę, że podane informacje dotyczą wersji dip337o-uri.tgz i prawdopodobnie nie mają zastosowania do innych wersji programu.
dip posiada tryb pracy, w którym automatycznie wyszukuje pozycję
dotyczącą użytkownika, który go wywołał i konfiguruje linię szeregową jako
połączenie SLIP według parametrów jakie znalazł w pliku
/etc/diphosts
. Ten tryb pracy jest włączany wtedy, gdy dip
zostanie uruchominy jako program o nazwie diplogin. To jest właśnie
sposób wykrzystania dipa do stworzenia serwera SLIP. Należy utworzyć
specjalne konta, z programem diplogin jako powłoką użytkownika.
Pierwsze co musisz zrobić, to następujące dowiązanie symboliczne:
# ln -sf /usr/sbin/dip /usr/sbin/diplogin
Następnie należy dodać odpowiednie pozycje do pliku /etc/passwd
i /etc/diphosts
.
Aby skonfigurować Linuksa jako serwer SLIP wykorzystując do tego program dip wymaga utworzenia specjalnych kont do obsługi SLIPa z powłoką użytkownika w postaci programu dip jako diplogin. Sugerowana konwencja nadawania nazw tym kontom zaleca, aby pseudonim użytkownika rozpoczynał się wielką literą 'S', np. `Sfredm'.
Przykładowa pozycja pliku /etc/passwd
konta SLIP może wyglądać
następująco:
Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin
^^ ^^ ^^ ^^ ^^ ^^ ^^
| | | | | | \__ diplogin jako powłoka użytkownika
| | | | | \_______ katalog domowy
| | | | \____________ pełna nazwa użytkownika
| | | \_________________ numer grupy (GID)
| | \_____________________ numer użytkownika (UID)
| \_______________________________ zakodowane haslo
\__________________________________________ pseudonim użytkownika
Po zalogowaniu się użytkownika (jeśli zostanie poprawnie zweryfikowany)
program login uruchomi polecenie diplogin. dip wywołany jako
diplogin zakłada, że został uruchomiony jako powłoka użytkownika.
Piersze co robi, to korzysta z funkcji getuid() pobierając pseudonim
wywołującego go użytkownika. Następnie przeszukuje /etc/diphosts
w
poszukiwaniu pierwszej pozycji, która pasuje do zdobytego identyfikatora lub
wykorzystywanego urządzenia tty, a następnie odpowiednio się
konfiguruje. Decydując czy użytkownik powinien mieć własną pozycję w pliku
/etc/diphosts
, czy powinien korzystać z konfiguracji domyślnej,
możesz budować serwer, który korzysta zarówno z dynamicznego i statycznego
przydziału adresów IP.
dip automatycznie doda pozycję Proxy-ARP jeśli zostanie wywołany jako diplogin. Nie musisz się martwić ręcznym dodawaniem tych pozycji.
/etc/diphosts
/etc/diphosts
jest wykorzystywany przez dip do
wyszukiwania konfiguracji dla łączących się komputerów. Mogą to być pozycje
dotyczące zarówno komputerów łączących się z twoim Linuksem, lecz równie dobrze
mogą to być pozycje dotyczące komputerów, z którymi łączy się twój Linux.
Ogólny format pliku /etc/diphosts
wygląda następująco:
..
Suwalt::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006
ttyS1::145.71.34.3:145.71.34.2:255.255.255.0:Dynamic ttyS1:CSLIP,296
..
Poszczególne pola oznaczają:
pseudonim użytkownika
: identyfikator zwracany przez
getpwuid(getuid()) lub nazwa terminala
niewykorzystane
: zgodność z formatem passwd
adres zdalny
: nazwa (adres IP) łaczącego się z nami komputera
adres lokalny
: nazwa (adres IP) naszego serwera
netmaska
: netmaska w notacji dziesiętnej
komentarz
: możesz tu wstawić co chcesz
protokół
: Slip, CSlip itp.
MTU
: liczba Przykłady pozycji pliku /etc/net/diphosts
dla komputerów
łączących się z nami:
Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:SLIP,296
definującej połączenie SLIP między naszym serwerem, a komputerem, który otrzyma adres 145.71.34.1, parametr MTU połączenia będzie wynosił 296, lub
Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006
definiującej połączenie cSLIP z komputerem, który otrzyma adres 145.71.34.1. parametr MRU połączenia wynosił 1008.
Dlatego wszyscy użytkownicy którym zezwolisz na przydzielany statycznie adres IP powinni być wymienieni w pliku /etc/diphosts. Jeli chcesz aby uzytkownicy łączący się na pewien port mieli przydzielane numery w sposób dynamiczny musisz umieścić wpis dla wspomnianego portu i usunąć wszystkie wpisy indywidualnych użytkowników. Upewnij się aby skonfigurować co najmniej jeden wpis dla każdego z urządzeń tty wykorzystywanego przez twoich użytkowników w celu zapewnienia im poprawnej konfiguracji niezależnie od modemu z którym się połączą.
Kiedy użytkownik się loguje, widzi standardową zachętę do podania swojego identyfikatora SLIP i hasła. Jeli po wprowadzeniu żądanych informacji zostanie zweryfikowany poprawnie, nie zobaczy żadnych specjalnych komunikatów. Powinien wtedy przełączyć się po swojej stronie w tryb SLIP i mieć poprawne połączenie według konfiguracji zapisanej w pliku diphosts.
Matt Dillon <dillon@apollo.west.oic.com>
stworzył pakiet,
który służy nie tylko do inicjowania połączenia z serwerem, ale równie dobrze
może obsługiwać połączenia przychodzące. Jest to kombinacja małych programów i
skryptów zarządzających dla ciebie połączeniem. Musisz mieć zainstalowaną
powłokę tcsh ponieważ przynajmniej jeden ze skryptów jej wymaga. Matt
dostarcza binarną kopię programu expect, ponieważ wykorzystuje go inny
ze skryptów. Prawdopodobnie zmuszenie pakietu do pracy będzie od ciebie wymagało
trochę doświadczenia w obchodzeniu się z programem expect, lecz niech
cię to nie odstręcza.
Matt napisał dobry zestaw instrukcji instalacyjnych zgromadzonych w pliku README. Nie będę ich tutaj powtarzał.
Pakiet dSLIP możesz pobrać bezpośrednio ze źródła: apollo.west.oic.com
/pub/linux/dillon_src/dSLIP203.tgz
lub z:
sunsite.unc.edu
/pub/Linux/system/Network/serial/dSLIP203.tgz
Przeczytaj plik README
i dodaj odpowiednie pozycje do pliku
/etc/passwd
i /etc/group
zanim wydasz polecenie
make install
.
Urządzenia STRIP noszą nazwy `st0
', `st1
', itd.
Opcje konfiguracji jądra:
Network device support --->
[*] Network device support
....
[*] Radio network interfaces
< > STRIP (Metricom starmode radio IP)
STRIP to protokół zaprojektowany specjalnie dla radiowych modemów Metricom na uniwersystecie w Stanford w ramach projektu badawczego noszącego nazwę MosquitoNet Project. Zajdziesz tam mnóstwo ciekawych informacji, nawet jeśli nie jesteś bezpośrednio zainteresowany projektem.
Modemy Metricom przyłącza się przez port szeregowy komputera, posiadają szerokie spektrum technologiczne i są zdolne do pracy z prędkością zbliżoną do 100kbps. Informacje na temat samych modemów Metricom jest dostępna tutaj: Metricom Web Server.
W chwili obecnej standardowe narządzia sieciowe nie obsługują sterownika STRIP. Musisz zdobyć specjalistyczne narzędzia dostępne na serwerze www projektu MosquitoNet. Szczegóły na temat niezbędnego oprogramowania znajdziesz tutaj: MosquitoNet STRIP Page.
Konfiguracja sieci pracujących ze sterownikiem STRIP polega na wykorzystaniu
zmodyfikowanego programu slattach, które ustawia tryb pracy linii
szeregowej na STRIP, a następnie na konfiguracji powstałego urządzenia
`st[0-9]
' w taki sam sposób, jak gdyby była to zwykła karta
ethernetowa. Z jednym wyjątkiem, z przyczyn technicznych STRIP nie obsługuje
protokołu ARP, dlatego musisz ręcznie skonfigurować tabelę ARP dla wszystkich
komputerów w twojej podsieci. Co nie powinno sprawić większego kłopotu.
Urządzenia Token Ring noszą nazwy `tr0
', `tr1
' itd.
Token Ring jest standardem sieci LAN opracowanym przez IBM, który unika kolizji
wprowadzając mechanizm pozwalający na transmisję danych w jednej chwili tylko
jednej stacji przyłączonej do sieci. "Token" w danej chwili może należeć tylko
do jednej stacji i to właśnie ta stacja, która go posiada jest uprawniona do
nadawania informacji. Po zakończonej transmisji przekazuje "Token" następnej
stacji. Przechodzi kolejno pomiędzy wszystkimi aktywnymi końcówkami sieci. Stąd
nazwa "Token Ring".
Opcje konfiguracji jądra:
Network device support --->
[*] Network device support
....
[*] Token Ring driver support
< > IBM Tropic chipset based adaptor support
Konfiguracja urządzeń token ring jest identyczna, jak konfiguracja urządzeń ethernetowych, z dokładnością do nazwy urządzenia podlegającego konfiguracji.
X.25 to obwodowy protokół komutacji pakietów zdefiniwany w
C.C.I.T.T.
(organizacji standaryzacyjnej uznawanej przez firmy
telekomunikacyjne większości krajów świata. Cały czas trwają pracę nad
implementacją X25 u LAPB i najnowsze wersje jądra 2.1.*
zawierają
kod odzwierciedlający aktualny stan prac.
Jonathon Naylor jsn@cs.nott.ac.uk
przewodzi grupie rozwijającej
to oprogramowanie i opiekuje się listą utworzoną do dyskusji na tematy dotyczące
X25 i Linuksa. Aby się na nią zapisać należy na adres
majordomo@vger.rutgers.edu
napisać list o treści "subscribe
linux-x25
".
Wczesne wersje narzędzi konfiguracyjnych można uzyskac z archiwum ftp ftp://ftp.cs.nott.ac.uk/jsn/.
Urządzenia Wavelan noszą nazwy `eth0
', `eth1
', itd.
Opcje kompilacji jądra:
Network device support --->
[*] Network device support
....
[*] Radio network interfaces
....
<*> WaveLAN support
Karty WaveLan to szerokopasmowe sieciowe karty bezprzewodowe. Są bardzo podobne do kart ethernetowych i praktycznie w większości są konfigurowane w taki sam sposób.
Więcej informacji na temat kart WaveLan znajdziesz na stronie Wavelan.com.