This file is indexed.

/usr/share/doc/HOWTO/de-html/DE-ISDN-HOWTO-7.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
<!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: Routing       </TITLE>
 <LINK HREF="DE-ISDN-HOWTO-8.html" REL=next>
 <LINK HREF="DE-ISDN-HOWTO-6.html" REL=previous>
 <LINK HREF="DE-ISDN-HOWTO.html#toc7" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-ISDN-HOWTO-8.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-ISDN-HOWTO-6.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-ISDN-HOWTO.html#toc7"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="DE-ISDN-HOWTO-routing"></A> <A NAME="s7">7.</A> <A HREF="DE-ISDN-HOWTO.html#toc7">Routing       </A>      <!--ISDN!Routing-->      <!--Routing-->      <!--Netzwerk!Routing-->    </H2>


<P>    </P>

<H2><A NAME="DE-ISDN-HOWTO-routingWas"></A> <A NAME="ss7.1">7.1</A> <A HREF="DE-ISDN-HOWTO.html#toc7.1">Was ist Routing?     </A>
        </H2>

<P>In einem lokalen Netzwerk ist das Leben einfach: wenn ein 
TCP/IP-Paket zu einem anderen Rechner gesendet werden soll, 
wird dieses auf dem Ethernet verschickt. </P>
<P>Ist der Rechner an das Internet 
oder an ein gr&ouml;&szlig;eres Netzwerk (WAN) angeschlossen, ist die 
Aufgabe schon etwas schwieriger, denn wenn der Ziel-Rechner
bzw. die Ziel-IP-Nummer nicht im lokalen Ethernet erreichbar ist, 
so mu&szlig; 
dem Kernel gesagt werden, da&szlig; alle nicht lokal zustellbaren
Pakete freundlicherweise von einem Gatewayrechner
weitergeleitet werden.</P>
<P>Komplizierter ist es, wenn der betreffende Rechner selbst ein
Gatewayrechner ist und mehrere Netzdevices wie Ethernetkarten,
Modems, ISDN-Karten etc. zur Verf&uuml;gung hat und jeweils &uuml;ber diese
Devices unterschiedliche Rechner/Netze erreichbar sind. 
Das ist die Aufgabe vom Routing:</P>
<P>
<BLOCKQUOTE>
F&uuml;r jede IP-Nummer mu&szlig; definiert werden, auf welchem 
Weg (Route) diese erreicht werden kann.
</BLOCKQUOTE>
</P>
<P>Man unterscheidet folgende Typen:</P>
<P>
<DL>
<DT><B>Netzrouten</B><DD>
<P>Hier wird angeben, wie ein komplettes Netz erreichbar
ist. Als <EM>Beispiel 1</EM> wollen wir von einem lokalen
Ethernet ausgehen, wobei das Netz 192.168.1.0
mit der Netmask 255.255.255.0 &uuml;ber das Device 
<CODE>eth0</CODE> erreichbar ist.</P>

<DT><B>Hostrouten</B><DD>
<P>Man definiert, wie ein einzelner Rechner erreichbar ist.
So ist der Rechner 192.168.0.1 in <EM>Beispiel 2</EM>
mittels einer syncPPP Verbindung &uuml;ber das Device
<CODE>ippp0</CODE> erreichbar.</P>

<DT><B>Default-Route</B><DD>
<P>
<!--
Default Route
-->

<!--
Netzwerk!Default Route
-->

Im Internet gibt es recht viele IP-Nummern - es ist daher
m&uuml;hsam und langweilig, f&uuml;r alle einzelnen IP-Nummern oder
Netze einzelne Routing-Eintr&auml;ge zu machen. Daher gibt
es die M&ouml;glichkeit, zu sagen, da&szlig; alle IP-Nummern, f&uuml;r
die keine spezielle Regel vorhanden ist, an den Rechner mit
der IP-Nummer 192.168.0.1 geschickt werden sollen. Dieses
ist <EM>Beispiel 3</EM>.</P>
<P>Wobei beachtet werden sollte, da&szlig; es im allgemeinen keinen 
Sinn macht, mehr als eine Default-Route anzugeben.</P>
</DL>
    </P>

<H2><A NAME="DE-ISDN-HOWTO-routingWie"></A> <A NAME="ss7.2">7.2</A> <A HREF="DE-ISDN-HOWTO.html#toc7.2">Wie konfiguriert man das Routing?     </A>
        </H2>

<P>Die Routingeintr&auml;ge werden dem Kernel zur Laufzeit
mit dem Kommando <CODE>route</CODE> mitgeteilt und wieder entzogen.</P>

<H3>SuSE Methode                <!--/etc/route.conf-->               <!--/sbin/init.d/route-->               <!--Routing!/etc/route.conf-->               <!--Routing!/sbin/init.d/route-->               <!--Netzwerk!Routing!/etc/route.conf-->               <!--Netzwerk!Routing!/sbin/init.d/route-->            </H3>

