Henryk Plötz: Routing mit Gentoo einrichten

Beitrag lesen

Moin,

Am entsprechenden Ausgang steckt ein Kabel fürs LAN. Auf die Ausgabe von ifconfig darf ich sicher verzichten. eth1 hat die 192.168.0.1 zugewiesen bekommen, eth0 bekommt seine aktuelle IP vom ISP (t-online) zugewiesen. Der Rechner geht online (ich schreibe gerade von ihm aus), im LAN funktioniert alles wie gewünscht. Nur die Sache mit dem Routing klappt eben (noch immer) nicht.

Genau das meine ich. Hier hast du mindestens ein Verständnisproblem, auf das ich hinweisen wollte: ISPs die tatsächlich DHCP auf der DSL-Strecke machen sind zumindest in Deutschland rar (mir fällt kein einziger ein), und insbesondere T-Online gehört nicht dazu.

Stattdessen wird PPPoE verwendet, welches gewissermaßen über die Ethernetverbindung die das DSL herstellt eine serielle Leitung emuliert auf der man dann ganz normal PPP macht, als wär's ein Modem. Am Ende kriegst du ein stinknormales ppp-Device (ppp0) und das kriegt als einziges Device eine (öffentliche) IP vom ISP zugewiesen. Auf der Strecke zwischen DSL-Modem und Netzwerkkarte wird nur Ethernetverkehr gebraucht und kein IP, es muss also keine IP-Adresse konfiguriert werden und insbesondere kein DHCP. (Der dhcp-Client hat zumindest in allen meinen Versuchen die unangenehme Eigenschaft gehabt das Interface kurzzeitig abzuschalten, wenn er keine Antwort kriegt, was die PPP-Software nicht lustig findet.)

Um das mal zu entwirren: Du hast eth0 und eth1, sowie später ein ppp0. eth0 ist mit dem internen Netz verbunden und kriegt von dir fest die Adresse 192.168.0.1 konfiguriert. eth1 ist mit dem Modem verbunden und darf keine Adresse konfiguriert kriegen, und auch kein DHCP. (Wenn du unbedingt willst kannst du da natürlich auch eine Adresse vergeben, aber sie _darf_ nicht aus dem 192.168.0.1/24-Netz stammen.) ppp0 kriegt später wenn die PPPoE-Verbindung steht eine öffentliche IP-Adresse vom Provider gestellt.

Gut. Das gibt aber nen bissel viel Zeugs ab. Zuerst der Netzwerkclient. Da läuft im Moment eine SuSE 9.2. die aktuelle Routingtabelle sieht so aus:
  pc2:~ # route -n
  Kernel IP routing table
  Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  192.168.0.0     192.168.0.1     255.255.255.0   UG    0      0        0 eth0
  192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
  169.254.0.0     0.0.0.0         255.255.0.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    0      0        0 eth0
  pc2:~ #
Das ist völlig korrekt.

Nein, ist es nicht. Die erste Zeile ist mindestens überflüssig, eher aber falsch. Man kann schlecht zu 192.168.0.0/24 eine Route über 192.168.0.1 als Gateway setzen, wenn man zum Erreichen von 192.168.0.1 eine Route zu 192.168.0.0/24 bräuchte, da beisst sich die Katze in den Schwanz. Ich weiss nicht ob sie irgendeine Wirkung hat, oder einfach nur ignoriert wird, aber auf jeden Fall kann sie keine gute Wirkung haben und muss ersatzlos gestrichen werden. Die dritte Zeile ... hmm, hast du irgendwo Geräte aus dem APIPA-Bereich (also 169.254.0.0/16). Hat eth0 auf dem Client eine Adresse aus dem Bereich? Wenn nicht, weg damit.

Aktive Routen:
  Netzwerkadresse      Subnet Mask  Gateway-Adresse    Schnittstelle  Anzahl
          0.0.0.0          0.0.0.0      192.168.0.1      192.168.0.3       1
        127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1       1
      192.168.0.0    255.255.255.0      192.168.0.3      192.168.0.3       1
      192.168.0.3  255.255.255.255        127.0.0.1        127.0.0.1       1
    192.168.0.255  255.255.255.255      192.168.0.3      192.168.0.3       1
        224.0.0.0        224.0.0.0      192.168.0.3      192.168.0.3       1
  255.255.255.255  255.255.255.255      192.168.0.3      192.168.0.3       1
Du siehst, auch das ist korrekt.

Das ist etwas unübersichtlich, aber korrekt (wenn ich nichts übersehen habe).

So, und jetzt zum Router/Host mit seinen beiden Schnittstellen. Statt "route -n" nehme ich gewohnheitsmäßig lieber netstat. Das liefert folgendes bei bestehender online-Verbindung:
  bash-2.05b# netstat -nr
  Kernel IP routing table
  Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
  217.5.98.87     0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
  192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
  127.0.0.0       127.0.0.1       255.0.0.0       UG        0 0          0 lo
  0.0.0.0         217.5.98.87     0.0.0.0         UG        0 0          0 ppp0
  bash-2.05b#

Ok, das stimmt.

iface_eth0="192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0"
  iface_eth1="dhcp"
  dhcpcd_eth1="..."
  iface_eth1="up"

Wie gesagt, mach das dhcp da weg, das bringt nichts, ausser eventuellen Problemen.

Einige Quellen, die man online nachlesen kann, behaupten, damit sollte bereits grundsätzlich ein "Routing" möglich sein.

Ist es auch. Herzlichen Glückwunsch dein Rechner routet jetzt.

(Moment, es geht gleich weiter, ich habe das Limit, wie groß ein posting erreichen darf, überschritten)

--
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~