Чому пристрої на різних локальних мережах, але в одній підмережі, не можуть спілкуватися?


22

У мене питання щодо перемикання. У мене є два пристрої, підключені до комутатора з IP-адресами 192.168.5.20 та 192.168.5.10. Обидва пристрої мають однаковий префікс, / 24. Це означає, що вони перебувають у одній підмережі.

Якщо я розділю ці пристрої на різні VLAN (10 і 20) на комутаторі, він не зв’яжеться, хоча вони знаходяться в одній підмережі. Чому це відбувається?


3
Вам потрібен маршрутизатор для маршруту між різними Вланами. Також, роблячи це, ви не можете мати однакову IP-підмережу на цих двох Вланах.

5
Привіт, Джим Пап і ласкаво просимо ... Це так, як ви підключили два ваших хости до двох різних комутаторів, один з міткою "LAN 10", а другий з написом "LAN 20". Налаштування VLAN на своєму комутаторі ділить ваш перемикач на кілька, віртуальних комутаторів.
jonathanjo

3
Це питання є дещо тавтологічним. Вони не можуть, бо не можуть, задумом. Створення окремих мереж VLAN логічно сегментує комутаційну мережу Internet. Тепер для зв'язку цих пристроїв потрібно використовувати певну форму маршрутизації між VLAN.
WakeDemons3

1
@Cown на маршрутизаторі Cisco неможливо мати адреси з однієї підмережі на різних інтерфейсах, але це мало спільного з самими VLAN, які не переймаються IP-адресами (і можуть використовуватися, скажімо, з IPX / SPX). І ... Cisco є важливим актором, але далеко не єдиним.
JFL

1
@Cown як би допомогли різні VRF? Вони б інакше не спілкувались, а щоб відповісти на ваше запитання, просто з'єднайте влани, настільки ж просто. З'єднання було доступне в маршрутизаторах Cisco ще задовго до того, як я взяв свій CCIE, і це було більше 20 років тому
Метт Дохан

Відповіді:


39

Одне з речей VLAN - це зробити фізичний перемикач і розбити їх на кілька менших "віртуальних" комутаторів.

Значення цього фізичного зображення одного вимикача та двох VLAN:

введіть тут опис зображення

Є чи ідентичні в роботі з цим логічним зображенням тієї ж топологія:

введіть тут опис зображення

Навіть якщо IP-адреси на другому зображенні були в одній підмережі, ви помітите, що між двома віртуальними комутаторами (тобто VLAN) немає "зв’язку", а отже, жоден можливий спосіб, з яким хости A / B можуть спілкуватися з хостами C / D.

Для того, щоб господарі на 2-му зображенні могли спілкуватися один з одним, вам знадобиться якийсь пристрій для полегшення зв'язку з одного "перемикача" на інший. Пристрій, який існує для цієї мети, є маршрутизатором - значить, для переходу кордону VLAN потрібен маршрутизатор:

введіть тут опис зображення

І завдяки тому, як працює маршрутизатор, кожен інтерфейс маршрутизатора повинен мати власну унікальну підмережу IP. Ось чому кожна VLAN традиційно вимагає власної унікальної підмережі IP - адже якщо між цими VLAN відбудеться комунікація, потрібні будуть унікальні підмережі.


Зображення, наведені вище, з мого блогу, ви можете прочитати більше про VLAN як концепцію тут , а також про маршрутизацію між VLAN тут .


2
Пастка для необережної: Не намагайтеся насправді розділити комутатор таким чином, ТОГО підключайте VLAN через немечені порти - якщо ви точно не знаєте, як налаштовані реалізації STP і CAM в цьому комутаторі.
rackandboneman

1
@rackandboneman Це хороша порада. Але, ясність, зображення в моєму дописі представляють лише один фізичний перемикач. "Зображення двох комутаторів" - це логічне зображення одного фізичного перемикача з двома VLAN.
Едді

2
"кожен інтерфейс маршрутизатора повинен мати власну, унікальну підмережу IP.", що може бути правдою для деяких реалізацій маршрутизатора, це не є універсальним. Принаймні в Linux ви можете призначити одну і ту ж підмережу для декількох інтерфейсів, а потім використовувати комбінацію проксі-арпу та / 32 маршрутів, щоб зробити потік трафіку між ними.
Пітер Зелений

@PeterGreen Винятки завжди існують. Тільки тому, що щось можна зробити, не означає, що це слід робити - а також не робить його актуальним для розглянутого питання.
Едді

29

Вся суть у віртуальній локальній мережі полягає у створенні окремих локальних мереж рівня 2 на одному фізичному пристрої.

Це як побудувати броньовану і звуконепроникну стіну в кімнаті, щоб створити 2 кімнати. Люди в кожній половині кімнати більше не можуть спілкуватися з людьми в іншій половині колишньої кімнати.

