Połącznie TCP/IP i kompresja
Adam Jurkiewicz
a.jurkiewicz w herc.com.pl
Pią, 2 Kwi 2004, 10:39:53 CEST
Dnia czwartek 01 kwiecień 2004 17:03, Andrzej Zawadzki napisał:
> Witam.
> Czy jest możliwość w połączeniu point-to-point permanentna kompresja
> pakietów (coś jak w PPP)?
Oto coś, co dostałem od znajomka - autorstwa Sergiusza
| Sergiusz Rozanski
| e-mail serek w jola.from.pl
Mam nadzieję, że się nie obrazi, że przytaczam tu jego info jako pomoc dla
innych.
===[tu zaczyna sie cytowany artykuł] ====
isdn_raw.txt
Aby wykonac polacznie na rawip trzeba spelnic kilka warunkow:
1. stale ip
2. staly nr telefonu
3. wspolpraca z providerem
Takie polaczenie jest mozliwe z tego co wiem tylko jako linux-linux,
dlatego niewielu dostawcow sie na nie decyduje. Jest ono idealne w modnych
ostatnio centreksach
Co mamy w zamian:
1. Prosta konfiguracja
2. Automatyczne dodawanie kanalow B
3. Odchudzone jadro
4. Brak dodatkowych procesow w systemie
5. Blyskawiczny connect - brak handshejkingu
6. Security wg. identyfikacji numery telefonu
7. Proste sterowanie
Co tracimy:
1. Kompresje
Jak to zrobic:
1. Kompilujemy jadro jak dla ISDN tylko bez ppp, kompresorow itp.
tylko sama karta isdn
2. Ladujemy karte - modprobe typ, protocol irq, io i _koniecznie_ id !
Jesli nie podamy id to nie skonfigurujemy lacza (u mnie jest to id=Hisx)
3. Karta musi sie prawidlowo zainstalowac i uruchomic
4. Instalujemy isdn4linux, a na malych dyskach mozemy je odrazu wywalic.
Zostawiamy tylko 1 plik isdnctrl i urzadzenia w /dev/
5. Piszemy plik w /etc/init.d po obu stronach prawie identyczny:
file: isdnstart
---------------------------------------------------------
#!/bin/sh
isdnctrl reset force
#
isdnctrl verbose 0
#
isdnctrl addif ippp0
isdnctrl bind ippp0 Hisx,0
isdnctrl busreject Hisx,0 off
isdnctrl addphone ippp0 in <nr telefonu zdalnego>
isdnctrl addphone ippp0 out <nr telefonu zdalnego>
isdnctrl eaz ippp0 <lokalny nr telefonu lub 4 ostatnie cyfry trzeba probowac>
isdnctrl
isdnctrl huptimeout ippp0 300
isdnctrl ihup ippp0 off
isdnctrl chargehup ippp0 off
isdnctrl secure ippp0 off
isdnctrl callback ippp0 off
isdnctrl encap ippp0 rawip
isdnctrl l2_prot ippp0 hdlc
isdnctrl l3_prot ippp0 trans
isdnctrl sdelay ippp0 10
isdnctrl trigger ippp0 4000
isdnctrl addslave ippp0 ippp1
isdnctrl bind ippp1 Hisx,1
isdnctrl busreject Hisx,1 off
isdnctrl addphone ippp1 out <zdalny>
isdnctrl addphone ippp1 in <zdalny>
isdnctrl eaz ippp1 <lokalny>
isdnctrl huptimeout ippp1 300
isdnctrl ihup ippp1 off
isdnctrl chargehup ippp1 off
isdnctrl secure ippp1 off
isdnctrl callback ippp1 off
isdnctrl encap ippp1 rawip
isdnctrl l2_prot ippp1 hdlc
isdnctrl l3_prot ippp1 trans
isdnctrl sdelay ippp1 1
isdnctrl trigger ippp1 4000
ifconfig ippp0 <lokalne ip> pointopoint <zdalne ip>
# linia ponizej tylko na koncu lacza u providera zaremowac
route add default gw <zdalny ip> ippp0
------------------------------------------------------
potem robimy link w katalogu /etc/rcS.d o nazwie S99isdn do tego pliku i
dajemy mu prawa: 700 root root
Po uruchomieniu tych plikow wystarczy 1 ping w obojetnie ktora strone i
komputery sie polacza. Jesli bandwith wzrosnie powyzej 4000cps polaczy sie
2 kanal. Jesli lacze nie bedzie wykozystywane to polaczenia sie po kilku
minutach pozamykaja.
Lacze zestwia ten komputer ktory ma cokolwiek do nadania. Polaczenie
zastawiane jest w ulamku sekundy takze nie ma znaczenia czy jestesmy
polaczeni na stale czy nie.
Sterowanie reczne:
isdnctrl system off - komputery sie rozlaczaja
isdnctrl system on - zezwala na zestawianie polaczeni
Kontrola transmisji:
imon - stan lacza 'ncurses'
imontty - terminal
isdnctrl verbose 4 - w logu 'kernel' mamy ilosc wyslanych bajtow w ciagu
sekundy z podzialem na interface (smieci w logu takze wlaczac tylko dla
testow). Wylaczenie to 'isdnctrl verbose 0' oczywiscie.
Zauwarzone bledy:
Czasami zdarza sie ze po rozlaczeniu drugiego kanalu przez pierwszy
interface nie leci nic mimo fizycznego polaczenia. Co dziwne nie jest
to regula tylko przypadek!
Pomaga na to skrypcik w cronie:
---------------------------------------------------------------
if ping -c 1 <zdalny ip> >/dev/null 2>/dev/null
then
date ;
else
date ;
echo "error: hangup pppd"
/usr/sbin/isdnctrl hangup ippp0
fi
----------------------------------------------------------------
Robie nim przy okazji log lacza
Szybkosc transmisji (glownie ftp):
1B bezposrednio host-w-host: 6kcps
2B bezposrednio host-w-host: 10kcps
te 2 wyniki zmierzylem, choc moga byc zaklucone (u mnie normalnie chodzi
na tym poczta named www itp.)
Polska srednio 7-9kcps.
Swiat heheheh roznie :)))
====[koniec]===
--
Adam Jurkiewicz : Inżynier Serwisu Linux
HERC : Linuksowe Systemy Sprzedaży Detalicznej
[ http://www.linux.herc.com.pl ]
Numer Gadu-Gadu : 302315
Więcej informacji o liście dyskusyjnej pld-users-pl