Opis konfiguracji SDI w Debianie.
Aby skonfigurować SDI w Debianie potrzebujemy demona pppd. można go zainstalować poprzez apt-get install ppp. po zainstalowaniu demona ppp przechodzimy do konfiguracji. Pliki konfiguracyjne leżą w /etc/ppp na początku edytujemy plik /etc/ppp/pap-secrets. Format tego pliku jest następujący:
login * hasło IP
następnie edytujemy plik /etc/ppp/ppp_on_boot (gdyż chcemy aby nasze SDI startowało przy starcie komputera). W pliku tym powinniśmy mieć:
###!/bin/sh
#Lokalizacja demona pppd
PPPD=/usr/sbin/pppd
#Domyślny provider z którym się łączymy
$PPPD call sdi
Teraz pozostał nam ostatni plik musimy go utworzyć touch /etc/ppp/peers/sdi (nazwa musi być taka sama jak domyślny provider w poprzednim pliku) Plik /etc/ppp/peers/sdi wygląda następująco:
#login jest nazwa jaka dostaliśmy od TPSA
user login
#Używaj linii sterowania modemem. Opcja ta jest domyślna.
modem
#Podaje, że pppd powinien stworzyć plik blokujący w stylu UUCP, aby zapewnić ekskluzywność dostępu do urządzenia szeregowego.
lock
#Używaj sprzętowego sterowania przepływem (tj. RTS/CTS) do sterowania przepływem danych na porcie szeregowym.
crtscts
#Ustaw szybkość przesyłu na (liczba dziesiętna).
115200
#Dodaj domyślną trasę do systemowych tablic trasowania.
defaultroute
#port na którym podłączyliśmy SDI COM1=/dev/ttyS0, COM2=/dev/ttyS1
/dev/ttyS0
#Nie wymagaj od peera uwierzytelniania. Opcja ta jest uprzywilejowana.
noauth
#Nie kończ działania po zakończeniu połączenia. Zamiast tego spróbuj wznowić połączenie.
persist
jeśli wszystko zrobiliśmy poprawnie to po wydaniu polecenia /etc/init.d/ppp start powinniśmy połączyć się z Internetem. żeby to sprawdzić wydajemy polecenie ifconfig gdzie powinniśmy zobaczyć nas interfejs ppp0 lub polecenie route które daje nastepujecy wynik:
Kernel IP routing table
Destination |
Gateway |
Genmask |
Flags |
Metric |
Ref |
Use |
Iface |
localnet |
* |
255.255.255.0 |
U |
0 |
0 |
0 |
eth0 |
default |
Nasze IP |
0.0.0.0 |
UG |
0 |
0 |
0 |
ppp0 |
Czasem przy bardzo obciążonych łączach nasze SDI potrafi się rozłączyć w tym celu możemy dodać do naszego scriptu z opcjami /etc/ppp/peers/sdi następujące wpisy:
maxfail 3 - Zakończ po 3ch nie udanych próbach (aby przeciwdziałać zapętlaniu sie pppd)
holdoff 5 - Ile sekund mamy czekać pomiędzy próbami
lcp-echo-interval 10 - Co ile sekund mamy sprawdzać połączenie z providerem
lcp-echo-failure 3 - Po ilu brakach odpowiedzi mamy uznać połączenie za zerwane
Czasem jednak demon wyłącza się i nie bardzo potrafi go nawet opcja persist podniesc spowrotem w tym celu możemy użyć prostego scriptu w bash do sprawdzania tego np. co 1min: pppd_test.sh
#!/bin/sh
RUNNING=0;
if [ -a /var/run/ppp0.pid ]; then RUNNING=1; fi
if [ "$RUNNING" = "1" ]; then
echo `/bin/date` "pppd OK" > /dev/null
else
echo `/bin/date` "pppd DOWN" >> /var/log/ppp.log;
kill -9 `pidof pppd`
/bin/date
sleep 10
/etc/init.d/ppp start
fi
Teraz wystarczy tylko dodać ten plik do crona:
cd /etc/cron.d
touch pppd
i wpisujemy do niego:
*/1 * * * * root /ścieszka_do_scriptu/pppd_test.sh
teraz bedzie on sprawdzał co 1min czy pppd poprawnie działa jeśli nie to bedzie je ponownie uruchamiał.
Pliki :
/etc/ppp/ppp_on_boot - Script aby sdi starowało przy bootowaniu.
/etc/ppp/peers/sdi - Script z opcjami do sdi.
pppd_test.sh - Script sprawdzający połączenie