On Wed, Jan 02, 2002 at 01:45:35PM +0100, Matthias Petermann wrote:
Haloo Matthias,
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 255.255.255.0 UG 1 0 0 eth0
^^^^^^^^^^^^^^
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
Ich hab mir mal die Netzmasken angesehen und wenn ich das richtig verstanden habe, werden in o.g. Konfiguration nur die Adressen des lokalen Netzes über den Gateway geschickt(?) Hinzugefügt habe ich deshalb folgende Route:
bash-2.04# route add default gw 192.168.0.1 netmask 0.0.0.0 metric 1
Ja, das unterstichene sollte wohl 0.0.0.0 heissen. Genau richtig gesehen.
woraus folgt:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 255.255.255.0 UG 1 0 0 eth0 (*)
Die kannst du dann weglassen. Wo kommt die überhaupt her?
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.0.1 0.0.0.0 UG 1 0 0 eth0
Damit funktioniert das Routing über den Masq-Server.
Gratulation ;-)
Nun dachte ich aber, dass sich damit die erste Route (*) erübrigt hat
jo, eben
- aber nein:
wenn ich diese entferne geht wieder nichts mehr.
häh? Kann nicht sein. Route 1 ist nur zuständig für Ziele mit einer IP von 0.0.0.* Diese schickt route 1 an 192.168.0.1. Hättest du route 1 weggelassen käme bei diesen Zielen Route 4 zum Zug, die aber das gleiche Ziel hat. Also ist Route 1 überflüssig.
Hab ich da die Funktion von Netzmasken falsch verstanden?
nein
So wie ich mir das angelesen habe sollen die wohl dazu da sein, um bei Erfüllung der Maske durch die IP unter 'Destination' die zugehörigen Pakete über den danebenstehenden Gateway zu leiten.
naja, unter "Erfüllung der Maske durch die IP" kann ich mir nix vorstellen.
Das ganze funzt etwa so:
Ein Paket hat eine Zieladresse X. Für jede Zeile in der Routingtabelle erfolgt folgendes: { X wird mit der Netzmaske bitweise UND-verknüpft --> ergibt Y Y wird mit Destination verglichen bei Gleichheit --> die Route is ein Kandidat für das Paket X bei Ungleichheit --> route is nicht relevant } Von den Kandidaten fliegen alle die raus, die eine kleinere Netzmaske als andere Kandidaten haben. ("most specific route" bleibt übrig) Diese wird genommen. (Falls mehrere mit gleicher Netzmaske übrig bleiben wird die mit der kleinsten Metric genommen)
3 Beispiele nach deiner Tabelle:
Nr. Destination Gateway Genmask Iface 1. 0.0.0.0 192.168.0.1 255.255.255.0 eth0 (*) 2. 192.168.0.0 0.0.0.0 255.255.255.0 eth0 3. 127.0.0.0 0.0.0.0 255.0.0.0 lo 4. 0.0.0.0 192.168.0.1 0.0.0.0 eth0
------------ Ziel X=192.168.0.20 (X & Netzmaske) passt auf Destination? 1. 192.168.0.0 nein 2. 192.168.0.0 ja 3. 192.0.0.0 nein 4. 0.0.0.0 ja
Wir haben 2 Kandidaten, die Routen 2 und 4. Route 2 hat die größere netmask, wird also genommen. Das Paket geht direkt (ohne weitere gates über eth0 zum Ziel X) Das ist der Verkehr im lokalen Netz.
------------ Ziel X=1.2.3.4 (X & Netzmaske) passt auf Destination? 1. 1.2.3.0 nein 2. 1.2.3.0 nein 3. 1.0.0.0 nein 4. 0.0.0.0 ja
Wir haben nur einen Kandidaten, die Route 4. Also geht das Paket über eth0 ans gateway 192.168.0.1. Dieses Gate kümmert sich dann um den weiteren Weg. Das ist der Fall von Verkehr aus dem lokalen Netz raus ins Internet.
-------- Ziel X=0.0.0.4 (X & Netzmaske) passt auf Destination? 1. 0.0.0.0 ja 2. 0.0.0.0 nein 3. 0.0.0.0 nein 4. 0.0.0.0 ja
Wir haben also 2 kandidaten, die Routen 1 und 4. Da Route 1 die größere Netzmaske hat wird diese genommen. Das ist genau der Fall, wo Route 1 überflüssigerweise genutzt wird. Route 4 hätte das gleiche getan.
Reinhard