zwei Netzwerkkarten - zwei default Gateways

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
langhans
Beiträge: 93
Registriert: 04.07.2004 14:20:46

zwei Netzwerkkarten - zwei default Gateways

Beitrag von langhans » 06.11.2014 11:16:23

Hallo,

in meinem Rechner habe ich zwei Netzwerkkarten, eine um den Rechner mit dem Internet zu verbinden (eth0) und eine fürs lokale Netzwerk (eth1). Da ich nicht immer online sein will, schalte ich die eth0 nur zum surfen ein, sonst ist diese Karte "down".
wicd ist zwar sehr schön, bringt mir aber ständig meine routing-Tabelle durcheinender, deshalb benutze ich ifup / ifdown.
Zur Zeit habe ich wheezy auf dem Rechner. Unter lenny hatte ich zwei default-gateways eingestellt und mit einem eigenen Programm, das "ifup eth0" und "ifdown eth0" ausführt, mich mit der fritzbox verbunden bzw. die Verbindung getrennt.
Wie ich jetzt gelernt habe, darf man nicht zwei default Gateways in einem System haben. Dass dies bei lenny funktionierte, war wohl reiner Zufall. Unter wheezy gehts nicht mehr. Deshalb habe ich meine Netzwerkeinstellungen gemäß Anleitung "http://www.thomas-krenn.com/de/wiki/Zwe ... nem_System" eingestellt.

Wenn ich nun in VirtualBox mein Gastsystem (MS-Win) starte, kann sich dieses nicht mit meinem lokalen Netzwerk verbinden. Erst wenn ich ein

Code: Alles auswählen

route add default gw 192.168.1.2 eth1
ausführe, klappt die Verbindung. Danach kann ich mich aber nicht mehr mit dem Internet verbinden. Dazu muss ich manuell den default Gateway löschen und

Code: Alles auswählen

route add default gw 192.168.178.1 eth0
eingeben. Auch kann ich kein ifdown eth0 mehr machen, es kommt die Fehlermeldung:

Code: Alles auswählen

ifdown: interface eth0 not configured
ifup eth0 bringt ein

Code: Alles auswählen

RTNETLINK answers: File exists
Failed to bring up eth0.
Es bringt auch nichts, den Netzwerkdämon neu zu starten, ich muss neu booten um die Ausgangskonfiguration wieder herzustellen.
Hier meine /etc/network/interfaces:

Code: Alles auswählen

# The loopback network interface
auto lo
iface lo inet loopback

# lokales Netzwerk
# über eth1
#--------------------------------------------------------------------
auto eth1
iface eth1 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    post-up ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2 table rt2
    post-up ip route add default via 192.168.1.1 dev eth1 table rt2
    post-up ip rule add from 192.168.1.2/32 table rt2
    post-up ip rule add to 192.168.1.2/32 table rt2

# Internet
# über eth0
#--------------------------------------------------------------------
iface eth0 inet static
    address 192.168.178.20
    netmask 255.255.255.0
    network 192.168.178.0
    broadcast 192.168.178.255
    gateway 192.168.178.1
Ich dachte, damit sind die routen und default-Gateways festgelegt.

ip r bringt:

Code: Alles auswählen

default via 192.168.178.1 dev eth0 
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.2 
192.168.178.0/24 dev eth0  proto kernel  scope link  src 192.168.178.20 
ip a:

Code: Alles auswählen

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:08:54:37:36:e3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.20/24 brd 192.168.178.255 scope global eth0
    inet6 fd00::208:54ff:fe37:36e3/64 scope global dynamic 
       valid_lft 7178sec preferred_lft 3578sec
    inet6 fe80::208:54ff:fe37:36e3/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:13:8f:e0:e5:f6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global eth1
    inet6 fe80::213:8fff:fee0:e5f6/64 scope link 
       valid_lft forever preferred_lft forever
Ich bin kein Netzwerkspezialist, und routing ist für mich ein Buch mit sieben Siegeln. Vielleicht weiß jemand, wo mein Fehler liegt.

Gruß
langhans

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von rendegast » 06.11.2014 13:43:52

auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
...

iface eth0 inet static
...
Da fehlt was?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

langhans
Beiträge: 93
Registriert: 04.07.2004 14:20:46

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von langhans » 06.11.2014 18:15:35

hallo rendegast,

meinst Du es fehlt

Code: Alles auswählen

auto eth0
Ich möchte nicht, dass ich sofort nach dem einloggen über eth0 mit dem internet verbunden bin, sondern erst wenn ich "ifup eth0" ausführe.

langhans
Beiträge: 93
Registriert: 04.07.2004 14:20:46

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von langhans » 28.01.2015 21:38:28

