web-dev-qa-db-fra.com

Bonne explication détaillée de la syntaxe / etc / network / interfaces?

J'ai compris le concept de base de l'utilisation de /etc/network/interfaces, mais tout ce que je trouve en ligne sont des exemples, exemple après exemple, à partir desquels je peux copier-coller. Ce qui me manque, c'est une explication de la syntaxe, une explication de la signification des commandes et de l'ordre des commandes. Je veux comprendre, car la plupart du temps le copier-coller n'est pas suffisant, parce que je ne travaille pas sur une nouvelle machine, donc je ne peux pas simplement écraser les configurations existantes car cela casserait beaucoup de choses. man interfaces n'était pas très utile car il est écrit très compliqué.

Exemples de questions que j'ai: qu'est-ce que inet dans une ligne iface signifie exactement (je ne pouvais même pas le trouver dans la page de manuel), qu'est-ce que manual dans une iface line signifie exactement (de nombreux exemples l'utilisent, mais selon la page de manuel, il a alors besoin d'un fichier de configuration supplémentaire, que les exemples ne présentent pas), quand dois-je les utiliser ou en avoir besoin? Quand non? Quand je crée un pont, qu'arrive-t-il exactement aux interfaces?

148
Foo Bar

Eh bien, séparons-le en morceaux, pour le rendre plus facile à comprendre /etc/network/interfaces:

couche de liaison + options de type d'interface (généralement la première de chaque strophe d'interface et la famille d'adresses appelée + méthode par interfaces(5) = pages de manuel):

auto interface - Démarrez la ou les interfaces au démarrage. C'est pourquoi l'interface lo utilise ce type de configuration de liaison.

allow-auto interface - Identique à auto

allow-hotplug interface - Démarrez l'interface lorsqu'un événement "hotplug" est détecté. Dans le monde réel, ceci est utilisé dans les mêmes situations que auto mais la différence est qu'il attendra un événement comme "détecté par udev hotplug api" ou "cable linked". Voir " Related Stuff (hotplug) " pour plus d'informations.

Ces options sont à peu près des options de "couche 2", définissant des états de liaison sur les interfaces, et ne sont pas liées à la "couche 3" (routage et adressage). Par exemple, vous pourriez avoir une agrégation de liens où l'interface bond0 doit être active quel que soit l'état du lien, et ses membres pourraient être actifs après un événement d'état de lien:

auto bond0
iface bond0 inet manual
        down ip link set $IFACE down
        post-down rmmod bonding
        pre-up modprobe bonding mode=4 miimon=200
        up ip link set $IFACE up mtu 9000
        up udevadm trigger

allow-hotplug eth0
iface eth0 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

allow-hotplug eth1
iface eth1 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

Ainsi, de cette façon, je crée un agrégation de liens et les interfaces y seront ajoutées et supprimées sur les états de liaison par câble.

Types d'interfaces les plus courants:

Toutes les options ci-dessous sont un suffixe pour une interface définie (iface <Interface_family>). Fondamentalement, le iface eth0 Crée un strophe appelé eth0 Sur un périphérique Ethernet. iface ppp0 Devrait créer une interface point à point , et il pourrait avoir différentes façons d'acquérir des adresses comme inet wvdial Qui transmettra la configuration de cette interface à wvdialconf script. Le Tuple inet/inet6 + option définira la version du protocole IP qui sera utilisée et la façon dont cette adresse sera configurée ( static, dhcp, scripts...). Les manuels Debian en ligne vous donneront plus de détails à ce sujet.

Options sur les interfaces Ethernet:

inet static - Définit une adresse IP statique.

inet manual - Ne définit pas d'adresse IP pour une interface. Généralement utilisé par les interfaces qui sont des membres de pont ou d'agrégation, des interfaces qui doivent fonctionner en mode promiscuous ( par exemple la mise en miroir de ports ou les TAP réseau), ou avoir un VLAN périphérique configuré sur eux. C'est un moyen de maintenir l'interface sans adresse IP.

inet dhcp - Acquérir une adresse IP via le protocole DHCP.

inet6 static - Définit une adresse IPv6 statique.

Exemple:

# Eth0
auto eth0
iface eth0 inet manual
    pre-up modprobe 8021q
    pre-up ifconfig eth0 up
    post-down ifconfig eth0 down

# Vlan Interface
auto vlan10
iface vlan10 inet static
        address 10.0.0.1
        netmask 255.255.255.0
        gateway 10.0.0.254
        vlan-raw-device eth0
        ip_rp_filter 0

