Quand le réseau, la diffusion et la passerelle sont-ils nécessaires pour configurer manuellement une interface réseau?

10

https://wiki.debian.org/NetworkConfiguration#Bridging_without_Switching

L'URL ci-dessus indique ce qui suit. Mais je ne sais pas quand elles sont facultatives et quand elles ne le sont pas. Pourriez-vous me fournir un lien vers des références qui décrivent cela? Merci.

Si vous le configurez manuellement, quelque chose comme cela définira la passerelle par défaut (réseau, diffusion et passerelle sont facultatifs):

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254
user1424739
la source
2
Dans les versions récentes d'Ubuntu, qui utilisent dnsmasq, vous devez également déclarer les serveurs de noms DNS.
chili555
@ chili555, cela fonctionne si vous ajoutez le package resolvconf. Lisez ma réponse sous celle-ci. ;-) Êtes-vous d'accord avec la réponse, user1424739?
Anders
Je crois que dans les versions récentes d'Ubuntu, resolvconf est installé par défaut; non??
chili555
1
Pourriez-vous mettre un peu de temps à examiner la réponse @Anders. Voir Que dois-je faire lorsque quelqu'un répond à ma question?
user.dz
@ chili555 Oui, ça l'est. Mais je voulais juste clarifier la connexion entre ce paquet et les serveurs DNS dans les interfaces / e / n /. Désolé si je n'ai pas été clair.
Anders

Réponses:

25

Comment configurer une adresse IP statique et pourquoi

Remarquer! Je ne parle pas d'autres façons de configurer le réseau comme avec NetworkManager. Les appareils mentionnés dans /etc/network/interfacesne sont pas touchés par NM

Pour pouvoir communiquer via un réseau IP (IPv4 et IPv6), l'ordinateur doit connaître son adresse IP. Par conséquent, une addressdirective est nécessaire pour le dire à l'ordinateur.

Lorsque l'ordinateur souhaite ensuite parler à un autre ordinateur, il utilise l'adresse IP des autres ordinateurs pour vérifier si cet ordinateur se trouve sur le même réseau, LAN. Si c'est le cas, l'ordinateur peut communiquer directement avec l'autre ordinateur.

Alors, comment l'ordinateur sait-il quand il communique avec un ordinateur sur le même réseau local? En utilisant les réseaux netmask, où la partie nette de l'adresse est définie sur uns et la partie hôte est définie sur des zéros. Ainsi, en effectuant une opération ET au niveau du bit entre chaque bit d'une adresse IP et le masque de réseau, nous obtiendrons l'adresse réseau de l'adresse IP, où la partie hôte est nulle. Donc, si nous faisons cela sur l'adresse IP des ordinateurs et sur l'adresse IP des autres ordinateurs, nous obtenons chaque adresse réseau. S'ils sont égaux, cela signifie que les ordinateurs sont dans le même réseau et peuvent communiquer directement entre eux.

Si les adresses réseau ne sont pas égales, elles se trouvent sur un LAN différent et ne peuvent pas communiquer directement entre elles. Ensuite, l'ordinateur doit utiliser un ordinateur spécial connecté à d'autres réseaux locaux. Cet ordinateur est un routeur (qui pourrait également avoir un pare-feu et un NAT). Ainsi, lorsque l'ordinateur souhaite parler à d'autres ordinateurs en dehors du LAN, il doit connaître l'adresse de cet ordinateur définie avec la gatewaydirective. Si une autre interface a déjà défini une gatewayvaleur, vous ne devez pas et ne devez pas définir une autre directive de passerelle pour cette interface. La gatewaydirective définit l'itinéraire par défaut pour l'ordinateur, vous n'avez donc besoin que d'un seul pour IPv4 et d'un seul pour IPv6 sur chaque machine. Cette adresse réseau peut être définie manuellement avec la networkdirective.

Parfois, l'ordinateur souhaite communiquer avec tous les ordinateurs du réseau local et utilise l'adresse de diffusion. Cette adresse est écoutée par tous les ordinateurs du même réseau local. C'est fondamentalement la même chose que l'adresse réseau, sauf que la partie hôte n'est pas tous des zéros et au lieu de cela tous. Cette adresse de diffusion est définie par la directive broadcastdans l'interface.

L' networkadresse d' interface ne doit être calculée qu'une seule fois et est généralement calculée correctement à partir de celle-ci addresset des netmaskdirectives. Idem avec l' broadcastadresse. Vous n'avez donc pas besoin de les régler. En fait, si vous définissez l'une ou les deux sur des valeurs incorrectes, vous risquez de perdre la connexion à Internet et à d'autres ordinateurs de votre réseau local. Donc, sauf si vous avez des valeurs étranges, laissez l'ordinateur les calculer pour vous.

Ainsi, des paramètres statiques minimaux, ou strophe, /etc/network/interfacespeuvent ressembler à ceci pour l'appareil eth1dans un réseau privé:

