Podobnie, jak większość systemów UN*X, FreeBSD znakomicie obsługuje sieci TCP/IP. Fakt ten czyni go świetnym rozwiązaniem zarówno dla domu, jak i w roli wysoko wydajnych, stabilnych ruterów oraz serwerów w sieciach lokalnych i rozległych. Atutem systemów z rodziny BSD jest również obsługa wielu urządzeń sieciowych.
Wbrew pozorom, poprawna konfiguracja systemu do pracy w sieci nie jest trudna i sprowadza się do kilku kroków.
Konfiguracja jądra systemuPorty szeregowe w systemie FreeBSD mogą pracować z prędkościami do 115200 bps. Obecność ich sterowników jest wymagana do poprawnej pracy modemów i urządzenia Ericsson HiS.
W standardowym jądrze GENERIC wkompilowane są cztery porty szeregowe
z adresami i przerwaniami, odpowiadającymi portom COM1-4 w systemie
DOS. Aby upewnić się, czy system poprawnie rozpoznał wszystkie porty,
należy wydać polecenie /sbin/dmesg, np:
vodka:venglin:~> dmesg | grep sio sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa sio0: type 16450 sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16450 |
W powyższym przykładzie system odnalazł dwa porty szeregowe i przydzielił
im nazwy: sio0 i sio1.
Jeżeli zaś używane jądro nie posiada wkompilowanej obsługi portów szeregowych, należy ją dodać, dopisując następujące linijki do pliku konfiguracji jądra:
device sio0 at isa? port "IO_COM1" flags 0x10 tty irq 4 device sio1 at isa? port "IO_COM2" tty irq 3 |
Dla większości użytkowników sama obsługa portów szeregowych będzie niewystarczająca, ponieważ będą oni potrzebowali dostępu SLIP/PPP.
Aby skonfigurować interfejs SLIP należy dodać następującą deklarację do pliku konfiguracyjnego jądra:
pseudo-device sl N |
gdzie 'N' jest liczbą interfejsów pracujących jednocześnie.
Konfigurację interfejsu PPP można przeprowadzić w dwojaki sposób, w zależności od tego, czy protokół ma być obsługiwany po stronie jądra, czy użytkownika. Zdecydowanie polecam tę drugą opcję. Należy zacząć od dopisania jednej (lub obu -- w przypadku rozwiązania mieszanego) linijki do pliku konfiguracji jądra:
pseudo-device tun N pseudo-device ppp N |
gdzie 'n' jest liczbą interfejsów, które będą pracować jednocześnie.
Ostatnim etapem jest sprawdzenie, czy istnieją pliki odpowiadające za
dostęp do portów szeregowych i pseudo-urządzenia tunelującego:
/dev/cuaa* i /dev/tun*. W przypadku ich braku,
należy je utworzyć poleceniem MAKEDEV.
W poniższej części opiszę sposób konfiguracji programu
/usr/sbin/ppp, ktory -- moim zdaniem -- jest duzo lepszym
rozwiązaniem niż znany z Linuxa program pppd, głównie ze
względu na ogromne możliwości konfiguracji i monitorowania stanu
połączenia.
Wśród wielu zalet podsystemu PPP, postaram się wymienić te najważniejsze:
|
prosty i wygodny interaktywny interfejs użytkownika z możliwością
zdalnego sterowania
| |
|
ręczne i automatyczne zestawianie połączenia
| |
|
zestawianie połączenia na żądanie
| |
|
obsługa połączenia zwrotnego (ang. callback)
| |
|
maskowanie adresów (NAT)
| |
|
praca po stronie serwera/routera PPP
| |
|
obsługa protokołów autentyfikacji PAP/CHAP/RADIUS
| |
|
obsługa wielu połączeń w jednej podsieci (proxy arp)
| |
|
podstawowe funkcje filtrowania pakietów
| |
|
obsługa tuneli PPP w TCP/UDP
| |
|
obsługa kompresji Predictor-1/DEFLATE
| |
| obsługa wielu połączeń widzianych jako jeden logiczny kanał (ang. multilink) |
Najważniejszym krokiem w konfiguracji stosu PPP jest edycja pliku
/etc/ppp/ppp.conf. Znajdują się w nim deklaracje
poszczególnych połączeń oraz skrypty używane do łączenia z odległym
routerem.
Pierwszym parametrem wymaganym dla poprawnej pracy stosu PPP jest
nazwa portu szeregowego oraz jego parametry transmisji. Można je zmienić przy
pomocy komendy set, np:
default: set device /dev/cuaa1 set speed 115200 set ctsrts on set parity none tpsa: set phone 0202122 |
Powyższe ustawienia całkowicie wystarczą do łączenia się w trybie ręcznym,
przy pomocy polecenia term w trybie interaktywnym. Umożliwia
ono bezpośrednią komunikację z modemem oraz ręczne przejście w tryb
pakietowy (komenda: ~p).
Połączenia w trybie 'na żądanie' (ang. dial on demand) wymagają, aby w pliku konfiguracyjnym został zdefiniowany skrypt połączeniowy. Może mieć on następującą postać:
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK AT&FX4&C1&D2 OK \\dATDT\\T TIMEOUT 40 CONNECT" set login "ABORT NO\\sCARRIER TIMEOUT 5 sername:--sername: ppp word: ppp" |
Plik konfiguracyjny dla użytkowników urządzenia Ericsson HiS jest dość podobny do przedstawionego powyżej, jedyną róznicą jest 'sztywne' ustawienie adresów IP oraz autentyfikacji PAP/CHAP:
default: set device /dev/cuaa1 set speed 115200 sdi: set ifaddr <i>lokalny-adres-IP</i> <i>adres-IP-zdalnego-rutera</i> set timeout 0 set dial "ATD OK" set login set authname <i>użytkownik</i> set authkey <i>hasło</i> set phone 0 |
Stos PPP może pracować w następujących trybach:
automatyczny (-auto) - używany do połączeń na żądanie, po
uruchomieniu otwierany jest i konfigurowany interfejs tunelowy, po czym
program rozpoczyna pracę w tle; połączenie jest zestawiane po wykryciu
ruchu wychodzącego.
| |
w tle (-background) - połączenie jest zestawiane natychmiast
po uruchomieniu, program rozpoczyna pracę w tle.
| |
bezpośredni (-direct) - kanał komunikacyjny otwierany jest na
standardowym wyjściu/wejściu; używany głównie po stronie serwera w kooperacji
z demonem getty lub mgetty.
| |
dedykowany (-dedicated) - urządzenie jest cały czas otwarte,
nie są używane żadne skrypty; przeznaczony tylko i wyłącznie dla łącz
dzierżawionych (wykluczone działanie z urządzeniem HiS).
| |
| interaktywny (domyślny) - po uruchomieniu czeka na polecenia od użytkownika. |
Program /usr/sbin/ppp jest najczęściej uruchamiany w trybie
interaktywnym, co umożliwia zestawianie połączeń zarówno w trybie ręcznym
(term), jak i automatycznym (open,
dial).
W przypadku łącz stałych lub zestawianych na żądanie (ang. dial on
demand) o wiele wygodniejsze okazuje się uruchamianie stosu PPP w
tle lub z pliku konfiguracji systemu. Można to uczynić dopisując następujące
linijki do pliku /etc/rc.conf:
ppp_enable="YES" ppp_mode="tryb pracy" ppp_profile="nazwa łącza zdefiniowana w ppp.conf" |
Jeżeli zachodzi potrzeba monitorowania łącza zestawionego w tle,
należy zastosować program pppctl, dopisując wcześniej
następujące polecenie do pliku /etc/ppp/ppp.conf:
set server +port hasło |
Stan łącza i stosu PPP może być monitorowany na bierząco w trybie
interaktywnym lub przy pomocy programu pppctl. Służą do tego
następujące polecenia:
show bundle - konfiguracja łącza na poziomie stosu PPP
| |
show compress - statystyki dotyczące kompresji pakietów
| |
show filter - konfiguracja filtra pakietów
| |
show iface - stan interfejsu tunelowego; informacje te można
również uzyskać przy pomocy polecenia ifconfig
| |
show layers - przenoszone protokoły
| |
show link - informacje o konfiguracji połączenia
| |
show log - ilość informacji przekazywanych do demona
syslogd
| |
show physical - niskopoziomowe informacje o stanie łacza
| |
show proto - ilości pakietów wygenerowanych przez
poszczególne protokoły
| |
show ccp - używane protokoły kompresji
| |
show hdlc - statystyki błędów w warstwie ramek HDLC
| |
show ipcp - statystyki protokołu IP
| |
show lcp - statystyki protkołu LCP (negocjacji ustawień
połączenia
| |
show mem - użycie pamięci, ilośc wywołań funkcji
malloc() i free()
| |
show route - tablica rutingu |
W przypadku wystąpienia błedów, stos PPP informuje o tym
administratora, przekazując komunikaty demonowi syslogd.
Przy pomocy polecenia set log można regulować ważność
przekazywanych wiadomości.
Dodatkowe informacje na temat konfiguracji programu
/usr/sbin/ppp można znależć w podręczniku systemowym
(man ppp), a także w Handbook i FAQ, znajdujących się w katalogu
/usr/share/doc.

Wszystkie materiały na mojej stronie dostępne są na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Na tych samych warunkach 2.5 Polska.