Leased Line Mini-HOWTO

Autor: Rob van der Putten rob@sput.webster.nl
v1.4, 5 Lipca 1998
Wersja polska: Leszek Urbañski tygrys@fidonet.org.pl
v1.0, 6 Sierpnia 1998


To HOWTO opisuje połączenie Linuxa do linii dzierżawionej. Ten dokument został napisany w standardzie ISO-8859-2. Oryginał tego dokumentu znajduje siê pod adresem http://www.sput.webster.nl/~rob/leased-line.html.

1. Wprowadzenie

1.1 Co to jest linia dzierżawiona

Linią dzierżawioną jest każde stałe połączenie dwóch punktów (point-to-point, dalej bêdê nazywał je p-t-p, nie myliæ z ppp - przyp. tłum.), dzierżawione od firmy telekomunikacyjnej lub innej organizacji. Linia dzierżawiona składa siê z przewodów, takich jak skrêtka, kabel koncentryczny lub światłowód; może też zawieraæ wszystkie rodzaje dodatkowego osprzêtu, jak rdzenie, transformatory, wzmacniacze i regeneratory.

Ten dokument opisuje

Konfiguracjê modemu i pppd do użycia dwużyłowej linii dzierżawionej na skrêtce.
Ten dokument NIE opisuje
SLIP, pobierania i instalowania pppd, synchronicznego przesyłania danych i modemów pasma podstawowego (baseband)

1.2 Założenia

Zakładam, że masz już działającego pppd. Potrzebny bêdzie też Minicom lub podobny program do konfiguracji modemów.

2. Modem

Linia dzierżawiona nie jest podłączona do centrali telefonicznej, nie zapewnia wiêc napiêcia stałego, sygnału wybierania lub zajêtości, ani dzwonka. Znaczy to, że twoje modemy bêdą musiały same poradziæ sobie z tą sytuacją.

Powinieneś mieæ dwa identyczne zewnêtrzne modemy obsługujące liniê dzierżawioną i ,,głuchy'' tryb pracy. Upewnij siê, że twoje modemy naprawdê to potrafią! Twój modem powinien posiadaæ też odpowiednią dokumentacjê. Potrzebne bêdą też:

2.1 Konfiguracja modemu

Ogólna uwaga o konfiguracji modemu i liniach inicjalizujących:
Konfiguruj swoje oprogramowanie modemowe takie jak minicom lub (m)getty tak, żeby używało najwyższej możliwej prêdkości - 57600 bodów dla 14.400 i 115200 bodów dla 28.800 lub szybszych.
Wiele ludzi używa bardzo długich i skomplikowanych linii inicjalizujących, czêsto zaczynających siê AT&F i zawierających mnóstwo komend specyficznych dla danego modemu. Jest to niepotrzebne. Wiêkszośæ programów używa takich samych ustawieñ modemu, a wiêc czemu nie zapisaæ tych ustawieñ do nieulotnej pamiêci modemu i używaæ ,,ATZ'' do inicjalizacji modemu we wszystkich programach? W ten sposób można zamieniæ lub rozszerzyæ modemy bez rekonfiguracji oprogramowania.

Wiêkszośæ programów wymaga nastêpujących ustawieñ:

Sprawdź te ustawienia za pomocą AT&V lub AT&I[numer] (przeczytaj dokumentacjê modemu).

Ustawienia te nie są identyczne do profilu firmowego (&F), a wiêc używanie linii inicjalizującej z AT&F nie jest dobrym pomysłem. Dobrą rzeczą jest użycie AT&F tylko wtedy, gdy masz powód żeby sądziæ, że ustawienia zapisane w nieulotnej pamiêci modemu są bardzo niepoprawne. Jeżeli sądzisz, że znalazłeś odpowiednie ustawienia dla twoich modemów, zapisz je w pamiêci nieulotnej komendą AT&W i przetestuj dokładnie protokołem Z-Modem zarówno dla plików tekstowych ASCII, jak i binarnych. Konfiguruj twoje modemy do linii dzierżawionej tylko jeżeli masz pewnośæ, że te ustawienia działają idealnie.