iface eth1 static inet
     address   192.168.44.10
     netmask   255.255.255.0
     gateway   192.168.44.1

Comment fonctionne la résolution de noms et comment elle est liée au DNS.

Les noms de domaine sont utilisés pour convertir entre les noms de domaine faciles à lire et à retenir par les humains et les adresses IP pas si faciles à retenir, mentionnées ci-dessus. C'est ce qu'on appelle la résolution de noms .

Ceci est généralement contrôlé par le fichier /etc/nsswitc.confet la ligne qui commencent par hosts:. Si vous demandez à l'ordinateur de se connecter à l'ordinateur my.example.com, il examinera ce fichier et essaiera de résoudre l'adresse IP à partir du nom my.example.com. Ce fichier ne répond pas réellement à la question "quelle IP a mon.exemple.com", il indique simplement à l'ordinateur où il pourrait trouver la réponse.
Habituellement, il essaie d'abord le /etc/hostsfichier pour les noms locaux statiques, puis avahi mDNSpour les noms locaux dynamiques, puis un resovler de nom de domaine DNS pour obtenir un nom sur Internet.

Si certains d'entre eux tardent à répondre à vos questions, il peut sembler que l'ordinateur est bloqué pendant un certain temps. Donc, si vous obtenez cela, vérifiez d'abord la résolution de nom.

Donc, en ajoutant des adresses statiques, vous pouvez simplement l'ajouter à votre /etc/hostsfichier. Soit dit en passant, si vous avez une adresse statique, vous devriez probablement y changer l'adresse IP de votre machine en votre adresse IP et non celle par défaut 127.0.1.1(qui se trouve dans le réseau localnet où se trouve localhost 127.0.0.1). Cela ne fonctionne que pour les clients et non pour les serveurs.

Les adresses dynamiques que vous obtenez des machines Linux avec le avahipackage et des machines Apple (et MS Windows avec iTunes?). Cela est géré par "magie" et vous n'aurez pas besoin de résoudre ce problème.

Le DNS est utilisé pour accéder à Internet et vous devez indiquer à l'ordinateur où se trouvent les serveurs DNS que vous souhaitez utiliser, quelle adresse IP utiliser et quel est votre domaine DNS par défaut.

Cela se fait dans le fichier /etc/resolv.confet peut être configuré de manière statique. Cela ne fonctionne pas très bien dans notre monde pas si statique, donc vous avez généralement un package appelé resolvconfinstallé. Cela vous permet de configurer ces paramètres dans le /e/n/interfacesfichier.

Donc, si nous supposons que nous voulons ajouter l'un des serveurs DNS de Google 8.8.8.8, et le serveur DNS de votre FAI 192.0.2.1, et votre domaine de my.example.orgdomaine par défaut, il vous suffit de modifier le /etc/network/interfacesfichier et d'ajouter ces deux lignes dans la strophe du périphérique statique.

    dns-nameservers   8.8.8.8  192.0.2.10
    dns-search        my.example.org

Vous pouvez également remarquer que le résolveur DNS n'utilisera qu'un maximum de trois serveurs DNS. Veuillez le rechercher dans la page mande resolv.conf. Comme d'habitude, vous pouvez utiliser la commande man nsswitch.conf, man resolv.confet man resolvconfpour plus d'informations.

Notez également que j'utilise le domaine example.com et example.org et le réseau IP 192.0.2.0/24 pour l'exemple de serveur DNS du FAI. Ceux-ci sont explicitement définis pour être utilisés dans des exemples. Voir http://example.com/ ou http://tools.ietf.org/html/rfc2606 et rfc5735

Comment vérifiez-vous ensuite que cela fonctionne?
Vous pouvez le faire de plusieurs façons, mais j'utilise habituellement

getent hosts my.test.com

pour tester l'ensemble de la configuration pour la résolution de noms. Si je veux simplement vérifier si le DNS fonctionne, j'utilise l'une de ces commandes:

host my.test.com
dig my.test.com

Mais rappelez-vous que ceux-ci ne testent que DNS via les paramètres du /etc/resolv.conffichier, et non la /etc/nsswitch.confpartie. C'est peut-être ce que vous voulez ou non.

Anders
la source
1
Belle explication, merci. Comme chili555 mentionne l'importance du DNS pour résoudre les noms de domaine, ce sera bien si vous ajoutez un point à ce sujet. (Comme pour les connexions Internet ou WAN, il est nécessaire de tout configurer)
user.dz
Quelque chose comme ça?
Anders
1
Je vous en prie. :-) Je me demande si c'est une assez bonne réponse à user1424739
Anders
Quoi qu'il en soit, /etc/internet/interfacessont sur le point d'être obsolètes par Ubuntu, en faveur des leurs NetPlan, voir /etc/netplan/*.yamlet NM(qui peuvent être modifiés avec nm-tools).
Anders