/usr/share/doc/HOWTO/de-html/DE-ISDN-HOWTO-5.html is in doc-linux-de 2003.10-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.65">
<TITLE>Linux ISDN HOWTO: syncPPP-Verbindung herstellen </TITLE>
<LINK HREF="DE-ISDN-HOWTO-6.html" REL=next>
<LINK HREF="DE-ISDN-HOWTO-4.html" REL=previous>
<LINK HREF="DE-ISDN-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-ISDN-HOWTO-6.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-ISDN-HOWTO-4.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-ISDN-HOWTO.html#toc5"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="DE-ISDN-HOWTO-syncPPP"></A> <A NAME="s5">5.</A> <A HREF="DE-ISDN-HOWTO.html#toc5">syncPPP-Verbindung herstellen </A> <!--ISDN!PPP--> <!--ISDN!synchrones PPP--> <!--PPP!ISDN--> </H2>
<P>Das <EM>Point-to-Point Protocol</EM> (PPP) ist unter anderem in den
RFCs 1661, 1662, 1332 und 1334 definiert.
Es wurde ursprünglich entwickelt, um Daten über serielle Leitungen
zu verschicken. Es kann grundsätzlich für verschiedene Netzwerkprotokolle
wie Apple, IP, IPX, usw. verwendet werden; unter Linux ist aber nur
IP vorgesehen. PPP bietet verschiedene Features, wie z.B. den Austausch
der IP-Nummern, Authentifizierung, Komprimierung und einige andere.</P>
<P>Aus diesem Grund findet zunächst durch das Link Control Protocol
(LCP) ein Handshake statt, durch den die Verbindung initialisiert
wird oder eben auch nicht. In der Praxis ergeben sich genau hierdurch
die Probleme gemäß der Richtlinie <EM>das schöne an Standards ist,
daß sich jeder seinen eigenen aussuchen kann</EM>.</P>
<H2><A NAME="DE-ISDN-HOWTO-pppIppp"></A> <A NAME="ss5.1">5.1</A> <A HREF="DE-ISDN-HOWTO.html#toc5.1">Unterschiede Analog - ISDN </A>
</H2>
<P>Wer analoges PPP gewöhnt ist, muß hier ein wenig umdenken.
Die Netzverbindung besteht logisch immer, gewählt wird aber nur
bei Bedarf.</P>
<H3>Analog </H3>
<P>
<UL>
<LI> manuelles Starten per Skript oder über <CODE>diald</CODE></LI>
<LI> wählen, z.B. mit <CODE>chat</CODE></LI>
<LI> <CODE>pppd</CODE> fährt hoch und macht Handshake mit Partner</LI>
<LI> <CODE>ifconfig</CODE> und <CODE>route</CODE> Aufrufe durch <CODE>pppd</CODE></LI>
<LI> Optionsfile: <CODE>/etc/ppp/options</CODE></LI>
<LI> Liest automatisch <CODE>/etc/ppp/options.DEVICE</CODE>,
wobei <CODE>DEVICE</CODE> das aktuell verwendete serielle
Device ist.</LI>
</UL>
</P>
<H3>ISDN </H3>
<P>
<UL>
<LI> Netz wird konfiguriert, diverse <CODE>isdnctrl</CODE> und ein
<CODE>ifconfig</CODE> Aufruf</LI>
<LI> Setzen der Route</LI>
<LI> <CODE>ipppd</CODE> wird gestartet</LI>
<LI> Bei einem Verbindungswunsch wählt i4l selbständig
die Nummer (<CODE>isdnctrl</CODE>).</LI>
<LI> <CODE>ipppd</CODE> wird aktiviert; er läuft die ganze Zeit</LI>
<LI> <CODE>ipppd</CODE> macht Handshake</LI>
<LI> Bei dynamischen IP-Nummern legt der <CODE>ipppd</CODE>
das Device neu an und startet <CODE>/etc/ppp/ip-up</CODE>.</LI>
<LI> Beim automatischen Abbau macht der <CODE>ipppd</CODE> ein
Reconnect auf das Device; der analoge PPP-Daemon beendet
sich.</LI>
<LI> Beim Abbau startet der <CODE>ipppd</CODE>
<CODE>/etc/ppp/ip-down</CODE>.</LI>
<LI> Optionsfile: <CODE>/etc/ppp/ioptions</CODE></LI>
<LI> Liest kein weiteres Optionsfile automatisch ein.</LI>
</UL>
</P>
<H2><A NAME="DE-ISDN-HOWTO-syncPPPwas"></A> <A NAME="ss5.2">5.2</A> <A HREF="DE-ISDN-HOWTO.html#toc5.2">Was ist eigentlich synchrones PPP? </A>
</H2>
<P>Der Unterschied zwischen synchronem und asynchronem PPP ist das
<EM>Framing</EM>, also das Einpacken der
Rohdaten für die jeweilige Verbindungsart.
SyncPPP packt in HDLC ein. Auf einer Modemstrecke
bzw. einer seriellen Schnittstelle kann man aber
nur zeichenweise arbeiten. Entsprechend packt asyncPPP
seine Päckchen anders ein. Es gibt ein ausgewiesenes
Byte, welches den Paketanfang bzw. das Ende markiert.
Diese Byte muß, sofern es im Datenstrom auftaucht, natürlich
anders dargestellt werden. Dafür gibt es ein weiteres
reserviertes Byte, das Escape-Byte.</P>
<H2><A NAME="DE-ISDN-HOWTO-ipppdConfig"></A> <A NAME="ss5.3">5.3</A> <A HREF="DE-ISDN-HOWTO.html#toc5.3">Die Konfiguration </A>
</H2>
<H3>Netzdevices anlegen und konfigurieren <!--ISDN!isdnctrl--> <!--ISDN!Netzwerkdevices--> <!--Netzwerk!Device--> </H3>
<P>Nachfolgend wird gezeigt, wie die Netzwerkdevices angelegt
und konfiguriert werden:
<BLOCKQUOTE><CODE>
<PRE>
NETDEV='ippp0'
# neues Device
isdnctrl addif $NETDEV
# setzte MSN/EAZ
isdnctrl eaz $NETDEV 456
# def. Nummer(n) zum Rauswählen
isdnctrl addphone $NETDEV out 09011
# erlaube Nummern, die anrufen dürfen
#isdnctrl addphone $NETDEV in
# dürfen alle anrufen? Nein: setze secure=on
isdnctrl secure $NETDEV on
# Layer-2 Protokoll: (x75i, x75ui, x75bui, hdlc)
isdnctrl l2_prot $NETDEV hdlc
# Layer-3 Protokoll: (nur trans)
isdnctrl l3_prot $NETDEV trans
# Ecapsulation: (rawip, cisco_h, syncppp)
isdnctrl encap $NETDEV syncppp
# Idletime
isdnctrl huptimeout $NETDEV 60
# maximale Wählversuche
isdnctrl dialmax $NETDEV 5
# nur einen bestimmten Kanal benutzen
#isdnctrl bind $NETDEV
# PPP an Netzdevice binden
isdnctrl pppbind $NETDEV 0
# Netzdevice konfigurieren
ifconfig $NETDEV 1.1.1.1 pointopoint 193.102.150.13 up
# OPEN-Meldung ausgeben:
isdnctrl verbose 3
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Gelöscht wird das Interface durch die Befehle:
<BLOCKQUOTE><CODE>
<PRE>
ifconfig $NETDEV down
isdnctrl delif $NETDEV
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H3><A NAME="DE-ISDN-HOWTO-ipppdStart"></A> ipppd starten <!--ipppd!Start--> <!--ISDN!ipppd!Start--> </H3>
<P>Vor dem Start des <CODE>ipppd</CODE> müssen drei Voraussetzungen
erfüllt sein:
<OL>
<LI> ISDN-Hardwareunterstützung</LI>
<LI> syncPPP-Unterstützung im Kernel</LI>
<LI> Das zu verwendende Device muß angelegt sein
(<CODE>isdnctrl addif</CODE>).</LI>
</OL>
</P>
<P>Die syncPPP-Unterstützung des Kernels überprüft der <CODE>ipppd</CODE>
leider über eine etwas unglückliche Methode:
Es muß ein Device <CODE>ippp0</CODE> vorhanden sein. Außerdem
kann man das Device nicht beliebig benennen, es muß mit
<CODE>ippp</CODE> beginnen. Deshalb sollte man sich unbedingt
merken, als Devicenamen immer <CODE>ippp0</CODE> zu verwenden.</P>
<P>
<!--
/etc/ppp/ioptions
-->
<!--
ipppd!/etc/ppp/ioptions
-->
<!--
ISDN!ipppd!/etc/ppp/ioptions
-->
<!--
PPP!/etc/ppp/ioptions
-->
Der <CODE>ipppd</CODE> kann über 2,5 Arten Optionen annehmen:
<UL>
<LI> Kommandozeilenparameter</LI>
<LI> das Optionsfile <CODE>/etc/ppp/ioptions</CODE></LI>
</UL>
Die 2,5te Methode ist die Angabe eines Optionsfiles als
Kommandozeilenparameter (<CODE>-file</CODE>).</P>
<P>In Anlehnung an den <CODE>pppd</CODE> empfehle ich folgende Struktur:
<UL>
<LI> Globale Optionen für alle <CODE>ipppd</CODE>s sollten in
<CODE>/etc/ppp/ioptions</CODE> gesetzt werden.</LI>
<LI> Für Devicespezifische Optionen, wie z.B. für
<CODE>ippp0</CODE>, sollte eine spezielle Datei wie
<CODE>/etc/ppp/options.ippp0</CODE> verwendet werden.</LI>
<LI> Der <CODE>ipppd</CODE> wird so gestartet:
<BLOCKQUOTE><CODE>
<PRE>
ipppd pidfile /var/run/ipppd.ippp0.pid \
file /etc/ppp/options.ippp0 &
</PRE>
</CODE></BLOCKQUOTE>
</LI>
</UL>
</P>
<P>Folgendes sollte man noch über den <CODE>ipppd</CODE> wissen:
<UL>
<LI> Es werden zum Teil andere Optionen als beim <CODE>pppd</CODE>
benutzt; zu den Unterschieden siehe <CODE>man ipppd</CODE>.</LI>
<LI> Die Optionen und Paßwörter werden nur beim Start
neu eingelesen.
Beim Testen sollte man also immer nachschauen, ob
noch <CODE>ipppd</CODE>s laufen und diese neu starten.</LI>
<LI> Es können verschiedene <CODE>ipppd</CODE> auf ein Device
reagieren, daher <CODE>pppbind</CODE>. </LI>
<LI> Die Datei <CODE>/etc/ppp/ioptions</CODE> muß existieren.</LI>
</UL>
</P>
<P>Folgende Optionen haben sich für die verschiedensten ISPs
als stabil erwiesen:
<A NAME="DE-ISDN-HOWTO-optionsippp0"></A>
<BLOCKQUOTE><CODE>
<PRE>
# /etc/ppp/options.ippp0
#
# für isdn4linux/syncPPP und dynamische IP-Nummern
#
#
# Klaus Franken, kfr@suse.de
# Version: 27.08.97 (5.1)
#
# Diese Datei wird von YaST von /etc/ppp/ioptions.YaST
# nach options.<device> kopiert.
# die Device(s)
# für mehr als ein Device versuche folgendes:
# /dev/ippp0 /dev/ippp1 ...
/dev/ippp0
# die IP-Adresse: <lokal>:<remote>
# einfach "0.0.0.0:" oder nichts für dyn. IP
#0.0.0.0:
# der eigene Benutzername
user suse
# der eigene Systemname (nur für CHAP!)
# name my_system_name
# IP-Adressen vom Partner akzeptieren
# dynamische IP-Nummern verwenden
ipcp-accept-local
ipcp-accept-remote
noipdefault
# versuche, die IP-Adresse vom Interface zu ermitteln
# nur mit statischer IP-Adresse verwenden
#useifip
# alle Header-Komprimierungen abschalten
-vj
-vjccomp
-ac
-pc
-bsdcomp
# manchmal wird dies benötigt:
#noccp
# max receive unit
mru 1524
# max transmit unit
mtu 1500
# Wenn es sich bei dem Rechner um einen Server handelt,
# können sie durch Entfernen des Kommentarzeichens bei
# einem der folgenden Einträge eine Authentifizierung
# erzwingen. Wenn der Rechner jedoch als Client ver-
# wendet wird, würde das eine erfolgreiche Verbindung
# verhindern (Meldung: "peer refused to authenticate").
#
# "+pap" / "+chap" NUR AKTIVIEREN, WENN DIES EIN
# SERVER IST!!!
#+pap
#+chap
# Wenn es Problem mit dem Handshaking gibt (keine
# Antwort auf das erste lcp-Paket), sollte versucht
# werden, den Wiederholungszyklus zu verringern.
# Der Standard sind drei Sekunden, versuche z.B.
# zwei Sekunden:
# lcp-restart 2
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H3><A NAME="DE-ISDN-HOWTO-ipppdAuth"></A> Authentifizierung beim ipppd <!--ipppd!Authentifizierung--> <!--ISDN!ipppd!Authentifizierung--> <!--ipppd!PAP--> <!--ipppd!CHAP--> <!--ISDN!ipppd!PAP--> <!--ISDN!ipppd!CHAP--> <!--PPP!CHAP--> <!--PPP!PAP--> </H3>
<P>Der <CODE>ipppd</CODE> verhält sich bei der Benutzerauthentifizierung
exakt genauso wie der <CODE>pppd</CODE>. Daher erfolgt hier nur ein
kurzer Abriß.</P>
<P>Es stehen zwei Methoden zur Verfügung: PAP und CHAP.
Meistens wird PAP angeboten; über CHAP kann man
im <EM>
<A HREF="DE-PPP-HOWTO.html">PPP HOWTO</A></EM>
nachlesen.</P>
<P>Die Benutzerdaten werden an zwei Stellen konfiguriert;
als erstes wird dem <CODE>ipppd</CODE> durch das Schlüsselwort
<CODE>user</CODE> mitgeteilt, welche UserID dem gegnerischen
PPP-Daemon angeboten werden soll. </P>
<P>
<!--
/etc/ppp/pap-secrets
-->
<!--
ipppd!/etc/ppp/pap-secrets
-->
<!--
ISDN!ipppd!/etc/ppp/pap-secrets
-->
<!--
PPP!/etc/ppp/pap-secrets
-->
Als nächstes wird das Paßwort selbst als Klartext in
der Datei <CODE>/etc/ppp/pap-secrets</CODE> abgelegt.
Diese Datei darf nur für root lesbar sein. Also passe
unbedingt die Rechte an:
<BLOCKQUOTE><CODE>
<PRE>
chmod 600 /etc/ppp/pap-secrets
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Für jeden verwendeten User wird eine Zeile eingetragen;
z.B. sei der Benutzername <CODE>suse</CODE> und das Paßwort
<CODE>linux</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
# client server pw iplist
"suse" * "linux"
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Dies ist die einzige Stelle, an der das
Paßwort definiert ist. In der Datei <CODE>/etc/ppp/pap-secrets</CODE>
können mehrere User/Paßwörter definiert sein, über die Option
<CODE>user</CODE> wird jeweils die richtige Zeile ausgewählt, um
das Paßwort zu ermitteln.</P>
<P>Der Benutzername muß nicht im System bekannt sein,
zumindest besteht zwischen dem PAP- oder CHAP-Benutzernamen
und dem Systembenutzer kein Zusammenhang.</P>
<P>Nachdem der <CODE>ipppd</CODE> gestartet ist und eventuell eine Route
darüber definiert ist, wird bei Bedarf automatisch ein
Wählvorgang ausgelöst. Manuell kann man dies so auslösen:
<BLOCKQUOTE><CODE>
isdnctrl dial ippp0
</CODE></BLOCKQUOTE>
Meldungen werden über syslog nach <CODE>/var/log/messages</CODE>
geschrieben.</P>
<H3><A NAME="DE-ISDN-HOWTO-ipppdPars"></A> Welche Daten muß ich über den Zugang kennen? </H3>
<P>Folgende Daten sollte man kennen, die meisten sollte der
ISP zur Verfügung stellen.</P>
<P>
<DL>
<DT><B>Protokoll</B><DD>
<P>Es sollte syncPPP sein.</P>
<DT><B>Telefonnummer des ISP</B><DD>
<P>Natürlich benötigt man die Telefonnummer des Providers.</P>
<DT><B>meine MSN</B><DD>
<P>Mit welcher meiner Telefonnummern möchte/muß ich wählen,
siehe dazu Abschnitt
<A HREF="DE-ISDN-HOWTO-4.html#DE-ISDN-HOWTO-msnWelche">Was ist meine MSN?</A>.</P>
<DT><B>IP-Nummern</B><DD>
<P>Wenn man feste IP-Nummern hat, gibt der ISP zumindest
die persönlichen an. Die IP-Nummer auf der anderen Seite
der PtP-Verbindung, also die des ISPs, kennt man deswegen
noch nicht unbedingt. In einem solchen Fall gibt man
wie bei dynamischen IP-Nummern <EM>irgendeine</EM> IP-Nummer
vor und läßt eine Verbindung herstellen, damit man
die wirkliche IP-Nummer sieht, die man dann fest einträgt.</P>
<P>Bei dynamischen IP-Nummern trägt man <EM>irgendwelche</EM>
Nummern ein; siehe Abschnitt
<A HREF="DE-ISDN-HOWTO-6.html#DE-ISDN-HOWTO-dynIP">Probleme mit dynamischen IP-Nummern</A>.</P>
<DT><B>Typ der Authentifizierung</B><DD>
<P>PAP oder CHAP</P>
<DT><B>Username, Paßwort</B><DD>
<P>Natürlich muß man den Benutzernamen und das passende
Paßwort auf dem PPP-Server kennen.</P>
<DT><B>Nameserver</B><DD>
<P>Die IP-Nummer des zu verwendenden Nameservers sollte man
vom ISP mitgeteilt bekommen. Ansonsten siehe </P>
<P>
<BLOCKQUOTE><CODE>
<A HREF="http://www.suse.de/Support/sdb/nonameserver.html">http://www.suse.de/Support/sdb/nonameserver.html</A></CODE></BLOCKQUOTE>
</P>
</DL>
</P>
<P>Mit folgenden weiteren Parametern kann man die ISDN-Verbindung
steuern:
<DL>
<DT><B>Idle-Time</B><DD>
<P>Nach wie vielen Sekunden Inaktivität soll aufgelegt
werden. Will man dieses Feature abstellen, kann man
die Zeit auf »0« stellen.</P>
<P>Diese Zeitangabe ist jedoch nicht exakt.</P>
<DT><B>Maximale Wählversuche</B><DD>
<P>Wie oft soll gewählt werden, wenn der Gegner nicht
abnimmt?</P>
<P>Diese Anzahl gilt nicht, wenn es Hardwareprobleme
gibt; zieht man z.B. das ISDN-Kabel, wird unendlich oft
probiert.</P>
<P>Diese Anzahl gilt nicht, wenn die Wählverbindung
zustande kam, aber die PPP-Verbindung nicht aufgebaut werden
konnte. Ist z.B. das Paßwort falsch eingetragen, wird
immer wieder eine Verbindung aufgebaut, solange Pakete
verschickt werden.</P>
<DT><B>eingehende Telefonnummern</B><DD>
<P>In diesem Fall soll keiner die Verbindung von außen aufbauen
dürfen, deshalb sollte man keine eingehende Telefonnummer
angeben und die Option <CODE>secure</CODE> bzw.
<EM>Nur angegebene Nummern erlaubt</EM> aktivieren.</P>
<DT><B>Callback</B><DD>
<P>Mehr zum Thema Callback findet sich in
<BLOCKQUOTE><CODE>
<A HREF="file:/usr/doc/packages/doc/rc.config.i4l.add">/usr/doc/packages/doc/rc.config.i4l.add</A></CODE></BLOCKQUOTE>
</P>
</DL>
</P>
<H3><A NAME="DE-ISDN-HOWTO-pppSuSE"></A> PPP bei SuSE einrichten <!--ipppd!Konfiguration--> <!--ISDN!ipppd!Konfiguration--> </H3>
<P>Die Konfiguration bis auf's Routing wird in der Datei
<CODE>/etc/rc.config</CODE> eingetragen, dies kann manuell oder
über YaST geschehen.</P>
<H3>Konfiguration mit YaST </H3>
<P>Um PPP über YaST zu konfigurieren, geht man so vor:</P>
<P>
<UL>
<LI> Menüpunkt <EM>Administration des Systems</EM>,
<EM>Netzwerk konfigurieren</EM> und <EM>Netzwerk
Grundkonfiguration</EM>
auswählen. </LI>
<LI> Es erscheint eine Maske der konfigurierten
Netzdevices. Hier wähle man ein freies aus,
sofern es nicht schon
<CODE>ippp0</CODE> gibt. Mit <CODE>F5</CODE> wählt man den Netzwerktyp aus,
hier also <EM>ISDN SyncPP</EM>.</LI>
<LI> Mit <CODE>F6</CODE> vergibt man die IP-Nummern,
siehe Abschnitt
<A HREF="DE-ISDN-HOWTO-6.html#DE-ISDN-HOWTO-ipDynWelche">Welche IP-Nummer setze ich denn eigentlich?</A>,
und kann auch direkt das Default-Gateway angeben,
siehe Abschnitt
<A HREF="DE-ISDN-HOWTO-7.html#DE-ISDN-HOWTO-routing">Routing</A>.</LI>
<LI> Mit <CODE>F8</CODE> werden nun die ISDN-relevanten Daten
eingetragen.
Nachdem man das Device aktiviert hat, kann man es in
der ISDN-Maske direkt hochfahren mit: <EM>Starten</EM>.</LI>
</UL>
</P>
<P>Damit sind die <CODE>rc.config</CODE>-Variablen, die PPP-Optionen,
die Paßwortdatei und das Routing angepaßt.</P>
<H3>Manuelle Konfiguration </H3>
<P>Durch folgende Variablen in
<CODE>/etc/rc.config</CODE> wird eine syncPPP-Verbindung
gesteuert, hier als echtes Beispiel (mit <CODE>_0</CODE>):
<BLOCKQUOTE><CODE>
<PRE>
IPADDR_2="1.1.1.1"
NETDEV_2="ippp0"
IFCONFIG_2="1.1.1.1 pointopoint 193.102.150.13 up"
I4L_IDLETIME_2="60"
I4L_DIALMAX_2="5"
I4L_LOCALMSN_2="7417559"
I4L_REMOTE_OUT_2="52145922"
I4L_REMOTE_IN_2=""
I4L_ENCAP_2="syncppp"
I4L_SECURE_2="on"
</PRE>
</CODE></BLOCKQUOTE>
Die Bedeutung der Felder ist oben angegeben;
in der <CODE>/etc/rc.config</CODE> sind auch vor den Feldern
entsprechende Kommentare.</P>
<P>Es können beliebig viele Netzdevices definiert werden,
auch wenn standardmäßig nur vier angegeben sind, die jeweils
durch eine Extension wie z.B. <CODE>_2</CODE> gekennzeichnet werden.
Dabei müssen nicht alle aktiv sein. Welche aktiviert
werden sollen, wird in der Variablen <CODE>NETCONFIG</CODE>
festgelegt; sollen z.B. <CODE>_0</CODE> und <CODE>_2</CODE> aktiv sein,
setzt man: <CODE>NETCONFIG="_0 _2"</CODE>.</P>
<P>Als nächstes muß der <CODE>ipppd</CODE> konfiguriert werden.
Hierzu erstelle man
eine Datei <CODE>/etc/ppp/options.ippp0</CODE>
(siehe Abschnitt
<A HREF="#DE-ISDN-HOWTO-optionsippp0">PPP-Optionen</A>); am besten in
dem Du die Datei
<CODE>/etc/ppp/ioptions.YaST</CODE> kopierst.
In der Optionendatei muß der Benutzername gesetzt werden
und überprüft werden, ob das Device stimmt.
Dann trägst Du das Paßwort passend zum Benutzernamen in
<CODE>/etc/ppp/pap-secrets</CODE> ein.</P>
<P>Das manuelle Starten ist in Abschnitt
<A HREF="#DE-ISDN-HOWTO-ipppdStart">ipppd starten</A>
beschrieben.</P>
<H2><A NAME="DE-ISDN-HOWTO-syncPPPtrouble"></A> <A NAME="ss5.4">5.4</A> <A HREF="DE-ISDN-HOWTO.html#toc5.4">Probleme beim Verbindungsaufbau, Troubleshooting. </A>
<!--ipppd!Probleme--> <!--ISDN!ipppd!Probleme--> </H2>
<P>Bei Problemen sollte man folgende Checkliste durchlaufen:</P>
<P>
<OL>
<LI> Wurde der <CODE>ipppd</CODE> überhaupt gestartet?
Kontrolliere mit
<BLOCKQUOTE><CODE>
ps ax | grep ipppd
</CODE></BLOCKQUOTE>
ob einer
läuft bzw. wieviele laufen.
Kontrolliere in <CODE>/var/log/messages</CODE> die Startmeldungen,
z.B.:
<BLOCKQUOTE><CODE>
<PRE>
syslog: info: no CHAP secret entry for this user!
ipppd[536]: Found 1 devices: /dev/ippp0,
ipppd[540]: ipppd i2.2.9 (isdn4linux version of pppd by MH) started
ipppd[540]: init_unit: 0
ipppd[540]: Connect[0]: /dev/ippp0, fd: 8
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI> Stimmen die Benutzerdaten?
Der <CODE>ipppd</CODE> prüft schon beim Start, mit welchem Usernamen
gearbeitet wird (<CODE>user suse</CODE>). Zu diesem Namen
wird das entprechende Paßwort gelesen. Klappt das nicht,
wird eine Meldung ausgegeben, z.B.:
<BLOCKQUOTE><CODE>
<PRE>
Apr 9 20:32:17 glen syslog: info: no PAP secret entry for this user!
</PRE>
</CODE></BLOCKQUOTE>
In diesem Fall wird eine Einwahl mittels PAP nicht
funktionieren, die 12 Pfennige kann man sich also sparen.
Ursache ist meist ein Tippfehler beim Benutzernamen oder
falsche Permisssions der <CODE>pap-secrets</CODE>.
Analoges gilt für CHAP.
</LI>
<LI> Wird überhaupt eine Verbindung aufgebaut?
Sobald die Gegenstelle abnimmt und damit Kosten
entstehen, erscheint eine <CODE>connect</CODE>-Meldung.
Wird keine Verbindung aufgebaut, gibt es vermutlich
eine <CODE>cause</CODE>-Meldung, siehe Abschnitt
<A HREF="DE-ISDN-HOWTO-4.html#DE-ISDN-HOWTO-cause">Cause Meldungen</A>.
Erscheinen nur <CODE>dialing</CODE>-Meldungen, aber sonst nichts,
liegt es an der Hardware oder am Hardware-Modul,
siehe die Abschnitte
<A HREF="DE-ISDN-HOWTO-3.html#DE-ISDN-HOWTO-hwTesten">Hardware testen</A> und
<A HREF="DE-ISDN-HOWTO-11.html#DE-ISDN-HOWTO-installation">Installation</A>.
</LI>
<LI> Klappt die Einwahl?
Bei erfolgreicher Einwahl erscheinen Meldungen über die
IP-Nummern, z.B.:
<BLOCKQUOTE><CODE>
<PRE>
ipppd[540]: local IP address 149.228.142.59
ipppd[540]: remote IP address 193.102.150.13
</PRE>
</CODE></BLOCKQUOTE>
Sieht man diese Meldungen, dann Glückwunsch! Der
Gegner wird ab jetzt zum Partner.
</LI>
<LI> <CODE>select: Bad file number</CODE>
Direkt nach der Ausgabe der IP-Nummern erscheint:
<BLOCKQUOTE><CODE>
<PRE>
ipppd[353]: select: Bad file number
ipppd[353]: Couldn't restore device fd flags: Bad file number
ipppd[353]: Exit.
</PRE>
</CODE></BLOCKQUOTE>
Was hat es damit auf sich? Zunächst einmal, die Verbindung
ist trotz allem aufgebaut.
Die Ursache ist folgende: der <CODE>ipppd</CODE> startet beim
Connect bzw. Disconnect das
Skript <CODE>/etc/ppp/ip-up</CODE> bzw. <CODE>ip-down</CODE>.
Aufgrund eines kleinen Fehlers im offiziellen <CODE>ipppd</CODE>,
der in der CVS-Version und ab SuSE 5.2 behoben ist, ist die
Überprüfung auf Ausführbarkeit fehlerhaft, woraufhin
trotzdem versucht wird, das Skript zu starten.
Nach der Fehlermeldung passiert genau nichts.
Allerdings sollte die Meldung trotzdem beachtet werden,
denn da wir dynamische IP-Nummern benutzen, muß das
Routing angepaßt werden, was genau über diese Skripte
geschehen soll, die hier nicht vorhanden sind.
<!--
ipppd!Debugging
-->
<!--
ISDN!ipppd!Debugging
-->
</LI>
<LI> Die Einwahl klappt nicht.
Wenn die Einwahl nicht klappt, sieht man in
<CODE>/var/log/messages</CODE> meist nur, daß die Gegenstelle
aufgelegt hat. Um den Grund für das Problem zu ermitteln,
braucht man mehr Meldungen vom LCP. Dazu trägt man in
<CODE>/etc/ppp/ioptions</CODE> folgendes ein
<BLOCKQUOTE><CODE>
<PRE>
# Definiere "debug", um möglichst viele Informationen
# in /var/log/messages zu erhalten.
debug
# Definiere "+pwlog", um auch Paßworter in
# /var/log/messages zu speichern
#+pwlog
</PRE>
</CODE></BLOCKQUOTE>
und startet den <CODE>ipppd</CODE> neu.
Durch <CODE>debug</CODE> werden die LCP-Messages ausgegeben,
durch <CODE>+pwlog</CODE> kann man sich zusätzlich das
verschickte Paßwort angeben lassen - letzteres wird nur
empfohlen, wenn ansonsten alles richtig scheint, denn
wenn jemand fremdes Zugriff auf <CODE>/var/log/messages</CODE>
bekäme, hätte man ein echtes Problem.
<P>Häufige Ursachen für Probleme sind:</P>
<P>
<UL>
<LI> Username/Paßwort falsch:
<P>In diesem Fall wird etwas in dieser Art protokolliert:
<BLOCKQUOTE><CODE>
<PRE>
ipppd[10314]: sent [0][PAP AuthReq id=0x1 user="kfr" password="falsch"]
ipppd[10314]: rcvd [0][PAP AuthNak id=0x1msg=""]
ipppd[10314]: Remote message:
ipppd[10314]: PAP authentication failed
</PRE>
</CODE></BLOCKQUOTE>
Richtig sollte es so aussehen:
<BLOCKQUOTE><CODE>
<PRE>
ipppd[7840]: sent [0][PAP AuthReq id=0x1 user="kfr" password="isdnworkshop"]
ipppd[7840]: rcvd [0][PAP AuthAck id=0x1msg=""]
ipppd[7840]: Remote message:
ipppd[7840]: bundle, he: 0 we: 0
</PRE>
</CODE></BLOCKQUOTE>
</P>
</LI>
<LI> LCP-Messages werden nicht beantwortet:
<P>Normalerweise werden LCP-Messages gesendet und empfangen,
um das Handshaking durchzuführen (send, rcvd):
<BLOCKQUOTE><CODE>
<PRE>
ipppd[10314]: sent [0][LCP ConfReq id=0x1 <mru 1524> <magic0x93ade903>]
ipppd[10314]: rcvd [0][LCP ConfReq id=0x1 <mru 1524> <auth pap>
<MPdiscr: 0x3 [ 00 c0 7b 70 d5 fa ]>]
</PRE>
</CODE></BLOCKQUOTE>
Wenn die Gegenseite nicht antwortet, kann es sein, daß
sie nicht schnell genug hochkommt (<CODE>lcp-restart</CODE>
erhöhen) oder kein passender PPP-Daemon dort läuft.
Ist dies nicht nur ein temporäres Problem, ist entweder
die Nummer falsch, oder der ISP bietet tatsächlich kein
syncPPP an.</P>
<P>Im letzteren Fall muß man asyncPPP fahren, siehe:
<BLOCKQUOTE><CODE>
<A HREF="http://www.suse.de/Support/sdb/ppp_async.html">http://www.suse.de/Support/sdb/ppp_async.html</A></CODE></BLOCKQUOTE>
</P>
</LI>
<LI> Noch während der LCP-Messages legt die Gegenstelle
auf.
<P>Hierbei sollte man am Protokoll erkennen, welche
Optionen angefordert oder abgewiesen werden. Danach
bleibt einem nur der mühsame Weg, diese Optionen
zu setzen/deaktivieren, siehe Beispiel-Optionsfile
und <CODE>man ipppd</CODE>.</P>
</LI>
<LI> <CODE>peer refused to authenticate</CODE>
<P>Man hat selbst <CODE>+pap</CODE> oder <CODE>+chap</CODE> angegeben.
Ein häufiges Mißverständnis: Diese Optionen geben
an, daß man selber der Authentifizierungs-Server sein
möchte, nicht, daß man PAP oder CHAP benutzen möchte;
letzteres geschieht nur implizit durch die
Angabe von <CODE>user</CODE>,
<CODE>name</CODE> und den Eintragungen in
<CODE>pap-secrets</CODE> bzw. <CODE>chap-secrets</CODE>.</P>
</LI>
</UL>
</P>
</LI>
<LI>Die Einwahl klappt, weitere Tests:
<P>
<UL>
<LI> Zunächst vergleiche man die Ausgabe des <CODE>ipppd</CODE> mit
der Ausgabe von <CODE>ifconfig</CODE>. Die IP-Nummern
müssen übereinstimmen und gegenüber der Grundeinstellung
verändert sein.</LI>
<LI> Ist das Routing richtig gesetzt? Prüfe <CODE>route -n</CODE>,
siehe Abschnitt
<A HREF="DE-ISDN-HOWTO-7.html#DE-ISDN-HOWTO-routing">Routing</A>. Es muß eine Hostroute für den
PtP-Partner gesetzt sein.</LI>
<LI> Versuche die Gegenstelle anzupingen,
z.B. <CODE>ping 193.102.150.13</CODE>.</LI>
<LI> Warte, bis die Verbindung automatisch abbricht und
prüfe die Routingtabelle erneut.</LI>
<LI>Beobachte, ob wieder automatisch gewählt wird. </LI>
</UL>
</P>
</LI>
</OL>
</P>
<H2><A NAME="DE-ISDN-HOWTO-uebungPPP"></A> <A NAME="ss5.5">5.5</A> <A HREF="DE-ISDN-HOWTO.html#toc5.5">Übung: syncPPP-Verbindung herstellen </A>
</H2>
<P>Ziel dieser Übung ist, ein PPP-Verbindung aufzubauen und zu
testen (kein Routing).
<OL>
<LI> Stelle eine Verbindung zu einem syncPPP-Server her.
Wenn Du keinen anderen kennst, benutze den SuSE
ISDN-Testrechner mit folgenden Daten:
<UL>
<LI> Protokoll: syncPPP</LI>
<LI> Telefon: +49 911 3206726</LI>
<LI> Username: suse</LI>
<LI> Paßwort: linux</LI>
<LI> IP-Nummer Server: 192.168.0.1</LI>
<LI> IP-Nummer Client: 192.168.0.99</LI>
</UL>
</LI>
<LI> Gehe die Checkliste durch und führe die dortigen Tests
aus, siehe Abschnitt
<A HREF="#DE-ISDN-HOWTO-syncPPPtrouble">syncPPP Troubleshooting</A>.</LI>
<LI> Prüfe die IP-Nummer(n) des Servers; wenn diese fest sind,
ändere die Konfiguration entsprechend.</LI>
</OL>
</P>
<HR>
<A HREF="DE-ISDN-HOWTO-6.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-ISDN-HOWTO-4.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-ISDN-HOWTO.html#toc5"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>
|