<P>Bei SuSE k&ouml;nnen die Routingeintr&auml;ge fest in die Datei 
<CODE>/etc/route.conf</CODE>
eingetragen werden, die beim Booten oder durch einen
Runlevelwechsel vom Skript 
<CODE>/sbin/init.d/route</CODE> ausgewertet wird.</P>
<P>Die Eintr&auml;ge f&uuml;r die obigen Beispiele sehen so aus:
<BLOCKQUOTE><CODE>
<PRE>
# Beispiel 1:
192.168.1.0     0.0.0.0     255.255.255.0   eth0
# Beispiel 2:
192.168.0.1     0.0.0.0     255.255.255.255 ippp0
# Beispiel 3:
default         192.168.0.1
            
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Die <EM>1. Spalte</EM> gibt das Ziel an, also das Netz, die IP-Nummer, 
oder das Schl&uuml;sselwort <CODE>default</CODE>.
In der <EM>3. Spalte</EM> steht, falls notwendig, die zugeh&ouml;rige 
Netmask.
Die <EM>2. Spalte</EM> legt den Gatewayrechner fest, an den die 
Anfragen geschickt werden sollen. 
In der <EM>4. Spalte</EM> steht das zu verwendene Device.</P>
<P>Hier sieht man auch in der 3. Zeile, 
da&szlig; bei Verwendung eines Gatewayrechners die Angabe des Devices
nicht n&ouml;tig ist, da sie selbst&auml;ndig ermittelt wird.
Allerdings mu&szlig; in diesem Beispiel die Hostroute auf
192.168.0.1 definiert sein, bevor man sie zum Setzen
der Defaultroute nutzen kann. Die Reihenfolge
ist wichtig.</P>
<P>Um die Routingtabelle manuell zu setzen oder zu l&ouml;schen,
gibt man folgendes ein:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
/sbin/init.d/route start
/sbin/init.d/route stop
            
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H3>Manuelle Methode                <!--Routing!route-->               <!--Netzwerk!Routing!route-->            </H3>


<P>Nat&uuml;rlich kann man die einzelnen Routing-Eintr&auml;ge auch manuell
mit dem <CODE>route</CODE> Befehl setzen:
<BLOCKQUOTE><CODE>
<PRE>
# Beispiel 1:
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
# Beispiel 2:
route add -host 192.168.0.1 dev ippp0
# Beispiel 3:
route add default gw 192.168.0.1 
            
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Weitere Informationen zu <CODE>route</CODE> finden sich in
<CODE>man route</CODE>.</P>

<H3>L&ouml;schen von Routing-Eintr&auml;gen             </H3>

<P>Routing-Eintr&auml;ge k&ouml;nnen zum einem direkt gel&ouml;scht werden,
sie werden aber auch automatisch gel&ouml;scht, wenn das 
zugrundeliegende Netzdevice gel&ouml;scht oder umkonfiguriert wird.</P>
<P>Dies hat in diesem Zusammenhang einen unerw&uuml;nschten Nebeneffekt.
Der <CODE>ipppd</CODE> baut die Verbindung auf und bekommt eine
neue IP-Nummer vom Server zugewiesen, wobei selbst&auml;ndig
eine neue Hostroute auf die IP-Nummer des Gegners
eingerichtet wird.</P>
<P>Allerdings wird eine eventuell vorhandene Defaultroute &uuml;ber 
dieses Device gel&ouml;scht. </P>
<P>Durch die PPP-Option <CODE>defaultroute</CODE>
k&ouml;nnte man sich automatisch wieder eine Defaultroute 
anlegen lassen.
Allerdings ist diese Methode nicht sehr flexibel,
vielleicht will man ja doch keine Defaultroute, und man
h&auml;tte hiermit keine M&ouml;glichkeit zu steuern, wie sich beim
Verbindungsabbau verhalten werden soll.
Daher wird beim Verbindungauf- und abbau jeweils ein
Skript gestartet, siehe Abschnitt 
<A HREF="#DE-ISDN-HOWTO-ipup">Kontrollieren der Routingtabelle beim Verbindungsauf- und              abbau</A>.</P>

<H2><A NAME="DE-ISDN-HOWTO-ipup"></A> <A NAME="ss7.3">7.3</A> <A HREF="DE-ISDN-HOWTO.html#toc7.3">Kontrollieren der Routingtabelle beim         Verbindungsauf- und abbau     </A>
     </H2>

<H3>Die Skripte ip-up/ip-down            <!--ipppd!/etc/ppp/ip-up-->           <!--ipppd!/etc/ppp/ip-down-->           <!--/etc/ppp/ip-up-->           <!--/etc/ppp/ip-down-->           <!--ISDN!ipppd!/etc/ppp/ip-up-->           <!--ISDN!ipppd!/etc/ppp/ip-down-->            <!--PPP!/etc/ppp/ip-up-->           <!--PPP!/etc/ppp/ip-down-->        </H3>

