PPP-over-Serial

Allikas: Kuutõrvaja

Sissejuhatus

Kui kaks arvutit ühendada null modemi kaabliga järjestikporte (ingl. k. serial port) pidi kokku, siis saab PPP protokolli kasutades tekida seda kanalit kasutades IP ühenduse.

Näiteks Debian GNU/Linux 4.0 ja OpenBSD 4.2 puhul, kus Linuxi pool on nö serveriks, milles käivitatakse pppd programm ennem ning OpenBSD on nö kliendiks, milles käivitatakse ppp programm hiljem.

Esmalt oleks tark veenduda, et kahe arvuti vahel serial link toimib, nt katsetada http://kuutorvaja.eenet.ee/wiki/Serial_konsool palas toodud tegevusi ja veenduda, et saab nö pildi ette. Siis on tõestatud, et arvutites on järjestikpordid töökorras, operatsioonisüsteem oskab neid kasutada ning serial kaabel on samuti sobiv.

PPP ühenduse kasutamise eelduseks on, et järjestikpordid ei ole muul viisil kasutusel, nt ei kuula seal getty või ei kasuta neil minicom ega cu.

Linuxi nn PPP serveri pool

Linux kui serveri poolel on vajalikud sellise sisuga failid, neid kasutatud parameetreid saab jagada nende failide ja käsurea vahel erinevalt

 bash# cat /etc/ppp/options
 lock

ja

 bash# cat /etc/ppp/options.ttyS1
 115200
 xonxoff
 debug
 local
 10.1.0.254:10.1.0.251
 noauth

ning käivitamiseks öelda Linuxis

 bash# pppd /dev/ttyS1 nodetach
 using channel 62
 Using interface ppp0
 Connect: ppp0 <--> /dev/ttyS1
 sent [LCP ConfReq id=0x1 <asyncmap 0xa0000> <magic 0xd6ef1575> <pcomp> <accomp>]
 sent [LCP ConfReq id=0x1 <asyncmap 0xa0000> <magic 0xd6ef1575> <pcomp> <accomp>]
 rcvd [LCP ConfReq id=0x1 <accomp> <pcomp> <asyncmap 0x0> <mru 1500> <magic 0x3ab01f30> <quality lqr 00 00 03 e8>]
 sent [LCP ConfRej id=0x1 <quality lqr 00 00 03 e8>]
 rcvd [LCP ConfAck id=0x1 <asyncmap 0xa0000> <magic 0xd6ef1575> <pcomp> <accomp>]
 rcvd [LCP ConfReq id=0x2 <accomp> <pcomp> <asyncmap 0x0> <mru 1500> <magic 0x3ab01f30>]
 sent [LCP ConfAck id=0x2 <accomp> <pcomp> <asyncmap 0x0> <mru 1500> <magic 0x3ab01f30>]
 sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
 sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 10.1.0.254>]
 rcvd [CCP ConfReq id=0x1 <predictor 1>]
 sent [CCP ConfRej id=0x1 <predictor 1>]
 rcvd [IPCP ConfReq id=0x1 <addr 10.0.1.254> <compress VJ 0f 01>]
 sent [IPCP ConfNak id=0x1 <addr 10.1.0.251>]
 rcvd [CCP ConfRej id=0x1 <deflate(old#) 15> <bsd v1 15>]
 sent [CCP ConfReq id=0x2 <deflate 15>]
 rcvd [IPCP ConfAck id=0x1 <compress VJ 0f 01> <addr 10.1.0.254>]
 rcvd [CCP ConfReq id=0x2]
 sent [CCP ConfAck id=0x2]
 rcvd [IPCP ConfReq id=0x2 <addr 10.1.0.251> <compress VJ 0f 01>]
 sent [IPCP ConfAck id=0x2 <addr 10.1.0.251> <compress VJ 0f 01>]
 local  IP address 10.1.0.254
 remote IP address 10.1.0.251
 Script /etc/ppp/ip-up started (pid 6632)
 rcvd [CCP ConfAck id=0x2 <deflate 15>]
 Deflate (15) receive compression enabled
 Script /etc/ppp/ip-up finished (pid 6632), status = 0x0

tulemusena tekib seade

 bash# ifconfig ppp0
 ppp0      Link encap:Point-to-Point Protocol  
           inet addr:10.1.0.254  P-t-P:10.1.0.251  Mask:255.255.255.255
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
           RX packets:9 errors:0 dropped:0 overruns:0 frame:0
           TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:3 
           RX bytes:245 (245.0 b)  TX bytes:243 (243.0 b)

OpenBSD nn kliendi pool ppp tarkvaraga

OpenBSD kui kliendi poolel on kaks võimalust ühenduda Linuxi serveri poole vastu, kas ppp või pppd tarkvara abil. Igaljuhul tuleks ühenduda ennem kui Linuxi timeouti saab, seda saab reguleerida, aga võiks arvestada kümnekonna sekundiga.

ppp puhul tuleb omada faili /etc/ppp/ppp.conf sisuga

 default:
  set device /dev/cua00
  set speed 115200
 
 direct-client:
  set timeout 900
  set lqrperiod 10
  disable ipv6cp
  disable deflate
  enable lqr
  accept lqr

Käivitamiseks tuleb öelda

 # ppp -foreground direct-client 
 Working in foreground mode
 Using interface: tun0

ja tekib seade

 # ifconfig tun0
 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
       groups: tun
       inet 10.1.0.251 --> 10.1.0.254 netmask 0xffffffff

Seejärel peaks saama põhimõtteliselt üle selle lingi teist poolt pingida ja kasutada nagu tavalist võrgus olevat arvutit, kusjuures rakenduvad paketifiltri reeglid samuti. Tööolukorras ei ole tõenäoliselt vajadust debugimiseks ning nodetach on samuti liigne.

OpenBSD nn kliendi pool pppd tarkvaraga

Praktiliselt sama tulemuse saavutamiseks pppd tarkvara abil tuleb omada faili /etc/ppp/options sisuga

 lock
 debug
 115200
 xonxoff
 local
 noauth

ja öelda

 # pppd /dev/cua00 nodetach
 (vt /var/log/daemon.log)

Kusjuures tekib seade

 # ifconfig ppp0   
 ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
       groups: ppp
       inet 10.1.0.251 --> 10.1.0.254 netmask 0xffffff00