Perché i dispositivi su VLAN diverse, ma sulla stessa sottorete, non possono comunicare?


22

Ho una domanda sul passaggio. Ho due dispositivi collegati a uno switch con indirizzi IP 192.168.5.20 e 192.168.5.10. Entrambi i dispositivi hanno lo stesso prefisso, / 24. Ciò significa che si trovano sulla stessa sottorete.

Se divido questi dispositivi su VLAN diverse (10 e 20) sullo switch, non comunicheranno anche se si trovano sulla stessa sottorete. Perché succede?


3
È necessario un router per instradare tra diversi Vlan. Inoltre, quando lo fai, non puoi avere la stessa sottorete IP su quei due Vlan.

5
Ciao Jim Pap e benvenuto ... È come se avessi collegato i tuoi due host a due diversi switch, uno etichettato "LAN 10" e l'altro etichettato "LAN 20". La configurazione di VLAN sullo switch divide lo switch in più switch virtuali.
jonathanjo,

3
Questa domanda è in qualche modo una tautologia. Non possono perché non possono, in base alla progettazione. La creazione di VLAN separate segmenta logicamente la rete interna commutata. Ora è necessario utilizzare una qualche forma di routing inter-VLAN per comunicare questi dispositivi.
WakeDemons3,

1
@Cown non è possibile su un router Cisco avere indirizzi dalla stessa sottorete su interfacce diverse, ma questo ha poco a che fare con la stessa VLAN che non si preoccupa degli indirizzi IP (e potrebbe essere usata, diciamo, con IPX / SPX). E ... Cisco è un attore importante ma lungi dall'essere l'unico.
JFL,

1
@Come come potrebbero aiutare i diversi VRF? Non comunicarebbero comunque, e per rispondere alla tua domanda è sufficiente collegare i Vlan, semplicemente così. Bridging è disponibile nei router Cisco da molto tempo prima che prendessi il mio CCIE e questo è
successo

Risposte:


39

Una delle cose che la VLAN fa è prendere uno switch fisico e suddividerlo in più switch "virtuali" più piccoli.

Significato di questa rappresentazione fisica di uno switch e due VLAN:

inserisci qui la descrizione dell'immagine

È identico in funzione a questa rappresentazione logica della stessa topologia:

inserisci qui la descrizione dell'immagine

Anche se gli indirizzi IP nella seconda immagine erano nella stessa sottorete, noterai che non esiste un "collegamento" tra i due switch virtuali (ad es. VLAN) e quindi nessun modo possibile che gli host A / B possano comunicare con gli host C / D.

Affinché gli host nella seconda immagine possano comunicare tra loro, è necessario disporre di una sorta di dispositivo per facilitare la comunicazione da uno "switch" all'altro. Il dispositivo esistente a tale scopo è un router , pertanto è necessario un router affinché il traffico attraversi un confine VLAN:

inserisci qui la descrizione dell'immagine

E a causa del funzionamento del router, ogni interfaccia del router deve avere la propria sottorete IP unica . Questo è il motivo per cui ogni VLAN richiede tradizionalmente la propria sottorete IP univoca - perché se deve avvenire una comunicazione tra tali VLAN, saranno richieste sottoreti uniche.


Le immagini sopra sono tratte dal mio blog, puoi leggere di più sulle VLAN come concetto qui e sul routing tra VLAN qui .


2
Trappola per gli incauti: non cercare di dividere effettivamente uno switch in quel modo, POI connettere le VLAN tramite porte senza tag - a meno che tu non sappia esattamente come sono impostate le implementazioni STP e CAM in quello switch.
rackandboneman,

1
@rackandboneman Questo è un buon consiglio. Ma, per chiarezza, le immagini nel mio post rappresentano solo un passaggio fisico . L '"immagine a due switch" è la rappresentazione logica di uno switch fisico con due VLAN.
Eddie,

2
"Ogni interfaccia router deve avere la propria sottorete IP unica.", che può essere vera per alcune implementazioni di router, non è universalmente vera. Almeno su Linux è possibile assegnare la stessa sottorete a più interfacce, quindi utilizzare una combinazione di proxy arp e / 32 route per far fluire il traffico tra di loro.
Peter Green,

@PeterGreen Esistono sempre eccezioni. Solo perché qualcosa può essere fatto, non significa che dovrebbe essere fatto, né lo rende rilevante per la domanda in corso.
Eddie,

29

L'intero punto della LAN virtuale è creare LAN di livello 2 separate su un singolo dispositivo fisico.

È come costruire un muro blindato e a prova di suono in una stanza per creare 2 stanze. Le persone in ogni metà della stanza non possono più comunicare con le persone nell'altra metà della precedente stanza.

Quindi hai due host su due distinte reti L2 senza nulla per consentire loro di comunicare.