Hallo,

habe mich lange Zeit nicht mehr um dieses Problem gekümmert, da es halbwegs funktioniert. Das ist aber unbefriedigend und verstanden habe ich auch nicht, warum das so geht.
Ich benutze nm-applet für die Verbindung zum Internet.
Hier eine Beschreibung, wie es momentan läuft:
Variante 1: Erst VirtualBox starten, dann Verbindung zum Internet
nach dem booten:

Code: Alles auswählen

route -n
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
Nun VBox starten, client (win2000) verbindet sich über virtuelles Netzwerk (dhcp) mit host (wheezy).
route hat immer noch das gleiche Ergebnis wie oben.
Jetzt mit dem Internet verbinden (es wird nur eth0 verwaltet, da eth1 statisch in der /etc/network/interfaces eingetragen ist).
Nachdem die Verbindung zum Internet mit dem NetworkManager über eth0 hergestellt ist, ergibt ein

Code: Alles auswählen

route -n
0.0.0.0         192.168.178.1   0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.178.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
Die default-route ist nun die FritzBox. Trenne ich die Verbindung zum Internet ist das Ergebnis von route -n:

Code: Alles auswählen

Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
VBox-Client kann trotz fehlender default-route weiter über das Netzwerk auf die Dateien auf dem host zugreifen.

Variante 2: Erst Verbindung zum Internet, dann VBox starten
nach dem booten:

Code: Alles auswählen

route -n
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
Mit dem Internet verbinden

Code: Alles auswählen

route -n
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.178.1   0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.178.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
und die Verbindung wieder trennen.

Code: Alles auswählen

route -n
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
Das Ergebnis ist das gleiche wie bei Variante 1, es fehlt wieder die default-route. Starte ich jetzt VBox, kann sich der VBox-Client nicht über Netzwerk mit dem Host verbinden.
Ich muss erst ein "route add default gw 192.168.1.2 eth1" machen, damit das geht.

Code: Alles auswählen

Ziel            Router          Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
In welcher Datei sind die routen gespeichert? Wie kann ich das einstellen, dass immer eine default-route vorhanden ist?

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von r4pt0r » 29.01.2015 11:32:57

Einfachste Lösung: 2 Routingtabellen und per ip rules diese entsprechend "aktivieren".
Kombiniert mit fwmarks lassen sich so auch sehr fein granuliert einzelne dienste/ports/netze/IPs... über eigene routingtabellen abwickeln.

Entsprechende Skripte, die passende ip rules und ggf auch routen anlegen/löschen, lassen sich in /etc/network/if-[up|down].d/ ablegen.

Gute Erklärung wie das Grundgerüst aussehen kann:
https://www.thomas-krenn.com/de/wiki/Zw ... nem_System

Ich empfehle jeder rule auch explizit eine priorität zuzuweisen wenn diese per script angelegt werden, sonst kann es schnell passieren dass eine ausnahmeregel "hinter" einer "catchall"-regel landet und damit nicht mehr ausgeführt wird...

langhans
Beiträge: 93
Registriert: 04.07.2004 14:20:46

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von langhans » 09.02.2015 09:03:28

Habe das jetzt gem. Anleitung eingestellt, wenn ich mich jedoch mit dem Network Manager mit dem Internet verbinde und die Verbindung wieder trenne erhalte ich folgendes:

Code: Alles auswählen

route
Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1

ip route list table rt2
default via 192.168.1.1 dev eth1 
192.168.1.0/24 dev eth1  scope link  src 192.168.1.2 

ip rule show
0:      from all lookup local 
32764:  from all to 192.168.1.2 lookup rt2 
32765:  from 192.168.1.2 lookup rt2 
32766:  from all lookup main 
32767:  from all lookup default 
Starte ich danach VBox, kann sich der Client nicht mit dem Host verbinden. Offensichtlich will VBox die Routing-Tabelle rt2 nicht verwenden.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von r4pt0r » 09.02.2015 09:11:29

Bei solchen Setups ist der NetworkManager völlig überfordert und bringt nur Chaos in die Routingtabellen/regeln. Wirf den raus und bau das ganze statisch bzw über scripte in if-up.d/if-down.d.

Welches default gateway nutzt das Gastsystem? Wie ist das Netzwerk konfiguriert? (bridge oder NAT?)

langhans
Beiträge: 93
Registriert: 04.07.2004 14:20:46

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von langhans » 10.02.2015 17:03:59

Bin so ziemlich am verzweifeln. Habe jetzt das Netzwerk manuell, ohne NetworkManager eingerichtet.
Jetzt kann ich mich mit dem Internet verbinden, es funktioniert aber nur ein ping. Der DNS funktioniert offensichtlich nicht. Sonderbar ist, wenn ich im Browser (firefox) in die Adresszeile eingebe:

Code: Alles auswählen

134.99.128.40
dann steht als Ergebnis
Der Server unter http://www.uni-duesseldorf.de konnte nicht gefunden werden.
Gebe ich aber

Code: Alles auswählen

216.58.210.35
ein, dann wird "www.google.de" angezeigt.
Warum geht das bei google und nicht bei der uni-duesseldorf?
Und warum funktioniert mein DNS nicht? Ich habe das in die interfaces-Datei geschrieben:

Code: Alles auswählen

# This file describes the network interfaces available on your system
#--------------------------------------------------------------------

# The loopback network interface
auto lo
iface lo inet loopback

# lokales Netzwerk
# über eth1 
#--------------------------------------------------------------------
auto eth1
iface eth1 inet static
    address 192.168.1.2
    netmask 255.255.255.0
	post-up ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2 table rt2
	post-up ip route add default via 192.168.1.1 dev eth1 table rt2
	post-up ip rule add from 192.168.1.2/32 table rt2
	post-up ip rule add to 192.168.1.2/32 table rt2

# Internet
# über eth0 
#--------------------------------------------------------------------
#allow-hotplug eth0
iface eth0 inet static
    address 192.168.178.20
    netmask 255.255.255.0
    gateway 192.168.178.1 
    dns-nameservers 130.149.7.7 134.99.128.40 	#ns.tu-berlin.de www.uni-duesseldorf.de
Reicht das nicht aus? Oder muss ich zusätzlich in der resolv.conf was reinschreiben?

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von dufty2 » 10.02.2015 18:01:32

langhans hat geschrieben:

Code: Alles auswählen

    dns-nameservers 130.149.7.7 134.99.128.40 	#ns.tu-berlin.de www.uni-duesseldorf.de
Wie bist Du auf den "Trichter gekommen", die beiden zu verwenden?
Lösen die doch nur sich selbst auf.
Probier spassesmal (nur zum Testen)

Code: Alles auswählen

    dns-nameservers 8.8.8.8 8.8.4.4 # g**gle
Danke.

langhans
Beiträge: 93
Registriert: 04.07.2004 14:20:46

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von langhans » 10.02.2015 18:34:49

@ dufty2:
Ich dachte der erste Nameserver löst die Namen auf und wenn der mal ausfällt, hat man noch einen zweiten, zur Sicherheit also.
Aber Netzwerken ist nicht grad meine Stärke; ich freu mich immer wenns funktioniert, dann ändere ich nix mehr daran.
Deinen Vorschlag hab ich ausprobiert, es war das gleiche wie vorher, also bei
216.58.210.35
wurde die Google-Seite angezeigt, bei anderen Adressen konnte der Server nicht gefunden werden.

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von dufty2 » 10.02.2015 18:38:36

Bitte die Ausgabe von

Code: Alles auswählen

$ cat /etc/resolv.conf
posten.

langhans
Beiträge: 93
Registriert: 04.07.2004 14:20:46

Re: zwei Netzwerkkarten - zwei default Gateways

Beitrag von langhans » 11.02.2015 10:19:56

In der resolv.conf steht nix drin, nur eine Kommentarzeile
# Generated by NetworkManager
Das ist wohl noch ein Überbleibsel aus Zeiten in denen ich den Networkmanager benutzt habe. Deshalb dachte ich, die Zeile

Code: Alles auswählen

dns-nameservers 130.149.7.7
in der /etc/network/interfaces ersetzt den Eintrag in der resolv.conf. Wenn nicht, was bedeutet diese Zeile?
Auf einem anderen Rechner habe ich diesbezüglich festgestellt, dass der NetworkManager in die Datei resolv.conf was reinschreibt, wenn die Verbindung besteht und das wieder rauslöscht, wenn die Verbindung getrennt wird. Also habe ich in meine resolv.conf die router-Adresse reingeschrieben und jetzt funktioniert der DNS wieder.
Ich kann meine Verbindung zum Internet jetzt mit ifupdown herstellen, ohne NetworkManager.
Das ursprüngliche Problem besteht aber immer noch:
Wenn ich, nachdem ich mit dem Internet verbunden war und die Verbindung wieder getrennt wurde, in der VBox den Client w2k boote, kann der sich nicht mit dem Host verbinden (NAT). Im Client wird die Netzwerkadresse automatisch bezogen. Es fehlt die default-Route.

Code: Alles auswählen

route
Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
Die Routing Tabelle rt2 ist gem Anleitung (s.o.) eingerichtet.
Welche Einstellung fehlt jetzt noch?
Schonmal danke.

Antworten