Таким чином, у вас є два хости в двох різних L2-мережах, щоб нічого не дозволяло їм спілкуватися.

Зауважте, що в більшості випадків немає сенсу використовувати одну і ту ж підмережу на двох різних VLAN. Стандартний випадок - пов’язати мережу IP з VLAN.


Мені важко думати про будь-який випадок, коли використання однієї і тієї ж підмережі на двох різних VLAN має сенс. Притворіться, що ви роутер, і ви отримаєте пакет, призначений для 192.168.5.15. Яка VLAN це?
Monty Harder

@MontyHarder Залежить. З якої мережі (віртуальної чи ні) вона походить?
Дедуплікатор

1
@Deduplicator Я не впевнений, чому це важливо, що таке вихідний IP-пакет пакету. Звідки ви знаєте, що таке VLAN IP, якщо ви використовуєте один і той же діапазон IP для двох або більше VLAN? Це просто не має сенсу.
Monty Harder

@MontyHarder У мене є такий випадок: у мене є з'єднання з провайдерами, які використовують однакову адресацію, і вони здійснюються через однакові комутатори. Оскільки я розмовляю з обома (через різні маршрутизатори), і вони не розмовляють між собою, це просто добре.
JFL

@MontyHarder Насправді дуже часто є одна і та ж підмережа у багатьох різних локальних мережах (а отже, і VLAN). Приватні адреси RFC1918 використовуються в мільйонах локальних мереж. Ви можете цілком мати декілька окремо NATED мереж на одній VLAN. Це, мабуть, трапляється рекламна нудота в хостингових умовах. Але ці мережі справді вважаються абсолютно незалежними.
jcaron

5

IP-підмережі логічно групують хостів - хости в межах однієї підмережі використовують з'єднання рівня 2 для прямого спілкування один з одним. Розмова з хостами в іншій підмережі вимагає використання шлюзу / маршрутизатора.

VLAN, що фізично групують хости - хости в одному сегменті VLAN / широкомовної мережі / L2 можуть безпосередньо спілкуватися один з одним. Хости в різних VLAN не можуть. (Не бійте мене - фізично група не дуже правильна, але це означає мою думку.)

Отже, коли два хости знаходяться в одній IP-підмережі, але в різних VLAN / домену широкомовної передачі / L2 вони не можуть спілкуватися: вихідний хост приймає місце призначення в межах своєї локальної мережі L2, і тому він намагається ARP-адресу адреси (або Рішення NDP для IPv6).

ARP працює, надсилаючи запит як трансляцію до локальної мережі L2, а хост із запитуваною IP-адресою відповідає зі своєю MAC-адресою. Оскільки хост призначення знаходиться поза локальною мережею, він ніколи не чує запит ARP і ARP не працює.

Навіть якщо джерело якось дізнається MAC-адресу призначення та створить кадр, адресований цьому MAC, він ніколи не дістанеться до пункту призначення, оскільки він знаходиться поза мережею L2. MAC з-за локальної мережі L2 безглузді і марні.


3

Доповнення до існуючих відповідей, які охоплюють питання з дизайнерської та теоретичної точки зору ...

Замість того, щоб запитувати " чому вони не спілкуються? ", Давайте запитаємо " що відбувається, коли вони намагаються спілкуватися?"

По-перше, що означає налаштувати VLAN на комутаторі? У нашому прикладі є декілька сокетів, налаштованих як VLAN 10, а деякі налаштовані VLAN 20. Визначенням VLAN є те, що підключені лише розетки в одній VLAN. Це означає, що кадр, отриманий на порту в заданій VLAN, коли-небудь надсилається до портів тієї ж 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

На цій діаграмі у нас є шість хостів, порти 1, 2, 5 знаходяться на VLAN 10, порти 3, 4, 6 - на VLAN 20.

Припустимо, хост А є статично налаштований як 192.168.5.10/24, а F статично налаштований як 192.168.5.20/24, з питання. Припустимо, B - E мають інші статичні адреси конфігурації (не має значення, якими вони є).

Якщо A pings 192.168.5.20, він визначає, що він знаходиться в тому ж / 24, тому перше, що трапляється, це запит ARP: Хто має 192.168.5.20, надісланий як ефірна мережа.

Комутатор приймає трансляцію через порт 1. Це VLAN 10, тому він надсилає трансляцію з портів 2 і 5, інші порти в VLAN 10. Хости B і E отримують запит ARP і ігнорують його, оскільки це не їх адреса.

Це воно.

Відповіді ARP не буде; наступне, що трапиться, - це таймаут на A з подальшим повторним запитом ARP, поки додаток не здасться.

Хост, підключений до будь-якого іншого, крім порту VLAN 10, нічого не побачить, незалежно від його IP-адреси. Це, очевидно, включає F, що становить 192.168.5.20.