Dowiedz siê, jak przestawiæ twój modem w ,,głuchy'' tryb, oraz, co ważniejsze, w tryb linii dzierżawionej - modem może byæ rekonfigurowany tylko wtedy, gdy nie znajduje siê w ,,głuchym'' trybie. Upewnij siê, czy napewno ustawiłeś modemy na najwiêkszą możliwą prêdkośæ. Kiedy modem wejdzie w ,,głuchy'' tryb pracy, bêdzie ignorował wszystkie komendy ,,AT'' - z tego powodu nie bêdzie można ustawiæ jego szybkości do tej ustawionej dla portu szeregowego; bêdzie używał prêdkości skonfigurowanej komendami AT (prêdkośæ ta jest zapisana w rejestrze S komendą AT&W).

Teraz skonfiguruj modemy w nastêpujący sposób:

Zapisz konfiguracjê do nieulotnej pamiêci (&W).

2.2 Test

Podłącz modemy do dwóch komputerów używając przewodów RS232 i połącz ze sobą modemy za pomocą kabla RJ11. Użyj programu takiego jak Minicom (na Linuxa), procom albo telix (DOS) na obu komputerach, żeby sprawdziæ modemy. Powinieneś zobaczyæ tekst pisany na jednym komputerze w drugim terminalu i odwrotnie. Jeżli widzisz śmieci, sprawdź prêdkośæ portu i inne ustawienia. Teraz odłącz i podłącz ponownie przewód RJ11. Poczekaj, aż połączenie ponownie siê ustali. Odłącz i podłącz ponownie kable RS232, wyłącz i włącz modemy, uruchom ponownie minicoma. Modemy powinny zawsze połączyæ siê ponownie na najwyższej możliwej prêdkości (niektóre modemy mają diody pokazujące prêdkośæ). Sprawdź, czy modemy naprawdê ignorują znak ESC (+++). Jeżeli bêdzie to potrzebne, wyłącz znak ESC.

Jeżeli to wszystko działa, możesz rekonfigurowaæ modemy: wyłącz dźwiêk w zdalnym modemie (M0) i ustaw niski poziom głośności w modemie lokalnym (L1).

2.3 Przykłady

Hi-Tech

Lokalnie:

ATL1&C1&D3&L2%D1&W&W1
Zdalnie:
ATM0&C1&D3&L2%D1S0=1&W&W1

Tron DF

Znak ESC powinien byæ wyłączony za pomocą komendy S2 > 127;

Lokalnie:

ATL1&L1Q1&C1&D3S2=171\D1&W
Zdalnie:
ATM0&L2Q1&C1&D3S0=1S2=171\D1&W

US Robotics Courier V-Everything

Poniższa sekcja jest oparta na informacjach dostarczonych przez Rolf'a Raar'a.
USR Sportster i USR Courier-I nie obsługują linii dzierżawionych. Potrzebna bêdzie wersja Courier V-everything. Na serwerze USR znajduje siê strona ,,wyjaśniająca'' jak skonfigurowaæ Courier'a do linii dzierżawionej. Jednakże jeżeli bêdziesz postêpował zgodnie z tymi wskazówkami, skoñczysz z modemem kompletnie ,,pozbawionym rozumu'', który nie bêdzie mógł byæ kontrolowany lub nadzorowany przez pppd.