Cet exemple affichera eth0 Et créera une interface VLAN appelée vlan10 Qui traitera la balise numéro 10 sur une trame Ethernet.

Options communes à l'intérieur d'une strophe d'interface (couches 2 et 3):

address - Adresse IP pour une interface configurée IP statique

netmask - Masque de réseau. Peut être omis si vous utilisez l'adresse cidr. Exemple:

iface eth1 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

gateway - La passerelle par défaut d'un serveur. Attention à n'utiliser qu'un seul de ce type.

vlan-raw-device - Sur une interface VLAN, définit son "père".

bridge_ports - Sur une interface de pont, définissez ses membres.

down - Utilisez la commande suivante pour descendre l'interface au lieu de ifdown.

post-down - Actions prises juste après la fermeture de l'interface.

pre-up - Actions avant que l'interface ne soit active.

up - Utilisez la commande suivante pour monter l'interface au lieu de ifup. C'est à votre imagination d'utiliser n'importe quelle option disponible sur iputils. Par exemple, nous pourrions utiliser up ip link set $IFACE up mtu 9000 Pour activer trames jumbo pendant l'opération up (au lieu d'utiliser l'option mtu elle-même). Vous pouvez également appeler tout autre logiciel tel que up sleep 5; mii-tool -F 100baseTx-FD $IFACE Pour forcer le duplex intégral à 100 Mbps 5 secondes après la mise en place de l'interface.

hwaddress ether 00:00:00:00:00:00 - Modifiez l'adresse mac de l'interface au lieu d'utiliser celle qui est codée en dur dans rom ou générée par des algorithmes. Vous pouvez utiliser le mot clé random pour obtenir une adresse mac aléatoire.

dns-nameservers - Adresses IP des serveurs de noms. Nécessite le package resolvconf. C'est un moyen de concentrer toutes les informations dans /etc/network/interfaces Au lieu d'utiliser /etc/resolv.conf Pour les configurations liées au DNS. Ne modifiez pas le fichier de configuration resolv.conf Manuellement car il sera modifié dynamiquement par les programmes du système.

dns-search example.net - Ajoutez example.net en tant que domaine aux requêtes de l'hôte, créant le FQDN. Option domain de /etc/resolv.conf

wpa-ssid - Sans fil: définissez un sans fil WPA SSID.

mtu - MTU taille. mtu 9000 = Jumbo Frame. Utile si votre boîtier Linux est connecté à des commutateurs prenant en charge des tailles MTU plus importantes. Peut casser certains protocoles (j'ai eu de mauvaises expériences avec les trames snmp et jumbo).

wpa-psk - Sans fil: définissez un PSK codé hexadécimal pour votre SSID.

ip_rp_filter 1 - Filtre de chemin inverse activé. Utile dans les situations où vous avez 2 routes vers un hôte, et cela forcera le paquet à revenir d'où il vient (même interface, en utilisant ses routes). Exemple: vous êtes connecté sur votre lan (192.168.1.1/24) Et vous avez un serveur dlna avec une interface sur votre lan (192.168.1.10/24) Et une autre interface sur dmz pour exécuter des tâches administratives (172.16.1.1/24). Pendant une session ssh de votre ordinateur vers dlna dmz ip, les informations doivent vous revenir, mais elles se bloqueront pour toujours car votre serveur dlna essaiera de fournir la réponse directement via son interface lan. Avec rp_filter activé, il s'assurera que la connexion reviendra d'où elle vient. Plus d'informations ici .

Certaines de ces options ne sont pas facultatives. Debian vous avertira si vous mettez une adresse IP sur une interface sans masque de réseau, par exemple.

Vous pouvez trouver d'autres bons exemples de configuration réseau ici .

Contenu connexe :

Liens contenant des informations relatives au fichier de configuration réseau /etc/network/interfaces:

183
user34720

J'ajouterais également que:

  • interfaces est pour les services ifup/ifdown.
  • Lorsque vous utilisez allow-hotplug, il ne démarre pas avec ifup/ifdown, les bcos doivent utiliser le drapeau --allow = hotplug.

U peut suivre ce qui se passe avec ifup en utilisant le drapeau --verbose.

Je ne suis pas sûr à 100% de cela, mais il semble que lorsque ifup est appelé, u exécutera tout à partir de/etc/network/interfaces avec up ... sauf indication contraire.

Je ne sais pas comment cela se rapporte à: la mise en réseau de services ...

Ce serait bien si quelqu'un montrait ce qui se passait après l'appel:

service networking restart

par rapport à ifup/ifdown.

0
yourstruly