Pourquoi des adresses IP sont-elles attribuées à chaque interface et non à chaque appareil? Quelles en seraient les implications?

12

Pourquoi devons-nous donner des adresses IP à chaque interface? Ne serait-ce pas suffisant d'en donner un à chaque appareil?

Tiago Oliveira
la source
3
Certains appareils ne reçoivent qu'une adresse IP de gestion qui n'est liée à aucune interface particulière. D'autres fonctionnent comme vous l'avez décrit. Elle varie selon l'appareil, le modèle et le logiciel / micrologiciel. En outre, vous devrez peut-être attribuer une adresse IP différente par interface en fonction des exigences d'une tâche.
Jesse P.
3
Réponse courte - pour rendre les routeurs possibles. Un routeur n'est qu'un ordinateur (de nos jours, probablement Linux) qui doit se connecter à différents réseaux - doit donc avoir la possibilité d'avoir plusieurs adresses IP. L'IP multiple par appareil est apparu à peu près en même temps que l'invention du routeur.
slebetman
Pas de réponse avec des informations historiques? Déçu :-)
Daniel W.
Cette question n'a aucun sens, ou n'est pas une déclaration logique concrète ou complète. C'est juste une combinaison de mots. Une adresse IP est un entier utilisé dans le protocole Internet défini dans diverses demandes de commentaires. Je ne crois pas qu'une notion de "périphérique" ou "d'interface soit jamais définie.
marshal craft
Par exemple, deux applications Windows exécutées sur la même machine physique peuvent utiliser un réseau qui utilise le protocole IP pour communiquer. Il y a des avantages et des inconvénients à cela. Cela dit, encore une fois, le protocole ip est une chose logique abstraite qui s'exécute au-dessus des couches sous-jacentes qui elles-mêmes peuvent être abstraites de la même manière que IP.
artisan maréchal

Réponses:

25

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.

Zac67
la source
14

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.

Piskvor a quitté le bâtiment
la source
1
Pourquoi ne pourriez-vous pas savoir ce qui est accessible à chaque interface sans que celles-ci aient des adresses IP différentes?
Paŭlo Ebermann
Vous pourriez (et il est en effet possible d'avoir de telles règles de routage), mais vous allez ensuite à un niveau d'abstraction inférieur, au lieu de dire "envoyer tout ce qui ne correspond pas à 10.1.2.1" et en finir avec cela (couche OSI 3), vous devez maintenant gérer "quelles sont les interfaces que je veux (couche 2)". C'est également possible , mais l'abstraction simplifie les choses.
Piskvor a quitté le bâtiment le
2
Et une autre chose - les adresses IP sont attribuées pour que les autres vous contactent également. Dites que vous êtes connecté via wifi et via ethernet; chacune des interfaces va dans un réseau différent, mais les deux réseaux peuvent accéder à Internet. Maintenant, vous envoyez un paquet vers 1.2.3.4 depuis votre 10.1.2.3 - quelle est la route de retour? Wifi ou filaire? Vous pouvez deviner, mais si vous devinez mal, le paquet revient par la mauvaise interface et pourrait être rejeté. (Oui, il y a des cas où vous voulez plusieurs interfaces avec la même adresse IP, ou un iface avec plus d'adresses IP, ou un iface sans aucun addr - inhabituel)
Piskvor a quitté le bâtiment le
5

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:

  • Un routeur relie deux réseaux; chacun des deux réseaux a un masque de réseau
  • 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!

Martin Rosenau
la source
Dans un cas spécifique, les spécifications TSN pour Ethernet autorisent plusieurs interfaces avec la même adresse IP, le même masque et la même adresse MAC afin de prendre en charge des chemins redondants transparents pour Ethernet déterministe (802.1cb). La redondance est gérée au niveau MAC (détection des doublons et ignorant les informations redondantes), donc du point de vue des hôtes, il s'agit d'une seule interface.
crasic
4

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).

Eddie
la source
1
Réponse agréable et concise, façon très claire d'expliquer pourquoi .
Stilez
3

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.

David Schwartz
la source
2

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:

  • pour acheminer le trafic vers le réseau local approprié, en fonction de l'adresse IP de destination
  • pour diriger le trafic vers le périphérique approprié sur ce réseau local (après une recherche ARP sur les réseaux locaux 802.x, par exemple).

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.

jcaron
la source
0

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.

Barmar
la source
0

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.

user1532080
la source