<P>Der <CODE>ipppd</CODE> bietet die einfache M&ouml;glichkeit,
beim Verbindungsaufbau das Skript 
<CODE>/etc/ppp/ip-up</CODE> und beim Abbau
<CODE>/etc/ppp/ip-down</CODE> zu starten, wobei jeweils
die folgenden Parameter &uuml;ber den neuen Zustand 
&uuml;bergeben werden:</P>
<P>
<UL>
<LI> <CODE>$1</CODE>: Interface</LI>
<LI> <CODE>$2</CODE>: Device</LI>
<LI> <CODE>$3</CODE>: Geschwindigkeit 
(nur aus Kompatibilit&auml;tsgr&uuml;nden)</LI>
<LI> <CODE>$4</CODE>: lokale IP-Nummer</LI>
<LI> <CODE>$5</CODE>: IP-Nummer des Gegners</LI>
</UL>
</P>
<P>Durch Installation geeigneter Skripte kann also die
Default-Route neu gesetzt werden.
Die Skripte k&ouml;nnten jeweils so aussehen:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
/sbin/route add default gw $5
        
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Bei SuSE gibt es ein Skript <CODE>/etc/ppp/ip-up</CODE>,
welches f&uuml;r den <EM>Hausgebrauch</EM> ausreicht. Die
Routen werden aufgrund der Konfigurationsdateien
gesetzt und wieder hergestellt. Weitere Kommandos
k&ouml;nnen vom Administrator eingef&uuml;gt werden, um z.B. E-Mails
zu verschicken.</P>
<P>Das Skript <CODE>ip-down</CODE> ist ein symbolischer Link auf
<CODE>ip-up</CODE>, so da&szlig; man nur eine Datei zu verwalten hat.</P>

<H3>Was machen die Skripte ip-up/ip-down?             </H3>

<P>Es wird gepr&uuml;ft, ob das Interface <CODE>ipppx</CODE> ist; sollte also bei 
Analog-PPP nicht st&ouml;ren. Wer dort etwas eintragen will, 
sollte die Stelle leicht finden.</P>
<P>Wenn das Skript nach dem Verbindungsaufbau als 
<CODE>ip-up</CODE> aufgerufen wird, 
wird eine Default-Route auf die gerade zugewiesene IP-Nummer
gesetzt.</P>
<P>Wenn das Skript nach dem Abbau der Verbindung als <CODE>ip-down</CODE> 
aufgerufen wird, dann wird das Interface gel&ouml;scht.
Das Interface wird wie in <CODE>/etc/rc.config</CODE>
wieder neu angelegt, es wird also wieder auf die 
urspr&uuml;nglichen IP-Nummer gesetzt.
Nach den Angaben in <CODE>/etc/route.conf</CODE> werden die 
Routingeintr&auml;ge f&uuml;r dieses Device neu eingerichtet.
Somit ist dial-on-demand wieder m&ouml;glich.
Ist dort keine Default-Route angegeben, wird auch keine gesetzt.</P>
<P>Falls dial-on-demand nicht gew&uuml;nscht wird, so darf in
der Datei <CODE>/etc/route.conf</CODE> bzw. in YaST keine 
Default-Route (Default-Gateway) angegeben werden. Dadurch
existiert nur w&auml;hrend einer Verbindung eine Default-Route; diese
wird beim Verbindungsabbau gel&ouml;cht und nicht neu angelegt.
Die Verbindung kann dann manuell oder durch ein Skript mit
dem Kommando
<BLOCKQUOTE><CODE>
<PRE>
isdnctrl dial ippp0
</PRE>
</CODE></BLOCKQUOTE>
 
aufgebaut werden. Alternativ geht dieses auch durch das
manuelle Setzen der Default-Route.</P>
<P>Dadurch kann z.B. auch erreicht werden, da&szlig; mit verschiedenen
Providern gearbeitet wird. In dem Fall mu&szlig; man ja 
sowieso entscheiden, welche
Verbindung nun hochgefahren werden soll, z.B.: 
<BLOCKQUOTE><CODE>
<PRE>
isdnctrl dial ippp17
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="DE-ISDN-HOWTO-uebungRoute"></A> <A NAME="ss7.4">7.4</A> <A HREF="DE-ISDN-HOWTO.html#toc7.4">&Uuml;bung: Kontrolliere die IP-Nummer und die Routing-Tabelle     </A>
        </H2>