1

Я очікую, що ви добре зрозумієте маскування підмережі. Якщо у вас є окремі VLAN, у вас повинен бути унікальний діапазон ip-адрес із підмережами. Це не суттєво.

VLAN - це окрема локальна мережа, але це віртуальна. Додатково віртуальна локальна мережа для розділення мереж в одному комутаторі. Вона створить окремий домен широкомовної передачі у вашому комутаторі. Але коли ви створюєте віртуальні локальні мережі з Same ip, це марно.

На додаток до цього вам потрібно налаштувати маршрутизацію Intervlan на своєму комутаторі.


2
Ні, це не неможливо мати кілька VLAN з однією підмережею. Це незвично і дещо відсторонено, але цілком можливо.
JFL

@JFL Щоправда, можливо, використовуючи або VRF, або якусь іншу форму роздільника, але я ще не бачив жодного випадку використання для цього. Будь ласка, просвіти мене.

@JFL те саме питання і для мене. Я тільки зараз спробував прослідкувати пакет пакетів Cisco з інтервланською маршрутизацією. Я не знаю, чи проблема з відстежувачем пакетів Cisco. Це не робота. Я згоден з коровою. це можливо у VRF.
інфра

1
@Cown Я не сказав, що це була гарна ідея, і не можна було змусити їх спілкуватися з мережею (але все-таки це можливо з NAT). Але у мене є деякі випадки використання. Наприклад, я маю взаємозв'язок з провайдерами, які проходять через деякі мережі, що перекриваються RFC1918. Вони підключені до одних і тих же комутаторів у різних VLAN та не спілкуються один з одним.
JFL

@JFL Вибачте, я просто не бачу, як це порівнювати з початковим питанням. Так, можна використовувати IP-адреси, що перекриваються, для взаємозв'язків або використання NAT, але я просто не думаю, що це відображає сценарій реального життя.

1

Поміркуйте, що станеться, якщо у вас вдома є локальна мережа та комп'ютер з IP 192.168.2.1. Ваш друг в дорозі також має вдома LAN та комп'ютер з IP 192.168.2.2. Вони в одній підмережі, то чому б вони не могли поговорити один з одним?

У такому прикладі причина інша, ніж ви просите.

Але VLAN досягає того ж результату - він сегментує мережу на другому рівні.

Моя думка полягає в тому, що ми можемо легко побачити, що факт "IP адреси знаходяться в одній підмережі" недостатній для визначення того, чи можуть пакети проходити між ними. Основна топологія також має грати роль.

Здійснюючи це до крайньої межі, на найнижчому шарі вам потрібен фізичний матеріал (ну, добре, чи повітря: D), щоб фактично перенести дані. Ваші комп'ютери можуть знаходитися в одному будинку в одній підмережі, але не бути фізично підключеними (або мати бездротове з'єднання), і тоді ви не очікуєте, що пакети будуть спрямовані.


0

Суть VLAN - це сегментація мережі. Ви також можете досягти того ж (деякі застереження вбік), використовуючи підмережі. Оскільки ваша підмережа розбита на 2 різні VLAN, ваші пристрої не можуть спілкуватися в мережі L2. Ви можете встановити інтерфейс IRB на комутаторі, щоб дозволити зв'язок між VLAN. Крім того, ви можете прокладати трафік через брандмауер та дозволити вибіркове спілкування між локальними мережами VLAN. В ідеалі, ви повинні спроектувати вашу мережу, щоб вона мала різні підмережі для кожної з VLAN, а потім брандмауер проклав трафік між VLAN. Сподіваюся, це допомагає.


1
Nonononono не використовує IRB в цій ситуації ... проблема полягає в тому, що комутатор ніколи не повинен був налаштовуватися з двома вланами в одній підмережі. Найкращою відповіддю є всі хости в одній підмережі в тій же влан.
Майк Пеннінгтон

0

Якщо з'єднання Ethernet містить більше однієї VLAN, всі, крім однієї з цих VLAN, повинні бути позначені тегами . Відповідний тег VLAN IEEE 802.1Q розміщується в кадрі Ethernet в тому місці, де зазвичай був би EtherType кадру. Перша частина тегу VLAN - це ідентифікатор протоколу тегів , який є постійним значенням 0x8100. Як результат, пристрій, який не знає тегів IEEE 802.1Q або налаштований на те, щоб їх не очікувати, побачить позначені кадри і подумає, що "це не IPv4, ARP, ані IPv6; не думаю, що я це взагалі розумію. Найкраще просто ігнорувати це ".