Si noti che nella maggior parte dei casi non ha senso utilizzare la stessa sottorete su due VLAN diverse. Il caso standard è associare una rete IP a una VLAN.


Sono indeciso a pensare a qualsiasi caso in cui abbia senso usare la stessa sottorete su due diverse VLAN. Fai finta di essere un router e ottieni un pacchetto destinato a 192.168.5.15. Quale VLAN è quella?
Monty Harder,

@MontyHarder Depends. Da quale rete (virtuale o no) proviene?
Deduplicatore l'

1
@Deduplicator Non sono sicuro del perché sia ​​importante quale sia l'IP di origine del pacchetto. Come fai a sapere quale VLAN è un IP se stai utilizzando lo stesso intervallo IP per due o più VLAN? Non ha senso.
Monty Harder,

@MontyHarder Ho il caso: ho interconnessioni con i provider che usano lo stesso indirizzo e quelli sono fatti sugli stessi switch. Dal momento che parlo con entrambi (tramite router diversi) e non parlano tra loro, va bene.
JFL,

@MontyHarder In realtà, è molto comune avere la stessa sottorete su molte LAN diverse (e quindi VLAN). Gli indirizzi privati ​​RFC1918 vengono riutilizzati in milioni di LAN. Potresti benissimo avere diverse reti NAT separate sulla stessa VLAN. Questo probabilmente accade fino alla nausea negli ambienti di hosting. Ma quelle reti sono davvero considerate completamente indipendenti.
Jcaron,

5

Le sottoreti IP raggruppano logicamente gli host: gli host all'interno della stessa sottorete utilizzano la connessione di livello 2 per comunicare direttamente tra loro. Parlare con host su un'altra sottorete richiede l'uso di un gateway / router.

Le VLAN raggruppano fisicamente gli host: gli host all'interno dello stesso segmento VLAN / dominio di trasmissione / L2 possono dialogare direttamente. Gli host in diverse VLAN non possono. (Non picchiarmi: fisicamente il gruppo non è proprio corretto ma segna il mio punto.)

Pertanto, quando due host si trovano nella stessa sottorete IP ma su VLAN / domini di trasmissione / reti L2 diversi non possono comunicare: l'host di origine assume la destinazione all'interno della propria rete L2 locale e quindi tenta di ARP l'indirizzo di destinazione (o Risoluzione NDP per IPv6).

L'ARP funziona inviando una richiesta come trasmessa alla rete L2 locale e l'host con l'indirizzo IP richiesto risponde con il suo indirizzo MAC. Poiché l'host di destinazione è esterno alla rete locale, non sente mai la richiesta ARP e ARP non riesce.

Anche se la fonte conoscesse in qualche modo l'indirizzo MAC della destinazione e costruisse un frame indirizzato a quel MAC, non raggiungerebbe mai la destinazione poiché è ancora fuori dalla rete L2. I MAC esterni alla rete L2 locale sono insignificanti e inutili.


3

Complementare alle risposte esistenti, che coprono la domanda dal punto di vista del design e della teoria ...

Invece di chiedere " perché non comunicano? ", Chiediamo " cosa succede quando provano a comunicare?"

Innanzitutto, cosa significa configurare una VLAN su uno switch? Nel nostro esempio ci sono alcuni socket configurati come VLAN 10 e alcuni configurati VLAN 20. La definizione di una VLAN è che sono collegati solo socket sulla stessa VLAN. Ciò significa che un frame ricevuto su una porta in una determinata VLAN viene sempre e solo inviato alle porte della stessa 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

In questo diagramma abbiamo sei host, le porte 1, 2, 5 sono su VLAN 10, le porte 3, 4, 6 sono su VLAN 20.

Supponiamo che l'host A sia configurato staticamente come 192.168.5.10/24 e F sia configurato staticamente come 192.168.5.20/24, dalla domanda. Supponiamo che B to E abbia altri indirizzi di configurazione statici (non importa cosa siano).

Se A ping 192.168.5.20, determina che è nella stessa / 24, quindi la prima cosa che succede è una richiesta ARP: CHI HA 192.168.5.20, inviato come una trasmissione Ethernet.

Lo switch riceve la trasmissione sulla porta 1. Questa è VLAN 10, quindi invia la trasmissione dalle porte 2 e 5, le altre porte nella VLAN 10. Gli host B ed E ricevono la richiesta ARP e la ignorano poiché non è il loro indirizzo.

Questo è tutto.

Non ci sarà alcuna risposta ARP; la prossima cosa che succederà sarà un timeout su A, seguito da successive richieste ARP ripetute, fino a quando l'applicazione non si arrende.

Un host collegato a qualsiasi cosa diversa da una porta VLAN 10 non vedrà nulla, qualunque sia il suo indirizzo IP. Questo ovviamente include F, che è 192.168.5.20.


1

