8 Stimmen

Wie mache ich meine Standardroute (oder jede andere statische Route) unter Linux (speziell Fedora 9) dauerhaft?

Ich habe gerade eine Neuinstallation der allerneuesten (Herbst 2008) Version von Fedora 9 Linux durchgeführt und bin verwirrt, dass die Standardroute nie richtig eingestellt wurde und dass es selbst auf den verschlungenen Wegen dieses Betriebssystems keinen offensichtlichen Weg gibt.

Natürlich ist es klar, dass man so etwas auch einmalig machen kann:

   route add default gw gw1 metric 0 eth0

oder so:

   ip route add to default via 192.168.2.1 protocol static

Keiner von beiden überlebt jedoch den Neustart. Beim Lesen von /etc/rc.d/init.d/network wird versucht, Daten aus einer Datei in /etc/sysconfig/static-routes zu finden, aber diese Datei hat nie existiert. Also habe ich versucht, sie zu erstellen und mit Daten zu füllen. Das Problem dabei ist, dass das Skript einen Bindestrich (Minuszeichen) an einer merkwürdigen Stelle einfügt, bei der ich mir nicht sicher bin, wie ich damit umgehen soll.

Natürlich kann man auch einfach /etc/rc.d/init.d/network editieren, aber das wäre nicht standardmäßig. So wie es aussieht, scheint mein einziger Ausweg darin zu bestehen, rc.local zu bearbeiten, aber das kommt nicht früh genug in der Boot-Sequenz, um für Dinge wie z.B. den Netzwerkzeit-Daemon da zu sein.

Ich habe meine Hausaufgaben gemacht - ich habe alle Manpages und Info-Einträge gelesen, Apropos ausprobiert und sogar ein bisschen im Web gesucht, alles ohne Erfolg - mein nächster Schritt, ohne Antwort hier, wird sein, mich bei den Fedora-Mailinglisten anzumelden und dort zu fragen! Oder ich gebe auf und editiere die Skripte.

Wie soll man das also machen?

0 Stimmen

Was steht in Ihren Dateien /etc/sysconfig/network und /etc/sysconfig/network-scripts/network-scripts?

0 Stimmen

Paul, das Netzwerk hat einen Eintrag für GATEWAY, und der ist korrekt. Es gibt einen Eintrag für IPV6_DEFAULTGW, der leer ist. network-scripts hat kein Unterverzeichnis oder eine Datei namens network-scripts, aber es gibt eine lot von Skripten dort! Eines heißt ifup-routes und nimmt nur ein Gerät; ist es das? -shrug-

0 Stimmen

Entschuldigung, ich meine /etc/sysconfig/network-scripts/ifcfg-eth0, nicht /etc/sysconfig/network-scripts/network-scripts

9voto

Paul Tomblin Punkte 172816

Das Gateway wird normalerweise in /etc/sysconfig/network-scripts/ifcfg-eth0 gesetzt, nicht in /etc/sysconfig/network. Zum Beispiel auf meinem aktuellen Rechner:

/etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=flyboys
NISDOMAIN=ekcineon

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
ONBOOT=yes
HWADDR=00:1d:09:31:3a:cc
NETMASK=255.255.255.0
IPADDR=150.102.65.30
GATEWAY=150.102.65.252
TYPE=Ethernet

Beachten Sie, dass ich HWADDR eingestellt habe, weil ich zwei Ethernet-Karten habe und sicherstellen möchte, dass eth0 die richtige Karte zugewiesen wird. Die Konfiguration für die zweite Karte befindet sich in /etc/sysconfig/network-scripts/ifcfg-eth1

0 Stimmen

Danke, Paul. Die Antwort lautet: Fügen Sie Ihre Gateway-Zeile in das Skript der entsprechenden Schnittstelle in /etc/sysconfig/network-scripts/ ein - genau wie Sie vorschlagen.

2voto

user6845878 Punkte 21

Bearbeiten Sie einfach die /etc/sysconfig/network-scripts/route-ethXX

und schreiben Sie hinein: standardmäßig via ip_address dev device ersetzen ip_Adresse con Ihre Gateway-IP y Gerät con den Namen des richtigen eth-Geräts . aber für die Gerät Option seine ... optional, setzen Sie es im Falle von mehreren eth-Geräten. Funktioniert auch im Falle eines Netzwerk-Neustarts, die Route-Direktive in rc.local funktioniert nur beim Booten.

1voto

zigdon Punkte 13865

Ich habe keine neueren Versionen von Fedora verwendet, aber es wurde oft als GATEWAY-Variable in /etc/sysconfig/network gesetzt.

Wenn Sie natürlich nur wollen, dass es funktioniert, können Sie die Befehle einfach in /etc/rc.local eintragen, damit sie ausgeführt werden, wenn die Boot-Sequenz abgeschlossen ist.

0 Stimmen

GATEWAY steht normalerweise in /etc/sysconfig/network-scripts/ifcfg-eth0, nicht in /etc/sysconfig/network.

0 Stimmen

Paul, zigdon hatte Recht, es gibt einen GATEWAY-Eintrag, aber er war die ganze Zeit da und war offensichtlich unwirksam.

0 Stimmen

Ich habe das normalerweise einfach in /etc/rc.local eingefügt, wenn ich mehrere statische Routen einrichten musste; solange Sie keine Dienste haben, die auf diese Route angewiesen sind (wie z.B. ein nfs-Mount), kann das die zweckmäßigste Lösung sein.

1voto

Luc Punkte 41

Sie können nmcli verwenden, falls verfügbar, z. B.

# nmcli con show
NAME         UUID                                  TYPE      DEVICE
System eth0  xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  ethernet  eth0
ens33        xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  ethernet  --

# nmcli con edit "System eth0"

nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search, dns-options, dns-priority, addresses, gateway, routes, route-metric, route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, dhcp-client-id, dhcp-timeout, dhcp-send-hostname, dhcp-hostname, dhcp-fqdn, never-default, may-fail, dad-timeout
nmcli ipv4>

nmcli ipv4> print
['ipv4' setting values]
ipv4.method:                            manual
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         10.10.10.1/26
ipv4.gateway:                           10.10.10.129
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
nmcli ipv4>

nmcli ipv4> set routes 192.168.122.0/24 10.10.10.1

nmcli ipv4> verify
Verify setting 'ipv4': OK
nmcli ipv4> save
nmcli ipv4> quit

#nmcli con up "System eth0"

Und es sollte die Datei /etc/sysconfig/network-scripts/routes- mit den richtigen Parametern erstellen, z.B.

ADDRESS0=192.0.2.0
NETMASK0=255.255.255.0
GATEWAY0=198.51.100.1

0voto

John Nilsson Punkte 16587

Ich habe Fedora noch nicht gesehen. Aber sollte es nicht eine GUI für solche Dinge geben? Wenn Sie Gnome haben, versuchen Sie gnome-network-preferences

0 Stimmen

Dies sollte eher ein Kommentar als eine Antwort sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X