<P>Folgende &Uuml;bung sollte jetzt durchlaufen werden:
<OL>
<LI>&Uuml;berwache, wie in Abschnitt 
<A HREF="DE-ISDN-HOWTO-3.html#DE-ISDN-HOWTO-lessVLM">Betrachte messages</A>
beschrieben, die Datei <CODE>/var/log/messages</CODE>.</LI>
<LI>Pr&uuml;fe <CODE>ip-up</CODE> und <CODE>ip-down</CODE>:
<P>
<BLOCKQUOTE><CODE>
<PRE>
# ls -la /etc/ppp/ip-*
lrwxrwxrwx   1 root     root            5 Mar 20 10:16 /etc/ppp/ip-down -> ip-up
-rwxr-xr-x   1 root     root         1813 Mar 24 23:03 /etc/ppp/ip-up
            
</PRE>
</CODE></BLOCKQUOTE>

Siehe auch Abschnitt 
<A HREF="DE-ISDN-HOWTO-11.html#DE-ISDN-HOWTO-installation">Installation</A>.</P>

</LI>
<LI>Pr&uuml;fe die IP-Nummern und die Routingtabelle <EM>vor</EM>
einer Verbindung
<P>
<BLOCKQUOTE><CODE>
<PRE>
# ifconfig ippp0
ippp0     Link encap:Point-Point Protocol  
inet addr:192.168.0.99  P-t-P:192.168.0.1  Mask:255.0.0.0
UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
            
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.1     0.0.0.0         255.255.255.255 UH    0      0        0 ippp0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        2 lo
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 ippp0
            
</PRE>
</CODE></BLOCKQUOTE>
</P>


</LI>
<LI>Nun sollte man eine Verbindung initiieren.
Dazu kann man entweder ein Paket z.B. mit
<CODE>ping 141.1.1.1</CODE> verschicken oder das W&auml;hlen direkt 
mit dem Befehl
<BLOCKQUOTE><CODE>
<PRE>
isdnctrl dial ippp0
</PRE>
</CODE></BLOCKQUOTE>

verlangen.

Als Beispiel bekommen wir die IP-Nummer 
1.2.3.4 zugewiesen, der Gegner habe die
IP-Nummer 5.6.7.8 .
</LI>
<LI>Pr&uuml;fe die IP-Nummer und die Routingtabelle <EM>w&auml;hrend</EM>
einer Verbindung
<P>
<BLOCKQUOTE><CODE>
<PRE>
# ifconfig ippp0
ippp0     Link encap:Point-Point Protocol  
inet addr:1.2.3.4  P-t-P:5.6.7.8  Mask:255.0.0.0
UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
RX packets:2 errors:0 dropped:0 overruns:0
TX packets:3 errors:0 dropped:0 overruns:0
            
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
5.6.7.8         0.0.0.0         255.255.255.255 UH    0      0        0 ippp0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        2 lo
0.0.0.0         5.6.7.8         0.0.0.0         UG    0      0        0 ippp0
            
</PRE>
</CODE></BLOCKQUOTE>
</P>

</LI>
<LI> Wir gehen in die gro&szlig;e weite Welt:
<P>Bestimme eine existierende IP-Nummer; die einzige,
die ich mir merken kann, ist die des DNS-Server von
ECRC: 
<BLOCKQUOTE><CODE>
<PRE>
traceroute -n 141.1.1.1
</PRE>
</CODE></BLOCKQUOTE>

Man beachte, da&szlig; wir noch keinen DNS-Servive benutzen
k&ouml;nnen, daher <CODE>-n</CODE>.</P>

</LI>
<LI>Jetzt wartet man auf den Timeout, bis aufgelegt wird, und
betrachtet die Datei <CODE>/var/log/messages</CODE>, z.B.:
<BLOCKQUOTE><CODE>
<PRE>
kernel: isdn_net: local hangup ippp0
kernel: ippp0: Chargesum is 0
isdnlog: Apr 03 09:20:49   tei 70 calling Eunet-N with KfrI I  Normal call clearing (User) 
ipppd[135]: Modem hangup
ipppd[135]: Connection terminated.
ipppd[135]: taking down PHASE_DEAD link 0, linkunit: 0
ipppd[135]: sent [0][LCP TermReq id=0x2 6c 69 6e 6b 20 63 6 c 6f 73 65 64]
ipppd[135]: LCP is down
ipppd[135]: link 0 closed , linkunit: 0
ipppd[135]: reinit_unit: 0 
ipppd[135]: Connect[0]: /dev/ippp0, fd: 6
            
</PRE>
</CODE></BLOCKQUOTE>

            </LI>
<LI>IP-Nummern und Routing pr&uuml;fen:
<P>sie m&uuml;ssen jetzt wieder genauso gesetzt sein, wie
<EM>vor</EM> dem Verbindungsaufbau.</P>

</LI>
</OL>
</P>

<HR>
<A HREF="DE-ISDN-HOWTO-8.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-ISDN-HOWTO-6.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-ISDN-HOWTO.html#toc7"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>