Skåne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg
 

Lidt links og en kort beskrivelse af diald og dctrl

Indholdsfortegnelse:

Efterhånden skulle denne side komme til at indeholde lidt opsætningeksempler om diald.

I første omgang er der en kort beskrivelse af hvad diald kan anvendes til, samt lidt snapshots af dctrl, som er en grafisk frontend til styring af diald.

top Hvad er Diald?

Diald kan anvendes til automatisk at lukke/åbne for internetforbindelsen. Oprindelig var det kun pppd, men siden version 0.98 kan det også anvendes hvis man skal åbne en forbindelse over netkort eller lignende, f.eks. ved stofa-net.

Diald anvender filen standard.filter til styring af hvor længe forbindelsen skal holdes åben, og man kan endda sætte forskellige timeout afhængig af port/protokol. F.eks. 120 sekunder på http/web, 60 sekunder på ftp, og 4 min. på telnet/ssh. Man kan også slå visse porte fra, så de slet ikke kan åbne forbindelse, dette er specielt praktisk ved visse netbios porte (windows).

Diald kan også anvendes helt manuelt, dvs. via kommandolinie eller dctrl så åbner/lukker man manuelt for forbindelsen. Via kommandoline f.eks.:

   echo "up" > /var/lib/diald/fifo
   echo "down" > /var/lib/diald/fifo

Der er også andre kommandoer til styring, men det er lige vist som eksempel. Disse kommandoer kan passende placeres som aliaser i shell opstart hvis de ofte anvendes:

   alias unblock='echo unblock > /var/lib/diald/fifo'
   alias block='echo block > /var/lib/diald/fifo'
   alias force='echo force > /var/lib/diald/fifo'
   alias unforce='echo unforce > /var/lib/diald/fifo'
   alias diald='echo error'
   alias dialdup='echo up > /var/lib/diald/fifo'
   alias dialddown='echo down > /var/lib/diald/fifo'
   alias dialdquit='echo quit > /var/lib/diald/fifo'

topDctrl

Dctrl er en grafisk frontend (til X) for diald. Den kræver at man har tcl/tk installeret. Man kan se trafiken på forbindelsen, de pakker der holder den åben, samt up/downloadhastigheder:

dctrl.png

Jeg har yderligere ladet fvwm2 windowmanager lave en "swallow" på dctrl's icon som er et "stoplys". Der er grøn for åben og rød for lukket ppp forbindelse:

dctrl trafic light green dctrl trafic light red

top ip_dynaddr

Får at den første pakke retur ikke skal fare vild, så kan det være en fordel at "enable" "ip dynamic address" i kernen:
    if [ -f /proc/sys/net/ipv4/ip_dynaddr ]; then
       echo "3" >/proc/sys/net/ipv4/ip_dynaddr
    fi

Se også i kernens dokumentation, der er en fil : /usr/src/linux/Documentation/networking/ip_dynaddr.txt.

top Når Netscape holder forbindelsen åben

Bla. Netscape kan finde på at holde forbindelsen åben (eller genåbne) på grund af manglende fin-pakker. Man kan til dels løse dette problem med følgende i standard.flter:
 # maybe this helps from keeping http links up from netscape?:
 ignore tcp tcp.fin

top Links

top Eksempler på nogle konfigurationsfiler til diald mv.

Disse eksempler er til diald 0.99.4, men burde tilpasses til andre 0.99 og nyere versioner. Man bør ikke anvende de helt gamle diald, der bedst virkede på gamle kerner (2.0.x). Jeg har faktisk ikke prøvet dem særligt meget på 2.2.x kerner, men ummidelbart kører de gamle diald ikke (f.eks. diald 0.16).

Se også manual sider til diald, dctrl(1), diald-examples(5), diald-control(5), diald-monitor(5), pppd(8), chat(8).

Diald har diverse configurationsfiler, jeg har placeret dem i /etc/diald/ men check placering af filer, jeg har lagt dem anderledes end muligvis standard i diald distributionen. Derudover check konfigurationsfilerne, specielt de henvisningerne til de andre filer som anvendes af nedestående konfigurationsfiler, og som ikke er medtaget.

Et simpelt chatscript (husk chmod +x chatscript.diald):