Mi aspetto che tu abbia una buona conoscenza del mascheramento della sottorete. Quando si dispone di VLAN separate, è necessario disporre di un intervallo di indirizzi IP univoco con le sottoreti. Non è essenziale.

Le VLAN sono una LAN separata ma è una LAN virtuale. Inoltre, la LAN virtuale per separare le reti nello stesso switch creerà un dominio di trasmissione separato nello switch. Ma quando si creano LAN virtuali con lo stesso ip è inutile.

Inoltre, è necessario configurare il routing intervlan sul proprio switch.


2
No, non è impossibile avere più VLAN con la stessa sottorete. È insolito e un po 'scoraggiato, ma è totalmente possibile.
JFL

@JFL È vero, è possibile, usando VRF o qualche altra forma di separatore, ma devo ancora vedere un caso d'uso per questo. Per favore, illuminami.

@JFL stesso problema anche per me. Ho appena provato a cisco packet tracer, con routing intervlan. Non so se il problema con Cisco Packet Traceer. Non è lavoro Sono d'accordo con Cown. è possibile in VRF.
infra

1
@Cown Non ho detto che era una buona idea né era possibile farli comunicare insieme (ma è ancora possibile con NAT). Ma ho alcuni casi d'uso. Ad esempio ho un'interconnessione con i provider che passano attraverso alcune reti RFC1918 sovrapposte. Questi sono collegati agli stessi switch in VLAN diverse e non comunicano tra loro.
JFL

@JFL Mi dispiace, non vedo come si confronta con la domanda iniziale. Sì, è possibile utilizzare gli indirizzi IP sovrapposti per i collegamenti o utilizzare NAT, ma non penso che rifletta uno scenario di vita reale.

1

Considera cosa succede quando hai una LAN a casa e un computer con IP 192.168.2.1. Il tuo amico in viaggio ha anche una LAN a casa sua e un computer con IP 192.168.2.2. Sono sulla stessa sottorete, quindi perché non possono parlarsi?

In un tale esempio, la causa è diversa da quella che stai chiedendo.

Ma una VLAN ottiene lo stesso risultato: segmenta una rete, al secondo livello.

Il mio punto è che possiamo facilmente vedere che il fatto che "gli indirizzi IP siano nella stessa sottorete" non è sufficiente per determinare se i pacchetti possono instradare tra di loro. Anche la topologia di base ha un ruolo da svolgere.

Portandolo al limite estremo, al livello più basso è necessario del materiale fisico (beh, va bene, o aria: D) per trasportare effettivamente i dati. I tuoi computer possono trovarsi nella stessa casa sulla stessa sottorete ma non essere fisicamente connessi (o avere un collegamento wireless) e quindi non ti aspetteresti che i pacchetti vengano instradati.


0

Il punto delle VLAN è avere una segmentazione della rete. Puoi anche ottenere lo stesso risultato (a parte alcuni avvertimenti) usando le sottoreti. Poiché la tua sottorete è suddivisa in 2 VLAN diverse, i tuoi dispositivi non possono comunicare sulla rete L2. È possibile configurare l'interfaccia IRB sullo switch per consentire la comunicazione tra le VLAN. In alternativa, è possibile instradare il traffico tramite un firewall e consentire la comunicazione selettiva tra le VLAN. Idealmente, è necessario progettare la propria rete in modo che abbia sottoreti diverse per ciascuna delle VLAN e quindi Firewall il traffico tra le VLAN. Spero che sia di aiuto.


1
Nonononono non usa IRB in questa situazione ... il problema è che lo switch non avrebbe mai dovuto essere configurato con due vlan nella stessa sottorete. La risposta migliore è mettere tutti gli host in una sottorete nello stesso vlan.
Mike Pennington,

0

Quando una connessione Ethernet trasporta più di una singola VLAN, tutte le VLAN tranne una devono essere contrassegnate . Il tag VLAN conforme allo standard IEEE 802.1Q è posizionato nel frame Ethernet nella posizione in cui si trova normalmente l'EtherType del frame. La prima parte del tag VLAN è un identificatore del protocollo tag , che ha un valore costante di 0x8100. Di conseguenza, un dispositivo ignaro dei tag IEEE 802.1Q o configurato per non aspettarseli vedrà i frame taggati e penserà "questo non è né IPv4, ARP né IPv6; questo Ethertype 0x8100, che è qualcosa di completamente diverso e io non ' non credo di capirlo affatto. Meglio ignorarlo. "

Uno switch che supporta la VLAN può filtrare i pacchetti in uscita su ciascuna porta dai loro tag VLAN e può facoltativamente rimuovere il tag VLAN da una VLAN selezionata sul traffico in uscita da quella porta (e aggiungere reciprocamente il tag VLAN al traffico in entrata su quella porta), in modo che qualsiasi traffico della VLAN selezionata appaia come semplice traffico Ethernet pre-802.1Q per il dispositivo collegato a quella particolare porta. Tale VLAN selezionata è nota come VLAN nativa per quella porta.

