Sowohl DHCP- als auch statische IP-Adressen gleichzeitig an einer Schnittstelle

16

Wir können unter Linux mehrere IP-Adressen für eine einzige Schnittstelle verwenden (eg. eth0:0, eth0:1). Aber können wir DHCP und statische IP gleichzeitig verwenden? eth0:1sollte eine statische IP-Adresse haben und eth0:0mit DHCP konfiguriert werden.

Wie können wir beides erreichen?

Shantanu
quelle
Ist dies eine Frage zur Konfiguration von NetworkManager?
Madneon

Antworten:

13

Ja, das ist möglich. In der Regel verwenden Sie hierfür jedoch eth0 und eth0: 0 anstelle von eth0: 0 und eth0: 1. Sie könnten Ihre Datei / etc / network / interfaces folgendermaßen einrichten:

auto lo eth0 eth0:0
iface lo inet loopback

iface eth0 inet dhcp

iface eth0:0 inet static
    address ...
    netmask ...

Sie möchten wahrscheinlich kein Gateway für die Schnittstelle eth0: 0 festlegen, da dies zu Konflikten mit den Gateway-Einstellungen führen kann, die Sie von DHCP erhalten. Wenn Sie manuelle Einstellungen in / etc / network / interfaces eingeben, möchten Sie sicherstellen, dass der Netzwerkmanager nicht versucht, Ihre Einstellungen zu verwalten. Dies wird hier behandelt .

jkt123
quelle
9

Nach einer intensiven Suche nach einer Antwort auf dasselbe Problem habe ich eine Lösung ausgearbeitet, mit der Network Manager weiterhin Ihre Verbindungen verwalten kann. Erstellen Sie zunächst in Network Manager eine DHCP-Verbindung, indem Sie Verbindungen bearbeiten> Hinzufügen verwenden. Dadurch wird eine Datei erstellt, die sich in / etc / NetworkManager / system-connections / befindet. Öffnen Sie diese Datei in Ihrem Texteditor mit Superuser-Berechtigungen. Beispiel: sudo nano / etc / NetworkManager / system-connections / DHCPEthernet

Der Code sieht ungefähr so ​​aus:

[802-3-ethernet]
duplex=full
mac-address=00:0E:C6:88:31:43

[connection]
id=DHCPEthernet
uuid=26af83f1-c48c-4454-9038-bbb4bec3e3a3
type=802-3-ethernet
timestamp=1405008541

[ipv6]
method=auto

[ipv4]
method=auto

Fügen Sie im Abschnitt ipv4 eine Zeile für die statische IP-Adresse hinzu, die Sie hinzufügen möchten. Ich verwende 192.168.10.1 ohne Gateway für dieses Beispiel

address1=192.168.10.1/24,0.0.0.0

Speichern Sie die Datei, und verwenden Sie Network Manager, um die Verbindung zum Netzwerk zu trennen und dann erneut herzustellen. Durch einen Ping-Befehl wird bestätigt, dass beide IP-Adressen ordnungsgemäß funktionieren. Die Ausgabe von ip addr bestätigt den Erfolg.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 14:10:9f:d7:22:0b brd ff:ff:ff:ff:ff:ff
    inet 172.20.1.71/24 brd 172.20.1.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::1610:9fff:fed7:220b/64 scope link 
       valid_lft forever preferred_lft forever
3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0e:c6:88:31:43 brd ff:ff:ff:ff:ff:ff
    inet 172.20.1.60/24 brd 172.20.1.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet 192.168.10.1/24 brd 192.168.10.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet6 fe80::20e:c6ff:fe88:3143/64 scope link 
       valid_lft forever preferred_lft forever
Andrew Vian
quelle
address1Die hier festgelegte ipv4.addressesEinstellung entspricht der Einstellung von NetworkManager, wenn Sie die API oder nmcli verwenden. In diesem Fall müssen Sie auch weiterhin ipv4.methodauf "auto" setzen.
Dave
Nachdem ich die Verbindung normal erstellt habe, befinden sich noch keine Dateien in meinem Verzeichnis / etc / NetworkManager / system-connections /. Werden sie woanders aufbewahrt? Vielleicht eine SELinux-Sache?
Steve Jorgensen
2

