DHCP et adresses IP statiques simultanément sur une seule interface

16

Nous pouvons utiliser plusieurs adresses IP pour une seule interface sous Linux (eg. eth0:0, eth0:1). Mais pouvons-nous utiliser DHCP et IP statique en même temps? eth0:1doit avoir une adresse IP statique et eth0:0doit être configuré à l'aide de DHCP.

Comment pouvons-nous accomplir les deux?

shantanu
la source
Cette question concerne-t-elle la configuration de NetworkManager?
madneon

Réponses:

13

Oui, cela peut être fait. Cependant, vous utiliseriez habituellement eth0 et eth0: 0 pour cela au lieu de eth0: 0 et eth0: 1. Vous pouvez configurer votre fichier / etc / network / interfaces comme ceci:

auto lo eth0 eth0:0
iface lo inet loopback

iface eth0 inet dhcp

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

Vous ne voulez probablement pas définir de passerelle sur l'interface eth0: 0 car cela pourrait entrer en conflit avec les paramètres de passerelle que vous obtenez à partir de DHCP. Si vous entrez des paramètres manuels dans / etc / network / interfaces, vous voudrez vous assurer que le gestionnaire de réseau n'essaie pas de gérer vos paramètres. C'est couvert ici .

jkt123
la source
9

Après une recherche intensive d'une réponse au même problème, j'ai élaboré une solution qui permet à Network Manager de continuer à gérer vos connexions. Commencez par créer une connexion DHCP normalement dans Network Manager en utilisant Modifier les connexions> Ajouter. Cela créera un fichier situé dans / etc / NetworkManager / system-connections /. Ouvrez ce fichier dans votre éditeur de texte avec les autorisations de super utilisateur. Exemple: sudo nano / etc / NetworkManager / system-connections / DHCPEthernet

Le code ressemblera à ceci:

[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

Ajoutez une ligne sous la section ipv4 pour l'adresse IP statique que vous souhaitez ajouter. J'utilise 192.168.10.1 sans passerelle pour cet exemple

address1=192.168.10.1/24,0.0.0.0

Enregistrez le fichier et utilisez Network Manager pour vous déconnecter, puis vous reconnecter au réseau. Le ping confirmera que les deux adresses IP fonctionnent correctement. La sortie de ip addr confirme le succès.

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
la source
address1le paramètre trouvé ici est en fait le ipv4.addressesparamètre de NetworkManager si vous utilisez l'API ou nmcli. Dans ce cas, vous devez également conserver ipv4.methodla valeur "auto".
Dave
Après avoir créé la connexion normalement, je n'ai toujours aucun fichier dans mon répertoire / etc / NetworkManager / system-connections /. Sont-ils conservés ailleurs? Peut-être une chose SELinux?
Steve Jorgensen
2

J'ai vérifié un peu et j'ai découvert qu'il est aujourd'hui possible de créer cette configuration à l'aide de l' nmclioutil. En fait, il permet un contrôle complet de NetworkManager. Les pages de manuel de nmcli sont très complètes et assez compréhensibles. Voir man nmcliet man nm-settings.

Pour configurer la configuration dans cette question, le moyen le plus simple consiste à modifier votre profil de connexion actuel. Découvrez le nom du profil à partir de votre outil GUI NetworkManager et modifiez-le à l'aide de l'éditeur CLI (ici le nom est Ethernet connection):

$ sudo nmcli c modifier 'connexion Ethernet'

=== | Éditeur de connexion interactif nmcli | ===

Modification de la connexion «802-3-ethernet» existante: «Connexion Ethernet 1»

Tapez «aide» ou «? pour les commandes disponibles.
Tapez «décrire [.]» Pour une description détaillée de la propriété.

Vous pouvez modifier les paramètres suivants: connexion, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6
nmcli> goto ipv4
Vous pouvez modifier les propriétés suivantes: méthode, dns, recherche-dns, options-dns, priorité-dns, adresses, passerelle, itinéraires, métrique-route, ignorer-auto-routes, ignorer-auto-dns, dhcp-hostname, dhcp -send-hostname, never-default, may-fail, dad-timeout, dhcp-timeout, dhcp-client-id, dhcp-fqdn
nmcli ipv4> set ipv4.addresses {your_address_here} / {your_network_prefix_here} 
Voulez-vous également définir 'ipv4.method' sur 'manual'? [oui]: non 
nmcli ipv4> enregistrer
Connexion 'Connexion Ethernet' (87fa8e41-7fe3-435a-a2f2-29a9c8084d2d) mise à jour avec succès.
nmcli ipv4> quitter

Les parties en gras sont vos entrées, remplacez les choses entre accolades avec vos paramètres. Répondre noà la question sur la ipv4.methodpréservation de la configuration DHCP. Afterwords vous devez désactiver et réactiver la configuration, ce qui peut être fait en utilisant les outils GUI ou nmcli.

Si vous le souhaitez, il est également possible de créer une nouvelle connexion à partir de la ligne de commande:

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

Encore une fois, remplacez les éléments entre accolades par vos paramètres.

Enfin, si vous souhaitez toujours éditer les fichiers de configuration, pensez à recharger le fichier après l'édition:

sudo nmcli connection reload

Notez que les configurations créées de cette manière sont susceptibles de confondre les outils de l'interface graphique. Au mieux, ils ne vous montreront pas les adresses statiques.

Ville Koivunen
la source
0

Debian Buster / 10 NetworkManager nm-connection-editorpeut désormais le faire à partir de l'interface utilisateur graphique.

Modifiez la connexion, ouvrez l'onglet "Paramètres IPv4", puis:

  1. Réglez la méthode sur "Automatique (DHCP)".
  2. Ajoutez "Adresses statiques supplémentaires" ci-dessous.

Cela écrira les paramètres suivants dans /etc/NetworkManager/system-connections/connection.nmconnection:

[ipv4]
address1=10.0.0.1/24
method=auto
user1338062
la source