Pourquoi devons-nous donner des adresses IP à chaque interface? Ne serait-ce pas suffisant d'en donner un à chaque appareil?
Pourquoi devons-nous donner des adresses IP à chaque interface? Ne serait-ce pas suffisant d'en donner un à chaque appareil?
Réponses:
La connexion d'une interface à un réseau en fait une partie de ce réseau. Par conséquent, l'adresse IP est une propriété de la connexion, pas l'hôte.
De même, un hôte peut avoir de nombreuses connexions réseau et, par conséquent, des adresses IP. Différentes interfaces ont souvent des fonctions différentes, il est donc important de les distinguer (par exemple, console interne, services publics, iSCSI).
Les routeurs nécessitent plusieurs adresses IP pour leurs interfaces.
Non.
Cela dit, voyons un exemple simplifié:
J'ai un ordinateur avec trois interfaces: eth0
(Ethernet filaire), wlan0
(wifi) et vboxnet0
(virtualbox). L'une des interfaces est connectée à un réseau interne, une est connectée à Internet et la dernière est connectée à un réseau d'ordinateurs virtuels. Disons que je n'ai qu'une seule adresse, 10.1.2.3, et que je souhaite envoyer un grand nombre de paquets vers 192.168.1.2, accessibles sur l'un de ces réseaux - où dois-je les envoyer? Vous ne pouvez pas simplement les envoyer partout, un tel comportement inonderait rapidement tous les réseaux.
Mais si l'interface eth0 a 192.168.1.3, wlan0 a 10.1.2.3 et vboxnet0 a 172.0.0.1, alors la table de routage par défaut dira probablement "envoyez-le eth0". (Cela peut évidemment devenir beaucoup plus compliqué avec des règles de routage plus complexes).
Et inversement, je souhaiterais peut-être exécuter un service uniquement sur l'interface ouverte au réseau privé - donc lorsqu'une demande arrive sur une interface différente, elle n'est pas du tout gérée.
Cas 1: Routeurs
Théoriquement, cela serait possible.
Cependant, normalement un paquet IP est envoyé "directement" à la destination lorsque l'adresse IP "correspond" à un certain masque de réseau (par exemple 10.0.0.0/28); sinon le paquet est envoyé sur un routeur.
Ça signifie:
Les paquets envoyés d'un ordinateur à un autre dans l'un des deux réseaux ne passent pas par un routeur.
Cela signifie que les adresses IP de chaque ordinateur correspondent au masque de réseau du réseau auquel ils sont connectés.
Les paquets envoyés au routeur (cela inclut les paquets acheminés par le routeur!) Ne sont pas envoyés d'un ordinateur au routeur via un second routeur.
Cela signifie que l'adresse IP du routeur doit correspondre aux masques de réseau des deux réseaux.
Les paquets IP envoyés depuis un ordinateur d'un réseau vers un ordinateur de l'autre réseau sont cependant envoyés via le routeur.
Cela signifie que les adresses IP des ordinateurs d'un réseau ne doivent pas correspondre au masque de réseau de l'autre réseau.
Il est presque impossible de choisir une adresse IP et deux masques réseau de manière à ce qu'une seule adresse IP corresponde aux deux masques réseau, mais de nombreuses adresses IP ne correspondent qu'à un seul masque réseau.
Cas 2: différents réseaux privés
Nous pourrions avoir le cas où un ordinateur est connecté à deux réseaux privés qui ne peuvent pas échanger de données entre eux.
Dans ce cas, un ordinateur peut avoir la même adresse IP dans les deux réseaux.
Dans le cas d'IPv4, la plupart des systèmes d'exploitation ne prendront pas en charge cela, car les systèmes d'exploitation utilisent les masques de réseau des deux réseaux pour les distinguer. Les réseaux doivent avoir des masques de réseau différents ...
Dans le cas d'IPv6 (en utilisant des adresses "link-local"), un ordinateur peut avoir la même adresse IP (link-local) dans deux réseaux différents - et donc deux cartes réseau peuvent avoir la même adresse IP!
Un périphérique doté d'une adresse IP existe au sein d' un réseau.
Un routeur est un appareil dont le but principal est de transmettre le trafic entre les réseaux .
Pour qu'un routeur passe des paquets entre deux réseaux, il doit exister au sein des deux réseaux.
Le routeur aura un «bras» à l'intérieur de chaque réseau - ou, comme nous l'appelons, une interface . Et la façon dont une interface existe au sein d'un réseau est en lui attribuant une adresse IP au sein du réseau.
Par conséquent, lors de la configuration d' un routeur, chaque interface de reçoit une adresse IP pour identifier les réseaux qui que le routeur appartient à l' intérieur .
Avertissement: Le lien ci-dessus est vers mon blog. Mon blog n'est pas monétisé. Je ne tire aucun profit de votre lecture. Je fournis un lien simplement pour votre bénéfice (et celui de tout autre lecteur).
Je me demandais, pourquoi devons-nous donner des adresses IP à chaque interface? Ne donnerait-il pas assez à chaque appareil?
Permettez-moi de commencer par contester votre hypothèse. Pourquoi dites-vous que ce n'est pas ainsi que les machines se comportent? Supposons que j'attribue 192.168.1.1/24 à eth1 et 192.168.2.1/24 à eth2. Outre l'installation d'une route pour 192.168.1.0/24 out eth1 et 192.168.2.0/24 out eth2 et la détermination de l'adresse IP source préférée pour les paquets envoyés le long de cette route, à quel point importe vraiment l'interface à laquelle j'attribue l'adresse IP? Qu'est-ce qui change vraiment? Dans quel sens la machine ne se comporte-t-elle pas comme si toutes les adresses IP attribuées aux interfaces de la machine appartiennent à la machine?
Les deux approches sont utilisées. L'approche la plus courante est en fait un hybride de ces deux approches.
À l'extrême «attribuer une adresse IP à un périphérique», vous pouvez imaginer un périphérique qui se comporte comme si toutes ses interfaces étaient connectées à un pont de filtrage avec une adresse IP attribuée au pont.
À l'extrême "donner à chaque interface une adresse IP", vous pouvez imaginer un appareil qui se comporte comme si chaque interface qu'il avait était comme une machine distincte. (Voir ici si vous pensez que c'est comme cela que les appareils fonctionnent actuellement ou pensez à quelqu'un qui se connecte à une adresse IP attribuée à une interface mais les paquets arrivent et en sont envoyés une autre.)
En pratique, la plupart des machines fonctionnent quelque part entre les deux. Ils agissent comme si toutes les adresses IP appartenaient à la machine. L'attribution d'une adresse IP à un périphérique particulier ne fait pas grand-chose d'autre que de dire au système d'exploitation d'installer une route par défaut sur cette interface et de définir l'adresse IP source par défaut pour les paquets envoyés sur cette interface où l'adresse IP source n'est pas '' t forcé.
Sinon, ils se comportent comme si toutes les adresses IP appartenaient à la machine. La façon dont un paquet est traité ne dépend pas beaucoup de l'interface sur laquelle il est reçu - les paquets avec une adresse IP source attribuée à une interface reçue sur une autre sont routiniers. À quelle interface une adresse est affectée n'a aucun effet direct sur l'interface à laquelle un paquet est envoyé, la table de routage le détermine.
Dans le cas général, vous avez besoin d'une adresse IP par réseau local auquel vous vous connectez, et c'est exactement comme cela que TCP / IP a été défini: chaque hôte d'un réseau local donné a une adresse IP, ce qui permet:
Tant que vous avez des réseaux locaux avec plusieurs périphériques connectés (la plupart des réseaux locaux 802.x, y compris Ethernet, Wi-Fi), il est assez difficile de contourner cela, sauf si vous changez fondamentalement le fonctionnement de TCP / IP.
Cependant, il est en fait possible d'éviter cela, bien que ce soit assez spécifique.
Prenons un réseau qui n'a que des liaisons point à point (Ethernet point à point entre deux appareils sans commutateur ou concentrateur, liaisons DSL, liaisons SONET / SDH, Frame Relay ou ATM VC ...).
La convention habituelle consiste à utiliser un / 30 pour chaque lien, afin que le périphérique à chaque extrémité ait une adresse IP sur ce lien.
Mais vous pouvez utiliser "IP non numéroté" et ne pas associer d'adresse IP à ces liens. Maintenant, vous attribuez une IP à l'interface de bouclage du périphérique (n'importe quelle interface vraiment, mais le bouclage est le plus simple à cet effet), et vous utilisez un protocole de routage dynamique (IS-IS, OSPF, EIGRP ...). Ce protocole de routage annoncera comment acheminer le trafic vers cette adresse IP via les différents liens non numérotés.
Les adresses IP incluent les informations de routage. Une adresse IP est divisée en deux composants, le numéro de réseau et le numéro d'hôte , en fonction d'une longueur de préfixe affectée (qui était initialement exprimée sous la forme d'un masque de réseau, et c'est encore souvent la façon dont elle est implémentée en interne dans les piles de réseau).
Pour que le routage fonctionne correctement, tous les appareils connectés à un réseau particulier doivent avoir des adresses avec le même numéro de réseau. Les expéditeurs déterminent si le récepteur se trouve sur le même réseau ou sur un réseau différent en comparant leur propre numéro de réseau à l'adresse du récepteur. S'ils sont dans le même réseau, ils envoient directement; sinon, ils envoient à un routeur dont le travail consiste à rapprocher le message de la destination.
Donc, si un appareil est connecté à plusieurs réseaux, il a besoin d'une adresse sur chacun de ces réseaux afin qu'il puisse être atteint par les appareils de ce réseau.
Cela dit, il n'est pas vraiment nécessaire que les adresses soient attribuées spécifiquement à des interfaces réseau particulières. Le périphérique pourrait simplement avoir une liste de toutes les adresses IP qu'il possède dans une seule table. Mais les interfaces ont toujours besoin d'informations sur le réseau auquel elles sont connectées. En attribuant un masque IP et réseau à chaque interface, nous mettons ces informations au même endroit, simplifiant la conception. Il n'y a pas besoin de code supplémentaire pour garder la liste des adresses IP cohérente avec la liste des réseaux auxquels les interfaces sont connectées.
Il pourrait être suffisant d'avoir une adresse IP dans le cas standard, mais comme le soulignent d'autres réponses, il y a de nombreux cas où ce n'est pas le cas.
D'autres réponses ont déjà évoqué le cas d'un routeur. On mentionne virtualbox, ce qui est le cas des machines virtuelles: il se peut que vous exécutiez sur un seul périphérique physique plusieurs virtuels. Un autre cas est celui des VLAN, vous pourriez en fait avoir, connectés à une seule carte réseau, plusieurs LAN virtuels différents, avec des adresses IP différentes. Et vous pouvez même pour certaines raisons avoir une interface avec plusieurs IP, par exemple parce que vous souhaitez exécuter plusieurs serveurs Web sur le port TCP 80. Une telle configuration n'est pas rare pour les serveurs, le matériel que vous louez peut avoir une seule carte d'interface réseau , mais vous aurez plusieurs adresses IP configurées.