Перемикач, що підтримує VLAN, може фільтрувати пакети, що виходять до кожного порту, за допомогою їх тегів VLAN, а також може додатково знімати тег VLAN з однієї вибраної VLAN у вихідному трафіку з цього порту (і взаємно додавати тег VLAN до вхідного трафіку на цьому порту), так що будь-який трафік вибраної VLAN відображається як звичайний трафік Ethernet до 802.1Q для пристрою, підключеного до цього конкретного порту. Така вибрана VLAN відома як нативна VLAN для цього порту.

Стандарт 802.1Q дозволяє порту Ethernet підтримувати одночасну VLAN та будь-яку кількість тегів VLAN одночасно, але я розумію, що порт передає одночасно теги та без тегів кадри Ethernet - це дещо недобре налаштування: Потрібно пам’ятати, що одна з VLAN в порту / NIC відрізняється від усіх інших і повинна бути налаштована інакше. Схильний до помилок.

У термінології Cisco порт комутатора може бути налаштований як порт доступу, або як порт магістралі . Порт доступу надаватиме доступ лише до однієї VLAN, а теги VLAN автоматично позбавляються від вихідного трафіку та додаються до вхідного трафіку для цього порту. Порт магістралі, з іншого боку, передаватиме трафік на налаштованому наборі VLAN, але весь трафік буде тегом VLAN.

Отже, у вашому випадку два пристрої в двох різних VLAN на одному комутаторі, обидва використовують адреси однієї і тієї ж підмережі IP. Що буде залежати від того, як налаштовані порти комутаторів (і мережеві інтерфейси на пристроях) щодо VLAN.

1.) Перемикайте порти як порти доступу, пристрої, які не знають VLAN: порт комутатора фільтрує трафік "протилежної" VLAN, і тому пристрої ніколи не побачать трафік один одного. Це викликає питання, чи має сенс взагалі вважати їх такими, що "знаходяться в одному сегменті мережі".

2.) Перемикайте порти як порту магістралі, встановлені для передачі обох VLAN, пристроїв, не відомих VLAN: кожен пристрій подумає "Чому цей інший пристрій продовжує надсилати мені такі дивні речі Ethertype 0x8100? Я цього не говорю".

3.) Перемикайте порти як магістральні порти, встановлені для передачі лише по одній VLAN кожен, що знає VLAN: вам також потрібно вказати номери VLAN у мережевій конфігурації пристроїв, але кінцевий результат по суті такий же, як у випадку №1: пристрої не побачать трафік один одного.

4.) Перемикайте порти як магістральні порти, встановлені для передачі обох VLAN, пристроїв, відомих VLAN, але налаштованих на різні VLAN: тепер це рівень підтримки VLAN у пристроях, які фільтрують, але практичний результат такий же, як у випадках №1 та №3: ​​трафік "протилежного" пристрою ніколи не досягне рівня протоколу IP в стеку мережевого протоколу пристрою.

5.) Перемикайте порти як магістральні порти, встановлені для передачі обох VLAN, пристроїв, налаштованих з обізнаністю VLAN, обох VLAN, налаштованих у пристрої. Це вище, ніж те, що ви просили. Тепер пристрій буде ефективно присутній на обох VLAN.

Оскільки обидві VLAN мають вигляд, що вони відрізняються на рівні Ethernet, але використовують однакову підмережу IP, те, що станеться, залежатиме від того, як було реалізовано маршрутизацію IP пристроїв. Головною важливою деталлю буде те, чи призначений стек IP для використання сильної моделі хоста чи слабкої моделі хоста , і як саме концепція VLAN була інтегрована в систему.

Наприклад, Linux представить будь-які налаштовані мітки VLAN як додаткові віртуальні NIC, які відображають стан зв'язку базового фізичного NIC, але в іншому випадку діють настільки незалежно, наскільки це технічно можливо. Таким чином, це буде так само, як у вас було підключено два NIC до двох окремих сегментів фізичної мережі зі 100% перекриттями підмереж IP: система може отримувати вхідний трафік просто чудово, але буде вважати, що будь-який NIC, підключений до IP-підмережі призначення, хороший для спілкування будь-який інший хост у цій підмережі IP, і буде використовувати який-небудь (віртуальний, специфічний для VLAN) NIC вперше виникає в таблиці маршрутизації ... і тому конфігурація може працювати або не працювати в залежності від порядку, в якому різні частини Конфігурація NIC та VLAN ініціалізована. Вам потрібно буде використовувати Linux '

Використання однієї і тієї ж підмережі IP на двох різних сегментах - це проблема рівня 3, незалежно від того, яке розділення сегмента на рівні 2 є фізичним (= фактичні окремі NIC) або логічним (= створено за допомогою VLAN). Проблема шару-3 потребує рішення рівня 3: використання маршрутизатора чи іншої скриньки для симетричного NAT-однієї з підмереж для видалення перекриття підмережі IP було б набагато елегантніше, ніж намагатися обробити її на окремих пристроях.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.