#!/bin/sh
PHONE=NNNNNNNN
#remove "-r /var/...." if not chat log is needed:
exec chat -v -r /var/log/ppp-chat.log \
REPORT CONNECT \
REPORT OK \
REPORT BUSY \
REPORT 'NO CARRIER' \
REPORT 'NO DIALTONE' \
ABORT 'NO CARRIER' \
ABORT 'BUSY' \
ABORT 'NO DIALTONE' \
ABORT 'WAITING' \
TIMEOUT 10 \
'' 'ATZ' \
'OK' ATDT$PHONE \
TIMEOUT 50 \
CONNECT

/etc/diald/diald.options

#some debug:
debug

linkdesc "My_Modem_Name"
lock
device /dev/ttyS0
modem
crtscts
speed 115200
mode ppp
mtu 538

authsimple "/etc/diald/auth"
demasq
accounting-log "/var/log/diald.log"
pidfile "diald.pid"
fifo    "/var/lib/diald/fifo"

# jeg anvender følgende dummy-ip på eget net til SLIP device,
# ip bør helst være på et eget netværk, dvs. bruger man 192.168.0.x
# så vælg noget andet, evt. 192.168.253.x :
local  192.168.0.254
remote 192.168.0.253
dynamic
netmask 255.255.255.0

redial-timeout 45
died-retry-count 0
connect-timeout 600
retry-count     3

ip-up /etc/diald/ip-up
ip-down /etc/diald/ip-down

connect "/etc/ppp/chatscript.diald"

defaultroute
pppd-options  noauth user USERNAME-ISP ipcp-accept-local ipcp-accept-remote

#I første omgang skulle standard.filter kunne anvendes, men
#man kan senere tilrette til egne ønsker.

include /etc/diald/standard.filter

Der er også andre filer som /etc/diald/ip-up og ip-down som er shell scripts der kaldes når forbindelser er oppe hhv. går ned. I Redhat er der nogle i /etc/ppp/ip-up og ip-local mv. og redhat & co er ikke ummidelbart lavet til diald så man skal lige checke disse scripts hvordan de hænger sammnen med resten. Måske du blot kan angive /etc/ppp/ip-up og ip-down i stedet.

OBS: /etc/ppp/options: I denne fil må visse kommandoer ikke anvendes, se bla. manualsiden til diald:

      WARNING:  Note  that  some pppd commands
      should  not  be  specified,   not   even   in   the
      /etc/ppp/options  file, because they will interfere
      with the proper operation of diald.  In  particular
      you  should  not  specify  the tty device, the baud
      rate, nor any  of  the  options  crtscts,  xonxoff,
      -crtscts,  defaultroute,  lock,  netmask,  -detach,
      modem, local, mtu and proxyarp.  Use the equivalent
      diald commands to control these pppd settings.

top Nogle tips til fejlfinding

For at teste en del af opsætning, specielt pppd og chatscript, så forsøg at kalde pppd med de samme options som diald vil kalde pppd med:

  pppd noauth user USERNAME-ISP ipcp-accept-local ipcp-accept-remote \
     lock  device /dev/ttyS0  modem  crtscts  speed 115200  mode ppp \
     connect /etc/ppp/chatscript.diald

De værktøj der er nævnt i ppp-info kan fint bruges . Afhængig af den anvendte linux distribution så vil der være eller flere logfiler i /var/log. Udover de standard logfiler der findes, så oprettes i ovenstående eksempel /var/log/ppp-chat.log. Husk at slå denne fra, ellers skal filen af og til slettes, hvis logrotate ikke sørger for det.

Er diald korrekt startet , og forbindelse ikke oprettet så vil route -n vise:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.253   0.0.0.0         255.255.255.255 UH    1      0        0 sl0
255.255.255.255 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 sl0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         0.0.0.0         0.0.0.0         U     1      0        0 sl0

Og med forbindelsen aktiv:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
255.255.255.255 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
195.249.0.69    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
195.249.0.0     0.0.0.0         255.255.255.0   U     0      0        0 ppp0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0

Tilsvarende kan ifconfig anvendes til at vise status på hhv. sl0 og ppp0.

 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret Sunday, 07-Mar-2004 21:27:26 CET
Denne side vedligeholdes af Frank Damgaard .