Ich habe ein bisschen nachgesehen und festgestellt, dass es heutzutage möglich ist, diese Konfiguration mit dem nmcliTool zu erstellen . Tatsächlich ermöglicht es die vollständige Steuerung von NetworkManager. Die Handbuchseiten für nmcli sind sehr gründlich und ziemlich verständlich. Siehe man nmcliund man nm-settings.

Um die Konfiguration in dieser Frage einzurichten, ist es am einfachsten, Ihr aktuelles Verbindungsprofil zu bearbeiten. Ermitteln Sie den Namen des Profils mit Ihrem GUI NetworkManager-Tool und bearbeiten Sie es mit dem CLI-Editor (hier lautet der Name Ethernet connection):

$ sudo nmcli c 'Ethernet-Verbindung' bearbeiten

=== | Interaktiver Verbindungseditor nmcli | ===

Bestehende '802-3-Ethernet'-Verbindung bearbeiten:' Ethernet-Verbindung 1 '

Tippe 'help' oder '?' für verfügbare Befehle.
Geben Sie 'describe [.]' Ein, um eine detaillierte Beschreibung der Eigenschaft zu erhalten.

Sie können die folgenden Einstellungen bearbeiten: Verbindung, 802-3-Ethernet (Ethernet), 802-1x, dcb, ipv4, ipv6
nmcli> gehe zu ipv4
Sie können die folgenden Eigenschaften bearbeiten: Methode, DNS, DNS-Suche, DNS-Optionen, DNS-Priorität, Adressen, Gateway, Routen, Routenmetrik, Ignore-Auto-Routen, Ignore-Auto-DNS, DHCP-Hostname, DHCP -send-hostname, never-default, möglicherweise-fehlgeschlagen, dad-timeout, dhcp-timeout, dhcp-client-id, dhcp-fqdn
nmcli ipv4> set ipv4.addresses {your_address_here} / {your_network_prefix_here} 
Möchten Sie auch 'ipv4.method' auf 'manual' setzen? [ja]: nein 
nmcli ipv4> speichern
Verbindung 'Ethernet-Verbindung' (87fa8e41-7fe3-435a-a2f2-29a9c8084d2d) erfolgreich aktualisiert.
nmcli ipv4> beenden

Fettgedruckte Teile sind Ihre Eingaben. Ersetzen Sie die Angaben in geschweiften Klammern durch Ihre Einstellungen. Bei der Beantwortung noder Frage zur Beibehaltung der ipv4.methodDHCP-Konfiguration. Danach müssen Sie die Konfiguration deaktivieren und wieder aktivieren, was mit GUI-Tools oder nmcli möglich ist.

Wenn Sie möchten, können Sie auch eine neue Verbindung über die Befehlszeile erstellen:

sudo nmcli -p connection add type ethernet ifname {your_interface_name} con-name MyConnection -- ipv4.addresses {your_address}/{your_prefix_length} ipv4.method auto

Ersetzen Sie die geschweiften Klammern durch Ihre Einstellungen.

Wenn Sie die Konfigurationsdateien dennoch bearbeiten möchten, müssen Sie die Datei nach der Bearbeitung erneut laden:

sudo nmcli connection reload

Beachten Sie, dass auf diese Weise erstellte Konfigurationen die GUI-Tools verwirren können. Bestenfalls werden Ihnen die statischen Adressen nicht angezeigt.

Ville Koivunen
quelle
0

Debian Buster / 10 NetworkManager nm-connection-editorkann dies jetzt über die grafische Benutzeroberfläche tun.

Bearbeiten Sie die Verbindung, öffnen Sie die Registerkarte "IPv4-Einstellungen" und gehen Sie dann wie folgt vor:

  1. Stellen Sie die Methode auf "Automatisch (DHCP)".
  2. Fügen Sie unten "Zusätzliche statische Adressen" hinzu.

Dies schreibt die folgenden Einstellungen in /etc/NetworkManager/system-connections/connection.nmconnection:

[ipv4]
address1=10.0.0.1/24
method=auto
user1338062
quelle