USR Courier może byæ konfigurowany przez przełączniki DIP, jednakże najpierw musisz podaæ mu liniê inicjalizacyjną. Po pierwsze, upewnij siê, że używa prawidłowego profilu fabrycznego. Inaczej niż wiêkszośæ innych modemów ma ich trzy: &F0, &F1, &F2. Standardowy, którego powinieneś używaæ, to &F1. Uwaga: jeżeli wyślesz mu AT&F, załaduje &F0! Dla resetowania przy DTR, ustaw bit 0 rejestru S13. Znaczy to, że musisz ustawiæ S13 na 1. Nastêpnie musisz przestawiæ go w tryb linii dzierżawionej za pomocą &L1: ATS13=1&L1&W
Przełączniki dip powinny byæ w domyślnych ustawieniach, wyjątkiem są:

3 - WYŁ - Wyłączyæ kody wynikowe.

4 - ZAŁ - Wyłączyæ komendy offline

5 - ZAŁ dla lokalnego, WYŁ dla zdalnego

8 - WYŁ - ,,Głuchy'' tryb pracy

3. PPPD

Potrzebny ci bêdzie pppd (Point to Point Protocol Daemon) i odpowiednia wiedza o jego działaniu. Przeczytaj odpowiednie RFC i Linux PPP HOWTO, jeżeli jest to potrzebne. Ponieważ nie bêdziesz używał procedury logowania, nie musisz używaæ (m)getty ani (fałszywego) użytkownika skojarzonego z pppd kontrolującym połączenie. Nie bêdziesz musiał wybieraæ numeru, nie bêdą wiêc potrzebne żadne skrypty chat. Obwód modemowy i konfiguracja, którą właśnie wykonałeś jest właściwie kablem null-modem. Znaczy to, że bêdziesz musiał skonfigurowaæ pppd w sposób, w jaki konfigurowałbyś go do kabla null-modem.

Dla dobrego połączenia, twoje ustawienia powinny spełniaæ nastêpujące wymogi:

Zakładam, że modem jest podłączony do COM2, lokalny adres IP to ,,Loc_IP'', a zdalny to ,,Rem_Ip''. Chcemy użyæ 576 jako nasze MTU. /etc/ppp/options.ttyS1 powinno wyglądaæ tak:

crtscts
mru 576
mtu 576
passive
Loc_Ip:Rem_Ip
-chap
modem
-pap
persist

A wiêc, jeżeli system lokalny to 192.168.1.1, a system zdalny to 10.1.1.1, /etc/ppp/options.ttyS1 powinien wyglądaæ nastêpująco:

crtscts
mru 576
mtu 576
passive
192.168.1.1:10.1.1.1
-chap
modem
-pap
persist

options.ttyS1 na zdalnym systemie powinien wyglądaæ tak:

crtscts
mru 576
mtu 576
passive 10.1.1.1:192.168.1.1
-chap
modem
-pap
persist

Opcja passive limituje numer (ponownych) połączeñ. Opcja persist bêdzie próbowała trzymaæ pppd uruchomionym w razie rozłączenia, lub jeżeli nie bêdzie mógł odrazu siê połączyæ. Jeżeli telnetujesz siê dużo podczas transferu plików (FTP lub przeglądanie WWW), możesz użyæ mniejszego MTU i MRU, takiego jak 296. System zdalny bêdzie wtedy czujniejszy. Jeżeli nie bêdziesz telnetował siê podczas FTP, może ustawiæ MTU i MRU na 1500.

3.1 Skrypty

Uruchamianie pppd i utrzymywanie go w działaniu

Skrypt /usr/local/sbin/PRem_Host.sh poniżej startuje pppd. Musisz uruchomiæ go po skonfigurowaniu portów szeregowych (zamieñ Rem_Host na nazwê zdalnego systemu).

#!/bin/bash
# Opcjonalnie sleep
#/usr/bin/sleep 30
( /usr/sbin/pppd /dev/ttyS1 115200 ) &

