Pourquoi les appareils sur différents VLAN, mais sur le même sous-réseau, ne peuvent-ils pas communiquer?

22

J'ai une question sur le changement. J'ai deux appareils connectés à un commutateur avec les adresses IP 192.168.5.20 et 192.168.5.10. Les deux appareils ont le même préfixe, / 24. Cela signifie qu'ils se trouvent sur le même sous-réseau.

Si je divise ces périphériques sur différents VLAN (10 et 20) sur le commutateur, il ne communiquera pas bien qu'ils soient sur le même sous-réseau. Pourquoi cela se produit-il?

Jim Pap
la source
3
Vous avez besoin d'un routeur pour router entre différents VLAN. De plus, lorsque vous faites cela, vous ne pouvez pas avoir le même sous-réseau IP sur ces deux VLAN.
5
Bonjour Jim Pap et bienvenue ... C'est comme si vous aviez branché vos deux hôtes sur deux commutateurs différents, l'un étiqueté "LAN 10" et l'autre étiqueté "LAN 20". La configuration des VLAN sur votre commutateur divise votre commutateur en plusieurs commutateurs virtuels.
jonathanjo
3
Cette question est en quelque sorte une tautologie. Ils ne peuvent pas parce qu'ils ne le peuvent pas, par conception. La création de VLAN séparés segmente logiquement l'interréseau commuté. Vous devez maintenant utiliser une forme de routage inter-VLAN pour que ces appareils communiquent.
WakeDemons3
1
@Cown, il n'est pas possible sur un routeur Cisco d'avoir des adresses du même sous-réseau sur différentes interfaces, mais cela n'a pas grand-chose à voir avec le VLAN lui-même qui ne se soucie pas des adresses IP (et pourrait être utilisé avec, disons, IPX / SPX). Et ... Cisco est un acteur important mais loin d'être le seul.
JFL
1
@Cown comment les différents VRF pourraient-ils aider? Ils ne communiqueraient pas de toute façon alors, et pour répondre à votre question, il suffit de combler les vlan, aussi simple que cela. Le pontage était disponible dans les routeurs Cisco depuis longtemps avant que je prenne mon CCIE et c'était il y a plus de 20 ans
Matt Douhan

Réponses:

39

L'une des choses que font les VLAN est de prendre un commutateur physique et de les diviser en plusieurs commutateurs "virtuels" plus petits.

Signification de cette représentation physique d'un commutateur et de deux VLAN:

entrez la description de l'image ici

Est identique en fonctionnement à cette représentation logique de la même topologie:

entrez la description de l'image ici

Même si les adresses IP de la 2e image se trouvaient dans le même sous-réseau, vous remarquerez qu'il n'y a pas de "lien" entre les deux commutateurs virtuels (c.-à-d. Les VLAN), et donc aucun moyen possible pour les hôtes A / B de communiquer avec les hôtes C /RÉ.

Pour que les hôtes de la 2e image communiquent entre eux, vous auriez besoin d'une sorte de périphérique pour faciliter la communication d'un «commutateur» à l'autre. Le périphérique qui existe à cet effet est un routeur - par conséquent, un routeur est requis pour que le trafic traverse une frontière VLAN:

entrez la description de l'image ici

Et en raison du fonctionnement du routeur, chaque interface de routeur doit avoir son propre sous-réseau IP unique . C'est pourquoi chaque VLAN nécessite traditionnellement son propre sous-réseau IP unique - car si une communication doit avoir lieu entre ces VLAN, des sous-réseaux uniques seront nécessaires.


Les images ci-dessus sont de mon blog, vous pouvez en savoir plus sur les VLAN en tant que concept ici , et sur le routage entre les VLAN ici .