Lo standard 802.1Q consente a una porta Ethernet di supportare contemporaneamente una singola VLAN nativa e un numero qualsiasi di VLAN con tag, ma capisco che avere una porta che passi contemporaneamente sia i frame Ethernet con tag sia quelli senza tag sia una configurazione un po 'sfavorevole: tu' Dovremo ricordare che una delle VLAN in una porta / NIC è diversa da tutte le altre e deve essere configurata diversamente. Incline a errori.

Nella terminologia Cisco, una porta switch può essere configurata come porta di accesso o come porta trunk . Una porta di accesso fornirà l'accesso solo a una singola VLAN e i tag VLAN verranno automaticamente rimossi dal traffico in uscita e aggiunti al traffico in entrata per quella porta. Una porta trunk, d'altra parte, passerà il traffico su un set configurabile di VLAN, ma tutto il traffico sarà taggato con VLAN.

Quindi, nel tuo caso di due dispositivi in ​​due diverse VLAN sullo stesso switch, entrambi utilizzano indirizzi sulla stessa sottorete IP. Cosa accadrà dipenderà da come sono configurate le porte dello switch (e le interfacce di rete sui dispositivi) per quanto riguarda le VLAN.

1.) Passa le porte come porte di accesso, dispositivi non compatibili con la VLAN: la porta dello switch filtra il traffico della VLAN "opposta" e quindi i dispositivi non vedranno mai il traffico reciproco. Ciò solleva la questione se abbia o meno senso pensarli come "essere sullo stesso segmento di rete".

2.) Cambia le porte come porte trunk impostate per passare entrambe le VLAN, dispositivi non compatibili con VLAN: ogni dispositivo penserà "Perché quell'altro dispositivo continua a inviarmi quella strana roba Ethertype 0x8100 ??? Non parlo."

3.) Cambia porte come porte trunk impostate per passare solo una VLAN ciascuna, dispositivi compatibili con VLAN: dovrai specificare anche i numeri VLAN nella configurazione di rete dei dispositivi, ma il risultato finale è essenzialmente lo stesso del caso # 1: i dispositivi non vedranno il traffico reciproco.

4.) Passa le porte come porte trunk impostate per passare entrambe le VLAN, dispositivi compatibili con VLAN ma configurate su VLAN diverse: ora è il livello di supporto VLAN nei dispositivi stessi che esegue il filtraggio, ma il risultato pratico è lo stesso dei casi n. 1 e # 3: il traffico del dispositivo "opposto" non raggiungerà mai il livello del protocollo IP nello stack del protocollo di rete del dispositivo.

5.) Passare le porte come porte trunk impostate per il passaggio di entrambe le VLAN, dispositivo configurato con riconoscimento VLAN, entrambe le VLAN configurate nel dispositivo. Questo è al di là di ciò che hai chiesto. Ora il dispositivo sarà effettivamente presente su entrambe le VLAN.

Poiché entrambe le VLAN fingono di essere distinte a livello Ethernet, ma utilizzano la stessa sottorete IP, ciò che accadrà dipenderà da come è stato implementato il routing IP dei dispositivi. Il principale dettaglio importante sarà se lo stack IP è progettato per utilizzare un modello host forte o un modello host debole , e in che modo il concetto di VLAN è stato integrato nel sistema.

Ad esempio, Linux presenterà tutte le VLAN contrassegnate configurate come NIC virtuali extra, che riflettono lo stato di collegamento della NIC fisica sottostante ma che altrimenti agiscono come indipendenti il ​​più tecnicamente possibile. Quindi sarà come se tu avessi due schede di rete collegate in due segmenti di rete fisica separati con sottoreti IP sovrapposte al 100%: il sistema potrebbe ricevere il traffico in entrata bene, ma assumerà che qualsiasi scheda di rete connessa alla sottorete IP di destinazione sia buona per parlare con qualsiasi altro host in quella sottorete IP e utilizzerà quale NIC (virtuale, specifica per VLAN) si verifica per prima nella tabella di routing ... e quindi la configurazione potrebbe o meno funzionare a seconda dell'ordine in cui le varie parti della La configurazione di NIC e VLAN è stata inizializzata. Dovresti usare Linux '

L'uso della stessa sottorete IP su due segmenti distinti è un problema di livello 3, indipendentemente dalla separazione dei segmenti nel livello 2 sia fisica (= NIC separate effettive) o logica (= creata con VLAN). Un problema di livello 3 avrà bisogno di una soluzione di livello 3: usare un router o qualche altra scatola per simmetrico-NAT una delle sottoreti per rimuovere la sovrapposizione della sottorete IP sarebbe molto più elegante che provare a gestirlo sui singoli dispositivi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.