Może on byæ uruchamiany ze skryptu konfigurującego kartê sieciową (/etc/init.d/network w systemie Debian), w tym przypadku musisz odkomentowaæ sleep, żeby byæ pewnym, że porty com zostały skonfigurowane jako pierwsze. Jeżeli używasz setserial, możesz uruchomiæ go z tego skryptu. Innym sposobem jest uruchomienie go z rc.local. W systemach Debian istnieje katalog /etc/rc.boot/. Według Rolf'a Raar'a, skrypty w tym katalogu są uruchamiane w kolejności alfabetycznej. Skrypt setserial nazywa siê 0setserial. Jeżeli wywołasz swój skrypt z pliku o nazwie 2linie-dzierżawione, bêdzie wykonany po 0setserial.

Chociaż opcja persist czyni to powierzchownym, pppd może byæ też restartowany przez ip-down:

#! /bin/bash
case $s in
     /dev/ttyS1)
          /usr/bin/sleep 30
          /usr/local/sbin/PRem_Host.sh &
          ;;
esac

Jeżeli pppd zginie, powinien byæ restartowany opcją w skrypcie ip-up (opcjonalnie). Jeżeli to siê nie dzieje, skrypt /usr/local/sbin/test-Rem_Host-ppp robi to za ciebie. Ten skrypt sprawdza, czy zdalny interfejs istnieje - jeżeli nie, spróbuje uruchomiæ pppd:


#!/bin/bash
if ! ( /sbin/ifconfig | grep Rem_Ip > /dev/null )
then
     # PPP nie żyje
     logger "Rem_Host PPP nie żyje! ; uruchomiony ponownie"
     /usr/local/sbin/PRem_Host.sh &
fi

Nastêpująca linia w crontab uruchamia powyższy skrypt co 5 minut. Możesz uruchamiaæ skrypt czêsciej, ale ja nie uruchamiałbym go czêściej niż co dwie minuty.

*/5 * * * *        /usr/local/sbin/test-Rem_Host-ppp

Możesz edytowaæ crontab poleceniem ,,crontab -e''. Zrestartuje on crona po edycji. Używa edytora podanego w zmiennej środowiskowej ,,EDITOR'', która może byæ ustawiona przez /etc/profile lub  /.profile (export EDITOR=Twoj_Ulubiony_Edytor).

Niektórzy ludzie uruchamiają pppd z /etc/inittab, ale ja nigdy tego nie testowałem.

Ustawianie routingu

Domyślny routing może zostaæ ustawiony opcją defaultroute, albo przez skrypt /etc/ppp/ip-up:

#! /bin/bash
case $2 in
     /dev/ttyS1)
          /sbin/route add -net 0.0.0.0 gw Rem_Ip netmask 0.0.0.0
          ;;
esac

Ip-up może byæ też używany do synchronizacji zegara używając netdate.

Oczywiście routing ustawiony w ip-up nie musi byæ domyślnym routingiem. Twoj skrypt ip-up ustawia routing do zdalnej sieci, kiedy ip-up w zdalnym systemie ustawia trasê do twojej sieci. Jeżeli jest nią 192.168.1.0, a interfejsem ppp jest 192.168.1.1, skrypt ip-up na zdalnej maszynie powinien wyglądaæ podobnie do tego:

#!/bin/bash
case $2 in
   /dev/ttyS1)
   /sbin/route add -net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0
   ;;
esac

Bity ,,case $2'' i ,,/dev/ttyS1'' są tam na wypadek gdybyś używał wiêcej niż jednego połączenia ppp. Ip-up bêdzie uruchamiany za każdym razem kiedy pojawi siê połączenie, ale tylko czêśæ pomiêdzy ,,/dev/ttySx'' i ,,;;'' zostanie wykonana, ustawiając poprawny routing dla poprawnego ttyS. Możesz dowiedzieæ siê wiêcej o routingu z sekcji o routingu NET-3-HOWTO.

3.2 Testowanie

Przetestuj to wszystko tak jak modemy. Jeżeli działa, wsiądź na rower i przewieź modem na drugą stronê połączenia.

4. Od tłumacza

Jeżeli znajdziesz jakieś błêdy, daj mi znaæ.