Eddie
la source
2
Piège pour les imprudents: n'essayez pas de diviser un commutateur de cette façon, puis connectez les VLAN via des ports non balisés - à moins que vous ne sachiez exactement comment les implémentations STP et CAM de ce commutateur sont configurées.
rackandboneman
1
@rackandboneman C'est un bon conseil. Mais, par souci de clarté, les images de mon article ne représentent qu'un seul commutateur physique . L '"image à deux commutateurs" est la représentation logique d' un commutateur physique avec deux VLAN.
Eddie
2
"chaque interface de routeur doit avoir son propre sous-réseau IP unique.", cela peut être vrai pour certaines implémentations de routeur, ce n'est pas universellement vrai. Au moins sous Linux, vous pouvez affecter le même sous-réseau à plusieurs interfaces, puis utiliser une combinaison de routes proxy arp et / 32 pour faire circuler le trafic entre elles.
Peter Green
@PeterGreen Des exceptions existent toujours. Ce n'est pas parce que quelque chose peut être fait que cela devrait être fait - ni le rendre pertinent pour la question à l'étude.
Eddie
29

L'intérêt du réseau local virtuel est de créer des réseaux locaux de couche 2 distincts sur un seul périphérique physique.

C'est comme construire un mur blindé et insonorisé dans une pièce pour créer 2 pièces. Les personnes de chaque moitié de la pièce ne peuvent plus communiquer avec les personnes de l'autre moitié de l'ancienne pièce.

Vous avez donc deux hôtes sur deux réseaux L2 distincts sans rien pour leur permettre de communiquer.

Notez que dans la plupart des cas, cela n'a aucun sens d'utiliser le même sous-réseau sur deux VLAN différents. Le cas standard est d'associer un réseau IP à un VLAN.

JFL
la source
J'ai du mal à penser à n'importe quel cas où l'utilisation du même sous-réseau sur deux VLAN différents est logique. Imaginez que vous êtes un routeur et que vous obtenez un paquet destiné à 192.168.5.15. De quel VLAN s'agit-il?
Monty Harder
@MontyHarder Depends. De quel réseau (virtuel ou non) provient-il?
Déduplicateur
1
@Deduplicator Je ne sais pas pourquoi il est important de savoir quelle est l'IP source du paquet. Comment savez-vous ce qu'est un VLAN une IP si vous utilisez la même plage IP pour deux ou plusieurs VLAN? Cela n'a tout simplement pas de sens.
Monty Harder
@MontyHarder J'ai le cas: j'ai des interconnexions avec des fournisseurs qui utilisent le même adressage, et ceux-ci sont effectués sur les mêmes commutateurs. Puisque je parle aux deux (via différents routeurs) et qu'ils ne se parlent pas, c'est très bien.
JFL
@MontyHarder En fait, il est très courant d'avoir le même sous-réseau sur de nombreux LAN différents (et donc sur des VLAN). Les adresses privées RFC1918 sont réutilisées dans des millions de LAN. Vous pouvez très bien avoir plusieurs réseaux NAT séparés sur le même VLAN. Cela se produit probablement ad nauseam dans les environnements d'hébergement. Mais ces réseaux sont en effet considérés comme complètement indépendants.
jcaron
5

Les sous-réseaux IP regroupent logiquement les hôtes - les hôtes du même sous-réseau utilisent leur connexion de couche 2 pour communiquer directement entre eux. Parler aux hôtes sur un autre sous-réseau nécessite l'utilisation d'une passerelle / routeur.

Les VLAN regroupent physiquement les hôtes - les hôtes d'un même VLAN / domaine de diffusion / segment L2 peuvent communiquer directement entre eux. Les hôtes de différents VLAN ne peuvent pas. (Ne me bat pas - physiquement, le groupe n'est pas vraiment correct mais cela marque mon point.)

Ainsi, lorsque deux hôtes se trouvent dans le même sous-réseau IP mais sur des VLAN / domaines de diffusion / réseaux L2 différents, ils ne peuvent pas communiquer: l'hôte source suppose la destination dans son réseau L2 local et essaie donc d'ARP l'adresse de destination (ou Résolution NDP pour IPv6).

ARP fonctionne en envoyant une demande en diffusion au réseau L2 local et l'hôte avec l'adresse IP demandée répond avec son adresse MAC. Étant donné que l'hôte de destination est en dehors du réseau local, il n'entend jamais la demande ARP et ARP échoue.

Même si la source connaissait en quelque sorte l'adresse MAC de la destination et construisait une trame adressée à ce MAC, elle n'atteindrait jamais la destination car elle est toujours en dehors du réseau L2. Les MAC externes au réseau L2 local sont vides de sens et inutiles.

Zac67
la source
3

Complémentaire aux réponses existantes, qui couvrent la question du point de vue de la conception et de la théorie ...

Au lieu de demander " pourquoi ne communiquent-ils pas? ", Demandons " que se passe-t-il lorsqu'ils essaient de communiquer?"

Tout d'abord, qu'est-ce que cela signifie de configurer un VLAN sur un commutateur? Dans notre exemple, il existe des sockets configurés comme VLAN 10 et certains VLAN 20. La définition d'un VLAN est que seuls les sockets sur le même VLAN sont connectés. Cela signifie qu'une trame reçue sur un port d'un VLAN donné n'est envoyée que vers des ports du même VLAN.

  10  10  20  20  10  20       VLAN of port
   1   2   3   4   5   6       Port number
===+===+===+===+===+===+===
   |   |   |   |   |   |
   A   B   C   D   E   F       Hosts

Dans ce diagramme, nous avons six hôtes, les ports 1, 2, 5 sont sur le VLAN 10, les ports 3, 4, 6 sont sur le VLAN 20.

Supposons que l'hôte A est configuré statiquement comme 192.168.5.10/24 et F est configuré statiquement comme 192.168.5.20/24, d'après la question. Supposons que B à E aient d'autres adresses de configuration statiques (peu importe ce qu'elles sont).

Si A pings 192.168.5.20, il détermine qu'il est dans le même / 24, donc la première chose qui se produit est une requête ARP: WHO HAS 192.168.5.20, envoyée en tant que diffusion Ethernet.

Le commutateur reçoit la diffusion sur le port 1. Il s'agit du VLAN 10, il envoie donc la diffusion des ports 2 et 5, des autres ports du VLAN 10. Les hôtes B et E reçoivent la demande ARP et l'ignorent car ce n'est pas leur adresse.

C'est ça.

Il n'y aura pas de réponse ARP; la prochaine chose qui se produira sera un délai d'expiration sur A, suivi de demandes ARP répétées ultérieures, jusqu'à ce que l'application abandonne.

Un hôte branché sur autre chose qu'un port VLAN 10 ne verra rien du tout, quelle que soit son adresse IP. Cela inclut évidemment F, qui est 192.168.5.20.

jonathanjo
la source
1

Je m'attends à ce que vous ayez une bonne compréhension du masquage de sous-réseau. Lorsque vous avez des VLAN séparés, vous devez avoir une plage d'adresses IP unique avec des sous-réseaux. Ce n'est pas essentiel.

Les VLAN sont un LAN séparé mais il s'agit d'un LAN virtuel. En plus, un LAN virtuel supplémentaire pour séparer les réseaux dans le même commutateur créera un domaine de diffusion distinct dans votre commutateur. Mais lorsque vous créez des réseaux locaux virtuels avec la même IP, cela ne sert à rien.

En plus de cela, vous devez configurer le routage Intervlan sur votre commutateur.

infra
la source
2
Non, il n'est pas impossible d'avoir plusieurs VLAN avec le même sous-réseau. C'est inhabituel et quelque peu découragé, mais c'est tout à fait possible.
JFL
@JFL C'est vrai, c'est possible, en utilisant des VRF ou une autre forme de séparateur, mais je n'ai encore vu aucun cas d'utilisation pour cela. Veuillez m'éclairer.
@JFL même problème pour moi aussi. Je viens d'essayer dans cisco packet tracer, avec un routage intervlan. Je ne sais pas si le problème avec Cisco packet tracer. Ce n'est pas du travail. Je suis d'accord avec Cown. c'est possible en VRF.
infra
1
@Cown Je n'ai pas dit que c'était une bonne idée ni qu'il était possible de les faire communiquer ensemble (mais c'est toujours possible avec NAT). Mais j'ai quelques cas d'utilisation. Par exemple, j'ai une interconnexion avec des fournisseurs qui passent par des réseaux RFC1918 qui se chevauchent. Ceux-ci sont connectés aux mêmes commutateurs dans différents VLAN et ne communiquent pas entre eux.
JFL
@JFL Désolé, je ne vois pas comment cela se compare à la question initiale. Oui, il est possible d'utiliser des adresses IP qui se chevauchent pour les interconnexions ou d'utiliser NAT, mais je ne pense pas que cela reflète un scénario réel.
1

