ubuntuusers.de

problem mit up route in config

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

Sonie

Avatar von Sonie

Anmeldungsdatum:
1. Mai 2012

Beiträge: 133

Wohnort: Höchst im Odenwald

Ich habe hier folgendes Problem - PC mit zwei Netzwerkkarten - eine intern, eine für extern, aber er will die route nicht einrichten -

cat /etc/network/interfaces

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface for internal (got ip from 192.168.121.x)
  auto ens160
  iface ens160 inet dhcp

# The external network interface for internet access
auto ens224
iface ens224 inet static
	address 62.210.178.80
	netmask 255.255.255.0
	gateway 62.210.178.1

# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.121.6 192.168.121.7
dns-search mydomain.com

up route add -net 192.168.100.0/24 gw 192.168.121.2

das 192.168.100.0 ist ein weiteres netzwerk

die route wird aber bei einem neustart nicht gesetzt, führe ich diese über die Bash aus, geht es:

1
ip route add 192.168.100.0/24 via 192.168.121.2 dev ens160

ich suche nach der schreibweise, wie ich die route-anweisung in die datei /etc/network/interfaces bei neustart lade

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Die Option "up" gibt es nur im Kontext der Interface-Konfiguration, also so:

iface ens224 inet static
	address 62.210.178.80
	netmask 255.255.255.0
	gateway 62.210.178.1
	up route add -net 192.168.100.0/24 gw 192.168.121.2

Für die DNS-Optionen gilt AFAIK das gleiche.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9627

Wohnort: Münster

Ich sehe einige Probleme:

  1. Vermutlich wird per DHCP bei der Einrichtung von ens160 bereits eine Default-Route (=gateway) gesetzt. Diese Default-Route wird bei der Einrichtung von ens224 in der Zeile 14 überschrieben. Bist Du sicher, dass Du das willst?

  2. Das Programm route ist veraltet. Benutze ip route, auch in der Datei /etc/network/interfaces.

  3. Mit dem Befehl in Zeile 20 würde die Default-Route erneut überschrieben. Willst Du das? Jedenfalls macht die Kombination der Zeilen 14 mit 20 keinen Sinn.

  4. Dein manueller Befehl

    ip route add 192.168.100.0/24 via 192.168.121.2 dev ens160

    macht etwas anderes als der Befehl bei up. Was hindert Dich daran, ihn in der Datei /etc/network/interfaces zu verwenden? (Vorausgesetzt: Es gibt zu diesem Zeitpunkt bereits einen Leitweg zu 192.168.121.2.)

Ich würde es so machen, kann aber Dein Ziel nur vermuten:

up ip route add 192.168.100.0/24 via 192.168.121.2 dev ens160 || true

Zeige mal Deine Leitweg-Tabelle mit:

ip -4 route show

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9627

Wohnort: Münster

misterunknown schrieb:

Die Option "up" gibt es nur im Kontext der Interface-Konfiguration, […] Für die DNS-Optionen gilt AFAIK das gleiche.

Das ist richtig, allerdings sind Leerzeilen, Zeilen-Kommentare und Einrückungen in der Datei /etc/network/interfaces für die Software (ifup, ifdown) bedeutungslos. Die Datei ist syntaktisch schon ok, aber semantisch seltsam.

Sonie

(Themenstarter)
Avatar von Sonie

Anmeldungsdatum:
1. Mai 2012

Beiträge: 133

Wohnort: Höchst im Odenwald

das die default route von dhcp umgeschrieben wird, ist gewollt.

da ja von extern die anfragen kommen, bringt es nichts, diese intern zu routen

nur möchte ich die interne anfragen nicht über das externe netz bearbeiten sondern intern umleiten, diese können nur aus dem 192.168.x kommen.

ich hab das mal in /etc/network/interfaces ersetzt:

1
up ip route add 192.168.100.0/24 via 192.168.121.2 dev ens160 || true

vermutlich wäre eine route 192.168.0.0/16 auch sinnvoller.

Nach einem Neustart sieht es so aus: #route

1
2
3
4
5
Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
default         .               0.0.0.0         UG    0      0        0 ens224
62.210.178.0    *               255.255.255.0   U     0      0        0 ens224
192.168.121.0   *               255.255.255.0   U     0      0        0 ens160
1
ip route add 192.168.100.0/24 via 192.168.121.2
1
2
3
4
5
6
7
root@troi:~# route
Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
default         .               0.0.0.0         UG    0      0        0 ens224
62.210.178.0    *               255.255.255.0   U     0      0        0 ens224
192.168.100.0   192.168.121.2   255.255.255.0   UG    0      0        0 ens160
192.168.121.0   *               255.255.255.0   U     0      0        0 ens160

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Das heißt es funktioniert noch nicht? Auf meinen Systemen ist der Befehl immer mit komplettem Pfad angegeben, vielleicht liegt es noch daran:

up /sbin/ip route add ...

Sonie

(Themenstarter)
Avatar von Sonie

Anmeldungsdatum:
1. Mai 2012

Beiträge: 133

Wohnort: Höchst im Odenwald

misterunknown schrieb:

Das heißt es funktioniert noch nicht? Auf meinen Systemen ist der Befehl immer mit komplettem Pfad angegeben, vielleicht liegt es noch daran:

up /sbin/ip route add ...

nein. die route wird nicht ausgeführt... egal ob mit oder ohne pfad.

/etc/network/interfaces sieht jetzt so aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# The loopback network interface
auto lo
iface lo inet loopback

auto ens160 ens224

# The primary network interface
iface ens160 inet dhcp

# The external network interface
iface ens224 inet static
        address 62.210.178.80
        netmask 255.255.255.0
        gateway 62.210.178.1
        up /sbin/ip route add 192.168.100.0/24 via 192.168.121.2 dev ens160 || true

# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.121.6 192.168.121.7

Sonie

(Themenstarter)
Avatar von Sonie

Anmeldungsdatum:
1. Mai 2012

Beiträge: 133

Wohnort: Höchst im Odenwald

warum auch immer: so geht es:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# The loopback network interface
auto lo
iface lo inet loopback

auto ens160 ens224

# The primary network interface
iface ens160 inet dhcp
	up route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.121.2

# The external network interface
iface ens224 inet static
	address 62.210.178.80
	netmask 255.255.255.0
	gateway 62.210.178.1

# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.121.6 192.168.121.7

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9627

Wohnort: Münster

Könnte ein Laufzeitproblem sein: Wenn der Init-Prozess für ens244 den Leitweg setzen soll, obwohl für ens160 noch die DHCP-Abfrage läuft und daher 192.168.121.2 noch nicht erreichbar ist, kann natürlich die gewünschte Route für 192.168.100.0/24 über 192.168.121.2 nicht gesetzt werden. Bei Deiner letzten Version wird diese Operation sicher erst ausgeführt, nachdem der DHCP-Client Ergebnisse geliefert hat. Diese Version empfinde ich ohnehin logischer.

Verbanne das seit fast 20 Jahren bei Linux obsolete Programm route! Verwende ip route.

Ich würde, wie schon gesagt, die up-Zeile per " || true" absichern.

Antworten |