Openvpn wolna transmisja – pomaga zwiększenie bufora
Zestawiłem tunel pomiędzy punktami oddalonymi o kilkanaście milisekund, mimo że pomiędzy nimi transfer wynosi kilkadziesiąt Mbps, to w tunelu transfer dochodzi do 4Mbps i nie chce przesyłać więcej.
Okazuje się, że wypełnia się całkowicie bufor podczas wysyłania i zanim kolejna porcja danych zostanie wysłana openvpn oczekuje na potwiedzenie. Aby zwiększyć przepustowość tunelu należy zwiększyć wielkość bufora. Odpowiedzialne za to są następujące parametry:
openvpn –sndbuf 655360 -rcvbuf 655360
(standardowo bufor ma 65536 bajtów, wielkość należy odbrać doświadczalnie, u mnie zwiększenie dziesięciokrotne pomogło).
W debianie argument wywołania można dodać w pliku /etc/default/openvpn dodając na końcu:
OPTARGS=”–sndbuf 655360 –rcvbuf 655360″
Konfiguracja połączenia z Internetem przez sieć komórkową
Do połączenia z Internetem przez sieć komórkową potrzebny jest demon pppd.
Uruchamiamy go np. tak:
/usr/sbin/pppd /dev/ttyUSB0 921600 connect „chat -V -f /etc/ppp/chat.plusgsm” crtscts modem -detach noccp noauth defaultroute debug ipcp-accept-remote ipcp-accept-local noipdefault lcp-echo-failure 1000
gdzie plik /etc/ppp/chat.plusgsm zawiera komendy AT wysyłane do modemu:
” ATZ
OK AT+CGDCONT=1,”IP”,”www.plusgsm.pl”
OK „ATD*99***1#”
CONNECT ”
Jeśli chcemy aby łącze było podnoszone automatycznie po rozłączeniu możemy wywołanie skryptu z wywołaniem pppd umieścić w /etc/inittab, dodając np. na końcu linię:
PP:123456:respawn:/usr/local/bin/gprs.plus.usb
Łącze zapasowe – automatyczna zmiana bramy domyślnej
Najprostszą metodą sprawdzania, czy działa łącze, w przypadku braku obsługi protokołu dynamicznego routingu, jest pingowanie hosta i podejmowanie decyzji w zależności od wyników tego testu.
Prosty skrypt może wyglądać tak:
