Probleme und Fehersuche bei SyncPPP.

- Verstaendnisprobleme:
Viele sind analog gewoehnt, bei ISDN dreht sich ja eigentlich alles um.
Die Netzverbindung besteht logisch immer, gewaehlt wird aber nur bei Bedarf.

Analog:
	- manuelles starten eines Scripte oder ueber diald
	- waehlen, z.B. mit 'chat'
	- pppd faehrt hoch und macht Handshake mit Partner
	- ifconfig und route Aufrufe durch pppd
ISDN:
	- Netz wird konfiguriert, diverse isdnctrl und ein ifconfig Aufruf
	- Setzen der Route
	- starten ipppd
	- Verbindungswunsch -> i4l waehlt selbststaendig Nummern (isdnctrl)
	- ipppd wird aktiviert (er laeuft die ganze Zeit!)
	- ipppd macht Handshake etc.

	- Beim (automatischen Abbau) macht der ipppd ein Reconnect auf das
	  Device bei analog beendet er sich.

Eine kurze FAQ und Checkliste (aus leidvoller Erfahrung:)

- Muss ich den Usernamen angeben?
Ja!
- Wo muss ich den Usernamen angeben?
/etc/ppp/options (bei SuSE: besser: options.ippp0)

- Muss ich das Passwort angeben?
Ja!
- Wo muss ich das Passwort angeben?
/etc/ppp/pap-secrets

- Wie muss das Netzdevice heissen?
ippp?. Am Namen wird entschieden, worum es geht. Nicht: eth0, isdn0....
Immer bei ippp0 beginnen.

- Welches Protokoll muss ich auswaehlen?
Das muss (muesste) der ISP angeben. 

- Welche Protokolle gibt es?
	- syncPPP <-> asyncPPP
	asynchrones PPP wird eigentlich nur ueber Modems gemacht, einige
	Provider bieten trotzdem nur dieses auch ueber ISDN an :-(
	Symptom: PPP-Handshake klappt nicht. (LCP-messages bei debug)
	Loesung: siehe unten.

	- Authentication:
	PAP, CHAP, MS-eigene sachen....

- Wie steuer ich, ob mein ipppd sich mit PAP oder CHAP authemtifiziert?
  Indirekt ueber den usernamen in options, es wird sowohl in pap-secrets,
  als auch in chap-secrets gesucht, das "erstbeste" wird dann mit der 
  Gegenstelle versucht zu verhandeln. 
  Tip: alles nicht benoetigte (chap-secrets) loeschen (moven).

- Welche Datei ist relevant options, ioptions, oder options.ippp0
   - options/ioptions: globale Einstellung fuer _alle_ pppd (acuh analog)
   - options: Default fuer alten ipppd
   - ioptions: default fuer neuen ipppd
   - options.ippp0: der Name ist willkuerlich, optionsfile, das nur fuer 
     einen pppd gilt, wird bei start von ipppd mit 
     z.B. "file /etc/ppp/options.ippp0" uebergeben.
     Bei SuSE automatisch, wenn ex. fuer dieses Device.

- Der Handshake klappt nicht.
  - die Verbindung wird aufgebaut, aber nach drei-10 Sekunden wieder beendet.
    !!! Achtung: das geht ins Geld !!!
    In /etc/ppp/options die Debug-Option setzen (einzelne Zeile mit 'debug')
    In /var/log/messages sieht man dann recht genau, _was_ nicht geht.
	
    Die haeufigsten Ursachen:
	- Gegenstell macht kein syncPPP
	- Authentication klappt nicht,
	- Username/Passwort eintragen
	- falsches Protokoll (PAP/CHAP/...) 
	  (Fuer Microschrott-Server siehte NT-HowTo)
	- unbedingt die Header-Compression ausschalten!
	  (Das Bsp-options klappt so gut wie immer, ehrlich)
	- der eigene ipppd verlangt von der Gegenstelle ein Login.
	  _keine_ Option +pap, +chap, login, ...

- ich benutze dynamische IP-Nummern, was ist zu beachten?
  - Man muss beim "ifconfig" trotzdem was sinnvolles angeben!
    Wenn manss nichts besseres weiss: 
	ifconfig 192.168.1.1 pointopoint 192.168.1.2
    Nach dem ersten Connect werden die wirklichen IP-Nummer gesetzt,
    testen mit: 'ifconfig'. Am besten dann die IP-Nummer des Partners
    fest eintragen. Die eigene ist vollkommen egal und aendert sich ja eh.
  - Nach dem Verbidnungauf-/abbau wird meine Route geloescht.
    Das stimmt! Denn es wird intern ein 'ifconfig' aufgerufen und damit
    alle Routen fuer dieses Device geloescht.
    Abhilfe: /etc/ppp/ip-up und/oder ip-down installieren.

Grundsaetzlich zu PPP:
Die beiden PPP-Daemons machen einen Handshake, bei dem sie sich auf die
einzelnen Optionen einigen. Theoretisch sollten die sich auf den kleinsten
gemeinsamen Haenger einigen. Das klappt meist nicht :-(
-> 'debug' einschalten, Protokoll beachten, moeglichst alle Optionen, die
abgewiesen werden (LCP-Rej-Meldungen) im options-File de-aktivieren.
Machmal rejectet auch der eigenen ipppd einige Optionen, ev. diese dann
doch setzen (erst mal keine Haeders-Compression).
Aber das Bsp-options klappt, ehrlich.

- Was tun wenns nicht klappt?
  erstmal 'debug' setzen. Dann /var/log/messages betrachten, nachdenken und
  weiterprobieren.
  In die Newsgroup/Liste (falls noetig) _immer_ mitschicken:
  - isdnctrl list all
  - /etc/ppp/options*
  - Auszug aus /var/log/messages

Siehe auch: http://www.suse.de/Support/sdb/isdn_trouble.html


asynchrones PPP ber ISDN from
<http://www.suse.de/Support/sdb/ppp_async.html> :
------------------------------------------------------------------
    `Bezieht sich auf'
    `S.u.S.E.' -Version: ab 4.4
    
  
Frage:
    Wie kann man auch ber ISDN asynchrones PPP fahren?
  
Erklrung:
    Normalerweise wird ber ISDN immer synchrones PPP gefahren. Manche
    Provider bieten dies   aber  nicht  an,  es   kommt  dabei nur  zu 
    Problemem beim PPP-Handshake.
    
    `i4l' bietet  auch Modememulationen an (Devices:   </dev/ttyI0>  , 
    </dev/ttyI1> ....) ber die man    die normalen analog PPP-Scripte 
    verwenden kann,  die auf die ISDN-Devices ber  normale AT-Befehle 
    zugreifen.
  
  Lsung:
    Konfigurieren Sie die PPP-Verbindung  wie ber analoge Modems, nur 
    da Sie  ein anderes  Device (s.o.) benutzen.  Diese Konfiguration 
    ist u.a. im  Handbuch, in diversen README und   in  der Support-DB 
    beschrieben.
    
    `Stefan Troendle  (StefanTroendle@swol.de)' hat    hierzu auch ein 
    kleines spezielles HowTo erstellt:
    
    Anbei habe ich die beiden Scripts von mir  als  Anlage, mit  denen 
    ich ich  mit   asynchronem  PPP und  ISDN  eine Vebindung auf  und 
    abbauen kann!
    
    Ich whle  mich mit  chat  und   X75 bei  meinem    Provider  ein, 
    Authentizierung erfolgt dann ber PAP. In der   </etc/ppp/options> 
    habe ich <useifip> rausgenommen, das kennt der pppd ja nicht!
    
    Hier die Scripte:
    
      - </etc/ppp/ppp-up> :
        
        ---------------------------- snip ----------------------------
        #!/bin/sh
        #set -x
        #
        # Script to connect with asynchronous ppp and ISDN a special provider.
        # It works uses the modem-emultaion from i4l
        #
        # In the file ppp.chat are the following lines:
        #
        #                       "" ATZ
        #                       OK ATS14=0&Exxxxx (xxxxx is the own ISDN-MSN)
        #                       OK ATDyyyyy       (yyyyy is the  provider phone-number)
        #                       OK ""                     (To start ppp)
        #
        # Here i use the ATS14=0 to work with X75 !
        #
        # Authentification is with PAP (/etc/ppp/pap-secrets)
        # You can use the file /etc/ppp/options from SuSE WITHOUT
        # the parameter "useifp" ! 
        # (Packet i4l, /usr/doc/packages/i4l/pppsample/options)
        #
        # 24.01.1997, Stefan Troendle mail: StefanTroendle@swol.de
        #
        
        localip=0.0.0.0
        remoteip=
        
        # Using the modem-emulation
        
        device=/dev/ttyI0
        
        # The following lines are from SuSE's LINUX aktuell 4.3
        
        pppflags="debug defaultroute"
        
        /usr/sbin/pppd lock connect \
        '/usr/sbin/chat -f /etc/ppp/ppp.chat' \
        $device $pppflags $localip:$remoteip
        
        ---------------------------- snap ----------------------------
        
      - </etc/ppp/ppp.chat> :
        
        ---------------------------- snip ----------------------------
        "" ATZ
        OK ATS14=0&Exxxxx
        OK ATDyyyyy
        OK ""
        
        ---------------------------- snap ----------------------------
        
      - </etc/ppp/ip-down> :
        
        ---------------------------- snip ----------------------------
        #!/bin/sh
        #set -x
        #
        # Script to disconnect a running asynchronous ppp-connection
        #
        # 24.01.1997, Stefan Troendle mail: StefanTroendle@swol.de
        #
        
        # The net-device
        
        DEVICE=ppp0
        
        # If a ppp0 pid file exists, then has a connection established,
        # kill this connection !
        
        if [ -r /var/run/$DEVICE.pid ]; then
                kill -INT `cat /var/run/$DEVICE.pid`
        
        # Unsuccessful?
        # Remove the ppp0 pid file !
        
                        if [ ! "$?" = "0" ]; then
                        echo "... removing stale $DEVICE pid file !"
                        rm -f /var/run/$DEVICE.pid
                        exit 1
                fi
        
                echo "$DEVICE link disonnected !"
                exit 0
        
        fi
        
   ---------------------------- snap ----------------------------
       

  ISDN: 2 ipppd starten from
  <http://www.suse.de/Support/sdb/ipppd2.html> :
    ------------------------------------------------------------------
    `Bezieht sich auf'
    `S.u.S.E.' -Version: 4.4, 4.4.1
    Kernel-Version: 2.0.25, 2.0.29
    HiSax-Version: 1.3, 1.5
    
  
  Symptom:
    Es werden  2 ipppd fr  2 verschiedene Netzverbindungen gestartet, 
    es wird immer die Konfiguration  des ersten  genommen. Es sollen 2 
    verschiedenen syncPPP Konfigurationen definiert werden, um mehrere
    Netzanbindungen (Server  oder Client) mit verschiedenen IP-Nummer, 
    Usernamen etc. zu konfigurieren.
  
  Hintergrund:
    Es gibt es den Befehl: (Bsp.)
    
    ------------------------------ snip ------------------------------
    isdnctrl pppbind ippp0 0
    isdnctrl pppbind ippp1 1
    
    ------------------------------ snap ------------------------------
    
    Damit wird  das Netzinterface  an  das  entsprechende ippp  Device 
    gebunden.
    
    Desweiteren sollten unterschiedliche options-Files fr  den  ipppd 
    verwendet werden,  in denen    die  verschiedenen  Konfigurationen 
    definiert werden. Die  globale </etc/ppp/options> enthlt hingegen 
    nur die  fr alle  PPP-Verbindungen (analog und  ISDN) identischen 
    Parameter.
    
    Hierzu wird  der  ipppd mit  dem    Parameter  <file "optionfile"> 
    aufgerufen, Bsp:
    
    ------------------------------ snip ------------------------------
    ipppd file /etc/ppp/options.ippp0
    
    ------------------------------ snap ------------------------------
    
    Hinweis: die  Datei </etc/ppp/options>  wird   `immer'  eingelesen 
    (sowohl vom <ipppd> als auch <pppd> ).



  ISDN: PPP-Daemon funktioniert nicht mehr from
  <http://www.suse.de/Support/sdb/isdnppp.html> :
    ------------------------------------------------------------------
    `Bezieht sich auf'
    `S.u.S.E.' -Version: 4.3, 4.4
    Kernel-Version: 2.0.25
    
  
  Symptom 1:
    Der PPP-Deamon  </sbin/ipppd> strzt    ab. In </var/log/messages> 
    steht in etwa folgendes:
    
    ------------------------------ snip ------------------------------
    Dec 18 20:19:58 paddys pppd[11707]: ioctl(PPPIOCGUNIT): Invalid argument
    Dec 18 20:19:58 paddys pppd[11707]: Exit.
    Dec 18 20:20:17 paddys kernel: isdn_ppp_bind: Can't find usable ippp device
    
    ------------------------------ snap ------------------------------
    
    Dieses Problem tritt  genau  dann auf,  wenn  die Gegenstelle  bei 
    einem Whlversuch nicht reagiert hat.
  
  Ursache: 1
    Fehler im PPP/ISDN-Code im Kernel.
  
  Lsung 1:
    
      - Starten Sie den PPP-Daemon erneut.

 ISDN: lokales Netz und syncPPP-Verbindung from
  <http://www.suse.de/Support/sdb/ppp_eth.html> :
    ------------------------------------------------------------------
    `Bezieht sich auf'
    `S.u.S.E.' -Version: 4.4
    
  
  Symptom:
    Sie haben ein lokales Netzwerk z.B. auf <eth0> konfiguriert.
    
    Nachdem eine  PPP-Verbindung konfiguriert wurde,  haben Sie keinen 
    Zugriff mehr auf das lokale Netz; wenn PPP (also das Device <ippp0> 
    oder <ppp0> )  nicht  konfiguriert wurde,  funktioniert das lokale 
    Netz noch.
    
    In </var/log/messages> gibt es die Fehlermeldung:
    
    ------------------------------ snip ------------------------------
    kernel: ARP: arp called for own IP address
    
    ------------------------------ snap ------------------------------
    
  
  Ursache:
    Falsche Netzkonfiguration.
  
  Lsung:
    
      - Wie wurde das Device <ippp0> konfiguriert?
        
        Vermutlich haben Sie als lokale IP-Nummer der
        Point-To-Point-Verbindung <0.0.0.0> angegeben.
        
        Tragen Sie eine echte IP-Nummer ein (keine Netzadresse), z.B.:
        
        ---------------------------- snip ----------------------------
        IFCONFIG_3="193.141.17.73 pointopoint 1.1.1.1 metric 1"
        
        ---------------------------- snap ----------------------------
        
        
  
  Hinweis:
    Dieses Phnomen  tritt sowohl  bei    ISDN  (syncPPP)    als  auch 
    Modem-Verbindungen auf


-------------------------------
 
Weitere Links:
	http://www.suse.de/doku/ppp_nt/PPP-NT-HOWTO.html
	http://www.suse.de/Support/sdb Stichwort 'isdn', 'ipppd'....
	http://www.suse.de/Support/sdb/sp_prov
		(Einige-Provider, z.B. MSN :-)
	http://www.lrz-muenchen.de/~ui161ab/www/isdn/
	http://www.lrz-muenchen.de/~ui161ab/www/isdn/faq.html
