Differences between revisions 19 and 21 (spanning 2 versions)
Revision 19 as of 2016-03-10 15:06:45
Size: 28383
Editor: vauss
Comment: sync with English master
Revision 21 as of 2017-12-28 22:36:26
Size: 29730
Editor: vauss
Comment: sync with English version
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
== Noms d'interface réseau prévisibles ==
Depuis Stretch, les nommages d’interfaces réseau comme eth0, eth1 ont disparus puisque le nom peut changer. Les nouveaux noms ressemblent à : enp6s0, enp8s0, enp0s31f6, enp5s0.
Hélas, le système utilisé est toujours quelque peu arbitraire dans le sens où il s'appuie sur l'énumération du BIOS qui change avec les BIOS bogués et sous certaines conditions. (Cela n'est pas basé sur une somme réduite de l'adresse MAC (2c:56:ac:39:ec:0d devenant 98) ou sur certaines méthodes semblables déroutantes (udev peut faire de telles choses) et les noms restants à gauche sont plutôt arides pour l'utilisateur).

Pour ceux qui utilisant plus d'une interface réseau, ils devront composer avec le nouveau système.

Pour trouver les noms de vos interfaces, vous pouvez consulter :
{{{$ ls /sys/class/net/ }}}

=== Mise à niveau et les noms d'interfaces réseau prévisibles ===

Mettre à niveau vers Stretch conservera les anciens noms - malgré ce que vous lirez sur le web - supprimer /etc/udev/rules.d/70-local-persistent-net.rules ne vous donnera pas de nouveaux noms même suivi d'un update-initramfs -u et update-grub. (personne n'a pour l'instant trouvé la bonne incantation Debian pour cela ?)
Line 53: Line 66:

Assurez-vous de désactiver tous les services DHCP, par exemple `dhcpcd`.

Traduction(s): English - Español - Français - Italiano - 简体中文


Préalables pour le lecteur : pour tirer le maximum de profit de la lecture de cet article, il est conseillé d'avoir acquis au préalable les concepts suivants : les outils basiques de ligne de commande unix, les éditeurs de texte, DNS, TCP/IP, DHCP, masque de réseau (netmask), passerelle (gateway)

Table of Contents

Configurer une interface Ethernet

L'essentiel de la configuration d'un réseau peut être fait en passant par le fichier de configuration interfaces du répertoire /etc/network/interfaces. Là, vous pourrez donner à votre carte de réseau une adresse IP (ou utiliser dhcp), configurer les informations de routage ou le masquage d'IP, le routage par défaut et bien d'autres choses.

N'oubliez pas d'ajouter à la ligne 'auto' les interfaces que vous souhaitez lancer au démarrage de l'ordinateur.

Pour plus d'informations, voir man interfaces.

Noms d'interface réseau prévisibles

Depuis Stretch, les nommages d’interfaces réseau comme eth0, eth1 ont disparus puisque le nom peut changer. Les nouveaux noms ressemblent à : enp6s0, enp8s0, enp0s31f6, enp5s0. Hélas, le système utilisé est toujours quelque peu arbitraire dans le sens où il s'appuie sur l'énumération du BIOS qui change avec les BIOS bogués et sous certaines conditions. (Cela n'est pas basé sur une somme réduite de l'adresse MAC (2c:56:ac:39:ec:0d devenant 98) ou sur certaines méthodes semblables déroutantes (udev peut faire de telles choses) et les noms restants à gauche sont plutôt arides pour l'utilisateur).

Pour ceux qui utilisant plus d'une interface réseau, ils devront composer avec le nouveau système.

Pour trouver les noms de vos interfaces, vous pouvez consulter : $ ls /sys/class/net/ 

=== Mise à niveau et les noms d'interfaces réseau prévisibles ===

Mettre à niveau vers Stretch conservera les anciens noms - malgré ce que vous lirez sur le web - supprimer /etc/udev/rules.d/70-local-persistent-net.rules ne vous donnera pas de nouveaux noms même suivi d'un update-initramfs -u et update-grub. (personne n'a pour l'instant trouvé la bonne incantation Debian pour cela ?)

Utiliser DHCP pour configurer automatiquement une interface réseau

Si vous utilisez juste DHCP, vous n'avez qu'à entrer quelque chose comme ça :

    auto eth0
    allow-hotplug eth0
    iface eth0 inet dhcp

Pour DHCPv6 (utilsé par IPv6), ajoutez la section iface suivante

    iface eth0 inet6 dhcp

Autrement, IPv6 peut être configuré automatiquement en utilisant l'autoconfiguration sans état (stateless address autoconfiguration ou SLAAC) qui est spécifiée en utilisant auto à la place de dhcp dans la section inet6 :

    iface eth0 inet6 auto

Configurez une interface réseau manuellement

Si vous configurez l'interface réseau manuellement, quelque chose comme ce qui suit paramètrera la passerelle par défaut (réseau, broadcast – adresse de diffusion et passerelle - gateway sont optionnels) :

    auto eth0
    iface eth0 inet static
        address 192.0.2.7
        netmask 255.255.255.0
        gateway 192.0.2.254

Si vous voulez ajouter une adresse IPv6, ajoutez quelque chose comme cela :

    iface eth0 inet6 static
        address 2001:db8::c0ca:1eaf
        netmask 64
        gateway 2001:db8::1ead:ed:beef

Pour plus d'options, voir man interfaces.

Assurez-vous de désactiver tous les services DHCP, par exemple dhcpcd.

Configurer la vitesse et le duplex

Une auto-négociation défaillante à maintes reprises est souvent le signe d'un problème de câblage, donc vérifiez votre installation matériel avant de considérer que ce sont les algorithmes d'auto-négociation de l'interface qui sont incompatibles. Si vous arrêtez l'auto-négociation puis configurez vous-même la vitesse et le mode duplex, l'interface du partenaire situé à l'autre bout du câble supposera que l'absence d'auto-négociation indique une vitesse de 10 Mbit/s et un mode duplex de la moitié. Pour que ça fonctionne sans erreur, si vous configurez vous-même la vitesse et le mode duplex, vous devez vous assurer que l'interface du partenaire a adopté exactement la même vitesse et le même mode duplex.

Si vous configurez manuellement la vitesse et le mode duplex de votre interface, quelques essais seront sans doute nécessaires. Voici les étapes à suivre :

  • Installez les paquets ethtool et net-tools afin de disposer des programmes ethtool et mii-tool. L'un ou l'autre devrait marcher pour votre interface.

  • Assurez-vous d'avoir un moyen de vous connecter au système au cas où l'interface réseau deviendrait non-fonctionnelle. Une connexion SSH peut s'interrompre, vous devez avoir une solution de repli.

  • Identifiez l'interface que vous voulez configurer (c'est souvent eth0). Modifier le reste des instructions en conséquence.
  • Essayez de déterminer quels sont les paramètres de vitesse et de duplex habituels. C'est là que cela devient drôle :
    • En tant que super-utilisateur, essayez d'abord ethtool eth0 et regardez si les lignes "Speed :" et "Duplex :" ont l'air valides. En cas contraire, ethtool pourrait ne pas être supporté par votre périphérique.

    • En tant que super-utilisateur, essayez mii-tool -v eth0 et regardez si ses données de sortie semblent correctes. En cas contraire, mii-tool pourrait ne pas être supporté par votre périphérique.

    • Si aucun des deux n'est supporté, vous allez avoir à paramétrer directement le module du pilote du noyau. Identifiez quel module est utilisé en lisant les données de dmesg et de lsmod. Essayez modinfo MODULENAME pour voir quels paramètres sont valides, s'il y en a (vous pouvez utiliser modinfo même avec des modules qui ne sont pas chargés pour comparer.) ToDo : où configure-t-on les paramètres des modules du noyau ?

  • Ensuite, essayez de changer les réglages de l'interface pendant qu'il fonctionne. Vous aurez bien sûr besoin d'être super-utilisateur. D'abord :
    • ethtool -s eth0 autoneg off speed 100 duplex full (en supposant que la vitesse est 100 Mbit/s et le mode full duplex)

    • mii-tool -F 100baseTx-FD eth0 (même hypothèse).

    A chaque essai, vérifiez si la configuration de l'interface a réellement changé et tenter d'émettre et de recevoir des données pour voir si le contrôleur d'interface réseau fonctionne correctement.
  • Si une de ces commandes réussit à configurer votre contrôleur d'interface réseau, enregistrez-la dans le fichier /etc/network/interfaces afin qu'elle fonctionne quand vous mettez en marche votre interface (par exemple au moment du démarrage de l'ordinateur). Néanmoins, avant de le faire, vous devez comprendre que tous les pilotes et périphériques ne se comportent pas tous de la même manière. Quand le module du pilote est chargé, le contrôleur d'interface réseau peut commencer une auto-négociation sans que l'on puisse l’arrêter (surtout les pilotes qui n'acceptent pas de paramètres). Les réglages enregistrés dans interfaces s'appliquent ensuite à un moment quelconque qui peut être juste au milieu de l'auto-négociation. Aussi, certains pensent qu'il est nécessaire de retarder de quelques secondes la commande ethtool ou mii-tool. Ainsi :

     iface eth0 inet static
            address ...
            netmask ...
            gateway ...
            up sleep 5; ethtool -s eth0 ...

    ou de manière analogue avec la commande mii-tool.

  • Redémarrez l'ordinateur pour être sûr qu'il s'allume correctement et soyez prêt à intervenir manuellement (par exemple Ctrl-Alt-Del et puis redémarrez en mode mono-utilisateur avec GRUB ou LILO) si ça ne marche pas.


Activer une interface réseau sans adresse IP

Il faut se servir d'une méthode manuelle pour créer une interface réseau sans adresse IP puis utiliser les commandes pre-up et post-down pour activer ou désactiver l'interface.

   iface eth0 inet manual
      pre-up ifconfig $IFACE up
      post-down ifconfig $IFACE down

Si l'interface est une interface VLAN, les commandes up/down doivent être exécutées respectivement avant et après la connection du vlan. after/before the vlan hooks. (Vous devez aussi installez le paquet vlan.)

   iface eth0.99 inet manual
      post-up ifconfig $IFACE up
      pre-down ifconfig $IFACE down

Remarque : si vous créez l'interface VLAN seulement pour le mettre dans un bridge, il n'est pas besoin de définir l'interface LAN soi-même. Il suffit de configurer le bridge et l'interface VLAN interface sera créé automatiquement lors de la création du bridge (voir plus bas).

Définir les serveurs de noms de domaine (DNS)

Pour qu'un ordinateur puisse se connecter à une ressource réseau externe (par exemple, un serveur web), il faut qu'il ait le moyen de convertir un nom alpha-numérique (par exemple wiki.debian.org) en une adresse réseau numérique (par exemple 140.211.166.4). (Internet utilise ces adresses IP numériques structurées comme adresses réseaux.)

La bibliothèque C et les autres bibliothèques de résolveur vont chercher dans /etc/resolv.conf une liste de noms de serveurs. Dans le cas le plus simple, c'est un fichier à éditer pour dresser la liste des serveurs. Notez que d'autres programmes de configuration dynamique se feront un plaisir de remplacer vos réglages :

  1. Le programme resolvconf

  2. Le démon network-manager

  3. les clients DHCP

Dans la plupart des situations, le fichier à éditer est le fichier de configuration d'un tel programme.

Dans les cas les plus complexes, utiliser resolvconf est réellement le bon choix, même si avec des configurations plus simples, c'est probablement excessif.

Le fichier de configuration resolv.conf

Le fichier de configuration resolv.conf du répertoire /etc/resolv.conf contient les informations qui permettent à un ordinateur connecté au réseau de convertir les noms en adresses. (Note : Il ne faut pas confondre ce fichier de configuration avec le programme resolvconf qui porte malencontreusement presque le même nom.)

Le fichier resolv.conf contient habituellement les adresses IP des serveurs de noms de domaine (DNS) qui tenteront de convertir les noms en adresse pour tous les nœuds disponibles sur le réseau. Vous y verrez des lignes comme celle-ci :

nameserver 12.34.56.78
nameserver 12.34.56.79

Dans cet exemple, le système se sert de serveurs de noms de domaine dont les adresses IP sont 12.34.56.78 et 12.34.56.79. Il vous suffit de modifier le fichier en entrant l'adresse IP des serveurs de noms de domaine dont vous avez besoin après chaque nameserver ; ajoutez des lignes de nameserver si vous avez plus de serveurs de noms de domaine. N'utilisez pas cette méthode si vous avez installé le programme resolvconf.

Le fichier de configuration resolv.conf a plusieurs options pour définir comment le résolveur recherche les noms ; regardez man resolv.conf pour plus de détails.

Le programme resolvconf

Le programme resolvconf garde la trace des informations du système sur les serveurs de noms de domaine actuellement disponibles. Il ne faut pas le confondre avec le fichier de configuration resolv.conf qui porte malencontreusement presque le même nom. Le programme resolvconf est optionnel sur les systèmes Debian.

Le fichier de configuration resolv.conf contient des informations sur les serveurs de noms de domaine que le système doit utiliser. Néanmoins, quand plusieurs programmes doivent modifer dynamiquement le fichier de configuration resolv.conf, ils peuvent se chevaucher et le fichier peut ne plus être synchronisé. Le programme resolvconf s'occupe de ce problème. Il agit comme un intermédiaire entre les programmes qui fournissent des informations sur les serveurs de noms de domaine (par exemple les clients dhcp) et les programmes qui les utilisent (par exemple resolver).

Quand resolvconf est correctement installé, le fichier de configuration resolv.conf du répertoire /etc/resolv.conf est remplacé par un lien symbolique pointant vers le fichier /etc/resolvconf/run/resolv.conf et le résolveur utilise plutôt le fichier de configuration qui est généré dynamiquement par resolvconf à cet emplacement /etc/resolvconf/run/resolv.conf.

Le programme resolvconf est en général seulement nécessaire quand un système a plusieurs programmes qui ont besoin de modifier de façon dynamique les informations sur les serveurs de noms de domaine. Sur un système simple où les serveurs de noms de domaine ne changent pas souvent ou bien ne sont modifiés que par un programme, le fichier de configuration resolv.conf est suffisant.

Si le programme resolvconf est installé, vous n'aurez pas à modifier à la main le fichier de configuration resolv.conf car il sera changé de façon dynamique par les programmes. Si vous avez besoin de définir vous-même les serveurs de noms de domaine (comme avec une interface statique), ajoutez au fichier de configuration interfaces du répertoire /etc/network/interfaces une ligne comme celle-ci :

dns-nameservers 12.34.56.78 12.34.56.79

Mettez la ligne indéntée dans un paragraphe iface, par exemple juste après la ligne gateway. Entrez les adresses IP des serveurs de noms de domaine dont vous avez besoin après dns-nameservers, toutes sur la même ligne, séparées par des espaces. N'oubliez pas le "s" à la fin de dns-nameservers.

Le programme resolvconf est un ajout plutôt récent à Debian et plusieurs anciens programmes ont besoin d'être mis à jour ou reconfigurés pour fonctionner correctement avec lui . Si vous rencontrez des problèmes, regardez /usr/share/doc/resolvconf/README qui contient beaucoup d'informations sur la manière de faire fonctionner resolvconf avec d'autres programmes.

Configuration de DNS pour network-manager

Attention : Cette section n'a pas été testé avec une vraie configuration de network-manager. S'il vous plaît, testez-la puis retirez cet avertissement. Note : Cette section paraît valable avec les systèmes type Red Hat mais pas pour Debian dans la mesure où les systèmes RH utilisent habituellement /etc/sysconfig/network-scripts/, mais pas les systèmes Debian. La référence à /etc/sysconfig/network-scripts/ifcfg-* ne convient sans doute pas ici.

Si vous utilisez NetworkManager, mettez votre configuration dans le fichier /etc/sysconfig/network-scripts/ifcfg-*. Exemple :

DNS1=127.0.0.1
DNS2=8.8.8.8
DNS3=8.8.4.4

Avec l'interface graphique, cela signifie ::

  1. Menu système → Préférences → Connexion réseau.
  2. Choisir une connexion dans l'onglet réseau filaire ou sans fil et cliquer Modifier.
  3. Dans l'onglet configuration IPv4, changez la Méthode en autre chose que “Automatique (DHCP)” . Par exemple, “Automatic (DHCP) addresses only” est probablement approprié.
  4. Entrez les serveurs de noms de domaine dans le champ “DNS servers”, séparés par des espaces.
  5. Cliquer sur “Appliquer”.

Notez que votre client DHCP pourrait corriger ces paramètres ; s'il en est ainsi, vous pouvez envisager de le signaler comme un bogue et voir plus bas pour la configuration du client DHCP.

Cette section est basée sur la page http://code.google.com/speed/public-dns/docs/using.html, pour plus d'information, vous pouvez vous y reporter.

Configuration du client DHCP

Exemple : dhclient3 utilise /etc/dhcp/dhclient.conf et la configuration voulue est la suivante :

supersede domain-name-servers 12.34.56.78, 12.34.56.79;

ou peut-être

prepend domain-name-servers 12.34.56.78, 12.34.56.79;

Voir la page du manuel dhclient.conf(5) pour plus de détails.

Relais

Un relais permet de mettre plusieurs interfaces dans le même segment de réseau. C'est très répandu pour connecter un serveur à de nombreux switch pour une haute disponibilité ou pour de la virtualisation. Dans ce dernier cas, on a l'habitude de créer un relais sur l'hôte (par exemple dom0) et de mettre les interfaces virtuelles des invités (domU) dans le relais.

Exemple : Connexion d'un serveur à 2 switch (via eth0 et eth1) en définissant un relais 0 et attribution au serveur d'une adresse IP dans ce sous réseau :

auto br0
iface br0 inet static
        address 10.10.0.15
        netmask 255.255.255.0
        gateway 10.10.0.1
        bridge_ports eth0 eth1
        up /usr/sbin/brctl stp br0 on

Si un serveur est connecté à plusieurs switch, on a besoin habituellement d'utiliser l'algorithme de l'arbre recouvrant (« spanning tree protocol » - STP) pour éviter les boucles. Donc le STP doit être activé avec une commande « up » comme ci-dessus.

Exemple : Installation d'un relais sans configuration d'adresse IP (utilisez « manual » à la place de « static ») pour « faire suivre » une interface à un invité VM. (La configuration d'un relais statique ne contient qu'une interface physique. L'interface virtuelle sera ajouté au relais au démarrage de la VM.)

auto br1
iface br1 inet manual
        bridge_ports eth4
        up /usr/sbin/brctl setageing br1 0
        up /usr/sbin/brctl stp br0 off

Attention : Les relais Linux ne gèrent que le STP, et non le RSTP (Rapid Spanning Tree). Donc, ils ne gèrent que les anciens coûts du STP, et pas les nouveaux coûts du RSTP (voir Spanning_Tree_Protocol). Cela marche bien avec les switch Cisco, mais les switch Juniper, par exemple, utilisent les coûts RSTP, et donc cela peut entraîner des calculs d'arbre différents et des problèmes de boucle. Cela peut être corrigé en fixant les coûts soi-même, soit sur le switch soit sur le serveur. Il est préférable de configurer les coûts sur les switch parce que Linux revient aux coûts par défaut chaque fois qu'une interface est redémarrée

Relais sans switch

Par défaut un relais Linux se comporte comme un switch. Cela veut dire qu'il retient les adresses MAC derrière un port de switch et si l'adresse MAC de destination est connue, les paquets de données sont seulement acheminés aux ports correspondants - sinon les paquets sont diffusés à tous les ports.

Dans certaines configurations, cela ne marche pas. Par exemple, si le relais connecte 2 interfaces de tronc, les mêmes adresses MAC peuvent être vues par les deux interfaces, selon le réseau. Comme un relais Linux ne gère pas les VLAN (table d'adresses MAC dédiées pour chaque VLAN), avec de tels configurations, vous devez désactiver la mémorisation des adresses MAC et configurer le relais dans un mode de « relais » réel avec la commande :

        up /sbin/brctl setageing br0 0
        up /sbin/brctl stp br0 off

Comment utiliser un réseau local virtuel - vlan (dot1q, 802.1q, trunk) avec Etch et Lenny

Configuration manuelle

modprobe 8021q

apt-get install vlan

vconfig add eth0 222    # 222 est le numéro du vlan
ifconfig eth0.222 up
ifconfig eth0.222 mtu 1496    #optionnel si votre carte réseau ne gère pas le MTU 1504B
ifconfig eth0.222 10.10.10.1 netmask 255.255.255.0

Configuration de réseau avec script init

Ajoutez cette ligne au fichier /etc/modules :

8021q

Dans la section iface du fichier /etc/network/interfaces ajoutez le paramètre :

        vlan-raw-device eth0

Le nom de l'interface devrait être le nom brut de l'interface (le même qui est spécifié par vlan-raw-device) suivi d'un point et de l'ID du VLAN, par exemple eth0.100. Il peut plutôt être "vlan" suivi de l'ID du VLAN, par exemple vlan100. Dans les deux cas, l'ID du VLAN est à la fin, et c'est le seul endroit où il est configuré.

Note : Si vous nommez votre interface VLAN ethX.YYY, il n'y a pas besoin de spécifier le vlan-raw-device, parce que le nom brut du périphérique peut être trouvé à partir du nom de l'interface.

Par exemple :

auto eth0.222
iface eth0.222 inet static
        address 10.10.10.1
        netmask 255.255.255.0
        vlan-raw-device eth0

Relais et VLAN

Si vous créez des interfaces VLAN seulement pour les mettre dans un relais, il n'est pas nécessaire de définir les interfaces VLAN soi-même. Il suffit de configurer le relais et l'interface VLAN sera créé automatiquement lors de la création du relais, par exemple :

auto br1
iface br1 inet manual
        bridge_ports eth0.99 eth1.99
        up /usr/sbin/brctl stp br0 on

Avertissement sur l'utilisation d'un relais (bridging) et d'un réseau local virtuel (vlan)

#/etc/network/interfaces
auto eth0 bri0
iface eth0 inet static
        address 192.168.1.1
        netmask 255.255.255.0
iface eth0.110 inet manual
        vlan-raw-device eth0
iface bri0 inet static
        address 192.168.110.1
        netmask 255.255.255.0
        bridge_ports eth0.110
        bridge_stp on
        bridge_maxwait 10

Si vous utilisez une configuration VLAN brigde qui est probablement utile pour un réseau dans des environnements de virtualisation, veillez à attacher un seul dispositif bridge ou VLAN à un dispositif physique – comme on l'a montré plus haut. Attacher une interface physique (eth0) à un bridge (par exemple bri1), alors que vous utilisez la même interface physique sur des VLAN apparemment différents, aura comme résultat que tous les paquets resteront balisés (avec des noyaux supérieurs à 2.6.37 et antérieurs à 3.2).

Comment créer une connexion tolérante aux pannes avec un vlan dans Etch

debian_bonding.png

debian_bonding.dia

Comment configurer un des serveurs ci-dessus en backup actif connectant 3 vlan {vlan10,vlan20,vlan30} dans un réseau Debian sans SPOF et sans vlan natif.

aptitude install vlan ifenslave-2.6

Configuration de réseau

Exemple de configuration de l'interface d'un switch Cisco

interface GigabitEthernet1/2
 description eth1
 switchport
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 10,20,30
 switchport mode trunk
 no ip address
 no cdp enable
 spanning-tree portfast trunk

Connexion avec backup actif

Créez un fichier /etc/modprobe.d/bonding.conf contenant :

alias bond0 bonding
options bonding mode=active-backup miimon=100 downdelay=200 updelay=200 primary=eth1

/etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto bond0
iface bond0 inet manual
        up ifconfig bond0 0.0.0.0 up
        slaves eth1 eth0
auto vlan10
iface vlan10 inet static
        address 10.10.10.12
        netmask 255.255.0.0
        network 10.10.0.0
        broadcast 10.10.255.255
        vlan-raw-device bond0
        gateway 10.10.0.1
        dns-search hup.hu
        dns-nameservers 10.10.0.2
auto vlan20
iface vlan20 inet static
        address 10.20.10.12
        netmask 255.255.0.0
        network 10.20.0.0
        broadcast 10.20.255.255
        vlan-raw-device bond0
auto vlan30
iface vlan30 inet static
        address 10.30.10.12
        netmask 255.255.0.0
        network 10.30.0.0
        broadcast 10.30.255.255
        vlan-raw-device bond0

Comment configurer la valeur de MTU (Max Transfer unit / taille de paquet) avec un VLAN sur une interface avec bonding

Le MTU doit être configuré sur l'interface de bonding et les interfaces esclaves après que la remise à zéro de la configuration ait été appliquée aux interfaces de bonding. Ceci s'effectue dans la configuration de l'interface de bonding.

auto bond0
iface bond0 inet manual
        up ifconfig lacptrunk0 0.0.0.0 up
        slaves eth0 eth1
# bond-mode 4 = 802.3ad
        bond-mode 4
        bond-miimon 100
        bond-downdelay 200
        bond-updelay 200
        bond-lacp-rate 1
        bond-xmit-hash-policy layer2+3
        post-up ifconfig eth0 mtu 9000 && ifconfig eth1 mtu 9000 && ifconfig bond0 mtu 9000

#vlan devices will use the MTU set on bond0 device
auto vlan101
iface vlan101 inet static

        address 10.101.60.123
        netmask 255.255.255.0
        gateway 10.155.60.1
        vlan-raw-device bond0

auto vlan151
iface vlan151 inet static

        address 192.168.1.1
        netmask 255.255.255.0
        vlan-raw-device bond0

Adresses IP multiples pour une interface

Les alias d'interface permettent à une interface d'avoir de multiples adresses IP. C'est utile quand on a besoin que plus d'un serveur soit visible sur Internet. Notez que les hosts virtuels peuvent gérer plusieurs serveurs Apache avec une adresse IP unique. Apache répond au nom de domaine fourni par le client dans l'en-tête HTTP. Dans d'autres situations, on a besoin d'une IP externe pour chaque serveur qui utilise un port.

Ancienne méthode

Ce texte du fichier /etc/network/interfaces assigne trois adresses IP à eth0.

auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.42
    netmask 255.255.255.0
    gateway 192.168.1.1

auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
    address 192.168.1.43
    netmask 255.255.255.0

auto eth0:1
allow-hotplug eth0:1
iface eth0:1 inet static
    address 192.168.1.44
    netmask 255.255.255.0

L'alias d'une interface ne devrait pas avoir de "gateway" ou "dns-nameservers"; l’assignation dynamique d'IP est acceptée.

La configuration ci-dessus est l'ancienne méthode traditionelle qui reflète l'utilisation traditionnelle de ifconfig pour configurer des dispositifs réseau. ifconfig a introduit le concept d' alias d'interface ou d'interface virtuelle. Ces types d'interfaces virtuelles sont nommés sous la forme interface:chiffre et ifconfig les traite d'une manière très proche de celles des interfaces réelles.

Aujourd'hui, ifupdown se sert de l'utilitaire ip que l'on trouve dans le paquet iproute2 à la place de celui qui est dans ifconfig. Ce nouvel utilitaire ip n'utilise pas le concept d'alias ou d'interfaces virtuelles. Néanmoins, il gère l'attribution de noms arbitraires aux interfaces (on les appelle étiquettes - labels). ifupdown utilise cette fonctionnalité pour gérer les interfaces désignées par un alias quand on utilise ip.

Méthode iproute2

ifupdown gère aussi la définition d'interfaces multiples en répétant les sections iface avec le même nom d'interface. La différence essentielle, par rapport à la méthode décrite plus haut, est que ces différentes sections sont traitées par ifupdown comme une seule interface, et donc l'utilisateur ne peut ni les ajouter ni les retirer une par une. Malgré tout, les commandes up et down, tout comme les scripts, sont appelés pour chaque section, comme avant.

Attention toutefois, cette méthode est dangereuse ! Certaines combinaisons de pilote et de matériel peuvent parfois faire échouer la connexion si aucune étiquette n'a été affectée aux interfaces alias. (Comportement observé avec Debian Wheezy et Jessie un contrôleur RTL8111/8168/8411 PCI Express Gigabit Ethernet (rev 01) et une auto-négociation de 10/full. Un avertissement similaire d'un autre utilisateur existe dans l'historique de cette page.)

Ce fichier /etc/network/interfaces attribue trois adresses IP à eth0.

auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.42
    netmask 255.255.255.0
    gateway 192.168.1.1

iface eth0 inet static
    address 192.168.1.43
    netmask 255.255.255.0

iface eth0 inet static
    address 192.168.1.44
    netmask 255.255.255.0

# ajouter l'adresse IP de différents sous-réseaux est aussi possible
iface eth0 inet static
    address 10.10.10.14
    netmask 255.255.255.0

Approche manuelle :

auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.42  
    netmask 255.255.255.0
    gateway 192.168.1.1
    up   ip addr add 192.168.1.43/24 dev $IFACE label $IFACE:0
    down ip addr del 192.168.1.43/24 dev $IFACE label $IFACE:0
    up   ip addr add 192.168.1.44/24 dev $IFACE label $IFACE:1
    down ip addr del 192.168.1.44/24 dev $IFACE label $IFACE:1
    up   ip addr add 10.10.10.14/24 dev $IFACE label $IFACE:2
    down ip addr del 10.10.10.14/24 dev $IFACE label $IFACE:2


CategoryNetwork