Considérez ce qui se passe lorsque vous avez un réseau local à la maison et un ordinateur avec IP 192.168.2.1. Votre ami sur la route a également un LAN chez lui et un ordinateur avec IP 192.168.2.2. Ils sont sur le même sous-réseau, alors pourquoi ne peuvent-ils pas se parler?

Dans un tel exemple, la cause est différente de ce que vous demandez.

Mais un VLAN atteint le même résultat - il segmente un réseau, à la deuxième couche.

Mon point est que nous pouvons facilement voir que le fait "les adresses IP sont dans le même sous-réseau" n'est pas suffisant pour déterminer si les paquets peuvent être acheminés entre eux. La topologie sous-jacente a également un rôle à jouer.

Prenant cela à son extrême, à la couche la plus basse, vous avez besoin de matériel physique (enfin, d'accord, ou d'air: D) pour transporter réellement les données. Vos ordinateurs peuvent être dans la même maison sur le même sous-réseau mais ne pas être physiquement connectés (ou avoir une liaison sans fil) et vous ne vous attendez pas à ce que les paquets soient routés.

Courses de légèreté avec Monica
la source
0

Le point des VLAN est d'avoir une segmentation du réseau. Vous pouvez également obtenir la même chose (quelques mises en garde de côté) en utilisant des sous-réseaux. Étant donné que votre sous-réseau est divisé en 2 VLAN différents, vos appareils ne peuvent pas communiquer sur le réseau L2. Vous pouvez configurer l'interface IRB sur le commutateur pour permettre la communication entre les VLAN. Alternativement, vous pouvez acheminer le trafic via un pare-feu et autoriser une communication sélective entre les VLAN. Idéalement, vous devez concevoir votre réseau pour avoir différents sous-réseaux pour chacun des VLAN, puis pare-feu le trafic entre les VLAN. J'espère que cela t'aides.

Ricky
la source
1
Nonononono n'utilise pas IRB dans cette situation ... le problème est que le commutateur n'aurait jamais dû être configuré avec deux vlans sur le même sous-réseau. La meilleure réponse est de mettre tous les hôtes dans un sous-réseau dans le même vlan.
Mike Pennington
0

Lorsqu'une connexion Ethernet transporte plus d'un VLAN unique, tous ces VLAN sauf un doivent être étiquetés . La balise VLAN conforme IEEE 802.1Q est placée dans la trame Ethernet à l'emplacement où le EtherType de la trame serait normalement. La première partie de la balise VLAN est un identificateur de protocole de balise , qui est une valeur constante de 0x8100. En conséquence, un périphérique qui ne connaît pas les balises IEEE 802.1Q ou configuré pour ne pas les attendre verra les trames marquées et pensera "ce n'est ni IPv4, ARP ni IPv6; cet Ethertype 0x8100, qui est quelque chose de complètement différent et je ne le fais pas" t pense que je le comprends du tout. Mieux vaut simplement l'ignorer. "

Un commutateur prenant en charge les VLAN peut filtrer les paquets sortant vers chaque port par leurs balises VLAN et peut éventuellement supprimer la balise VLAN d'un VLAN sélectionné sur le trafic sortant de ce port (et ajouter réciproquement la balise VLAN au trafic entrant sur ce port), de sorte que tout trafic du VLAN sélectionné apparaisse comme du trafic Ethernet pré-802.1Q simple pour le périphérique connecté à ce port particulier. Un tel VLAN sélectionné est connu comme le VLAN natif pour ce port.

La norme 802.1Q permet à un port Ethernet de prendre en charge un seul VLAN natif et n'importe quel nombre de VLAN étiquetés en même temps, mais je comprends qu'un port passant à la fois des trames Ethernet étiquetées et non étiquetées en même temps est une configuration quelque peu défavorisée: vous '' Nous devons nous rappeler que l'un des VLAN d'un port / NIC est différent de tous les autres et doit être configuré différemment. Sujette aux erreurs.

