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/interfaces
ne 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 address
directive 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 gateway
directive. Si une autre interface a déjà défini une gateway
valeur, vous ne devez pas et ne devez pas définir une autre directive de passerelle pour cette interface. La gateway
directive 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 network
directive.
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 broadcast
dans l'interface.
L' network
adresse d' interface ne doit être calculée qu'une seule fois et est généralement calculée correctement à partir de celle-ci address
et des netmask
directives. Idem avec l' broadcast
adresse. 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/interfaces
peuvent ressembler à ceci pour l'appareil eth1
dans 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.conf
et 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/hosts
fichier pour les noms locaux statiques, puis avahi mDNS
pour 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/hosts
fichier. 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 avahi
package 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.conf
et 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é resolvconf
installé. Cela vous permet de configurer ces paramètres dans le /e/n/interfaces
fichier.
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.org
domaine par défaut, il vous suffit de modifier le /etc/network/interfaces
fichier 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 man
de resolv.conf
. Comme d'habitude, vous pouvez utiliser la commande man nsswitch.conf
, man resolv.conf
et man resolvconf
pour 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.conf
fichier, et non la /etc/nsswitch.conf
partie. C'est peut-être ce que vous voulez ou non.