Dans la terminologie Cisco, un port de commutateur peut être configuré en tant que port d'accès ou en tant que port de jonction . Un port d'accès ne donnera accès qu'à un seul VLAN et les balises VLAN seront automatiquement supprimées du trafic sortant et ajoutées au trafic entrant pour ce port. Un port de jonction, d'autre part, passera le trafic sur un ensemble configurable de VLAN, mais tout le trafic sera étiqueté VLAN.

Donc, dans le cas de deux appareils dans deux VLAN différents sur le même commutateur, tous deux utilisant des adresses sur le même sous-réseau IP. Ce qui se passera dépendra de la configuration des ports du commutateur (et des interfaces réseau sur les périphériques) concernant les VLAN.

1.) Commutez les ports en tant que ports d'accès, périphériques non compatibles avec le VLAN: le port du commutateur filtrera le trafic du VLAN "opposé", et ainsi les périphériques ne verront jamais le trafic de l'autre. Cela soulève la question de savoir s'il est logique de les considérer comme "étant sur le même segment de réseau".

2.) Commutez les ports en tant que ports de jonction configurés pour passer les deux VLAN, les appareils ne prenant pas en charge les VLAN: chaque appareil pensera "Pourquoi cet autre appareil continue-t-il de m'envoyer ce truc étrange Ethertype 0x8100 ??? Je ne parle pas cela."

3.) Commutez les ports en tant que ports de jonction définis pour ne transmettre qu'un seul VLAN chacun, appareils compatibles avec le VLAN: vous devrez également spécifier les numéros de VLAN dans la configuration réseau des appareils, mais le résultat final est essentiellement le même que dans le cas # 1: les appareils ne verront pas le trafic de l'autre.

4.) Commutez les ports en tant que ports de jonction configurés pour passer les deux VLAN, les appareils prenant en charge les VLAN mais configurés sur différents VLAN: c'est maintenant la couche de prise en charge des VLAN dans les appareils eux-mêmes qui font le filtrage, mais le résultat pratique est le même que dans les cas # 1 et n ° 3: le trafic du périphérique "opposé" n'atteindra jamais la couche de protocole IP dans la pile de protocoles réseau du périphérique.

5.) Commutez les ports en tant que ports de jonction définis pour passer les deux VLAN, le périphérique configuré avec la reconnaissance VLAN, les deux VLAN configurés dans le périphérique. C'est au-delà de ce que vous avez demandé. Désormais, l'appareil sera effectivement présent sur les deux VLAN.

Étant donné que les deux VLAN prétendent être distincts au niveau Ethernet, mais utilisent le même sous-réseau IP, ce qui se passera dépendra de la façon dont le routage IP des appareils a été mis en œuvre. Le principal détail important sera de savoir si la pile IP est conçue pour utiliser un modèle hôte fort ou un modèle hôte faible , et exactement comment le concept de VLAN a été intégré au système.

Par exemple, Linux présentera tous les VLAN étiquetés configurés comme des cartes d'interface réseau virtuelles supplémentaires, qui reflètent l'état de liaison de la carte d'interface réseau physique sous-jacente, mais autrement agissent aussi indépendamment que techniquement possible. Donc, ce sera comme si vous aviez deux cartes réseau connectées à deux segments de réseau physique distincts avec des sous-réseaux IP qui se chevauchent à 100%: le système peut recevoir très bien le trafic entrant, mais supposera que toute carte réseau connectée au sous-réseau IP de destination est bonne pour parler à tout autre hôte de ce sous-réseau IP, et utilisera le NIC (virtuel, spécifique au VLAN) qui apparaît en premier dans la table de routage ... et donc la configuration peut ou non fonctionner en fonction de l'ordre dans lequel les différentes parties du Les configurations NIC et VLAN ont été initialisées. Vous auriez besoin d'utiliser Linux '

L'utilisation du même sous-réseau IP sur deux segments distincts est un problème de couche 3, quelle que soit la séparation des segments au niveau de la couche 2, physique (= NIC réellement séparés) ou logique (= créé avec des VLAN). Un problème de couche 3 nécessitera une solution de couche 3: utiliser un routeur ou une autre boîte pour symétriquement-NAT l'un des sous-réseaux pour supprimer le chevauchement de sous-réseau IP serait beaucoup plus élégant que d'essayer de le gérer sur les appareils individuels.

telcoM
la source