Для перемикання підключені два хости різних підмереж


10

Дві безлічі різних підмереж, нехай A - 10.1.2.1/24 і B - 10.1.3.1/24 підключаються до одного комутатора S. Чи можуть вони спілкуватися?

Наскільки я розумію:

  • A посилає пакети з IP-адресою B
  • S отримує його і порівнює його зі значеннями в таблиці збережених адрес, а інша передає його.
  • B отримує пакети, перевіряє IP та приймає його.

Чи правий я?

Відповіді:


17

На жаль, ні, ви неправі.

Рон добре зазначає, що ви не надали маску підмережі, тому якби ми припустили маску класу, адреса 10.xxx мала б маску 255.0.0.0, яка фактично розмістила б два хости в одній мережі. У такому випадку вони не матимуть проблем із спілкуванням.

Однак, враховуючи характер вашого запитання, я думаю, ви планували використовувати для кожного з цих хостів меншу маску - ми продовжимо використання 255.255.255.0, яка розміщує обох хостів у двох різних підмережах.

При цьому, серце того, чого вам не вистачає, полягає у тому, щоб забути про ARP (Address Resolution Protocol) . Зокрема, для кого HostA вирішує ARP. Дозволь пояснити...


Перш ніж будь-який хост покладе який-небудь пакет на провід, перше, що він повинен зробити, це визначити, чи IP-адреса призначення знаходиться у власній мережі чи в іноземній мережі. Давайте пройдемося через нього з точки зору господаря А.

Хост A знає свій IP (10.1.2.1) та маску підмережі (/ 24, або 255.255.255.0). Трохи підмережами HostA визначає, що її мережа охоплює всі IP-адреси в діапазоні від 10.1.2.0 до 10.1.2.255. (Ми залишимо деталі NetID та BroadcastIP, оскільки на даний момент вони не актуальні)

Хост A також знає, що його IP-адреса призначення 10.1.3.1, що виходить за межі діапазону IP-адрес у власній мережі Host A. Таким чином, хост A прийшов би до висновку, що IP 10.1.3.1 пункту призначення знаходиться в іноземній мережі, а хост A міг дістатися до іноземної мережі лише розмовляючи через маршрутизатор. Або, конкретніше, через шлюз HostA за замовчуванням .

Якщо в даний момент HostA не налаштований за допомогою шлюзу за замовчуванням, процес закінчується тут загальним збоєм. HostA не може говорити з HostB.

Якщо Хост буде налаштований за допомогою шлюзу по замовчуванню, він буде посилати в ARP запит (який сам кадр Broadcast), просячи MAC - адреса шлюзу по замовчуванню - НЕ МАС адресу кінцевого IP призначення.

Комутатор, отримавши широкомовний кадр, перекриє пакет з усіх інтерфейсів, включаючи той, до якого підключений HostB. HostB дійсно отримає пакет, але оскільки ARP шукає MAC-адресу шлюзу за замовчуванням (а не MAC-адресу HostB) , HostB просто відкине і проігнорує запит ARP, не надсилаючи жодного разу відповіді.

Тоді HostA ніколи не отримає MAC-адресу для свого шлюзу за замовчуванням, і тому не зможе інкапсулювати пакет 3 рівня з заголовком рівня 2. Пакет не вдасться там.

Ви можете побачити процес ARP, проілюстрований у цьому відео .


Це сказало, хоча я дещо не пов’язане з вашим запитанням, але я хотів поговорити з тим, що ви сказали. Це може бути термінологічним нюансом, але я просто хочу переконатися, що воно повідомляється. Комутатор виконує тільки дві речі: пересилає кадр , для якого це знати МАС - адреса призначення, або повені кадри , для яких він не знає МАС - адреса призначення . Перемикач ніколи не транслює .

Мовлення є кадром хто призначення MAC - адреса ffff.ffff.ffff. Це спеціально зарезервована MAC-адреса, спеціально розроблена для кадрів широкомовної передачі. Коли комутатор виявляє кадр , призначений для ffff.ffff.ffff , його поведінка завжди затопити цей кадр.

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


У цій відповіді є крайні випадки ... у хостів може бути відсутність шлюзу або власна адреса, налаштована як адреса шлюзу. Це призводить до того, що хост ARP для всіх адрес та маршрутизаторів з включеним проксі-arp маршрутом (навіть маршрут за замовчуванням) до місця призначення відповість власним mac-адресою.
cpt_fink

3
Існують крайні випадки для будь-якої відповіді / ситуації. Я не думав, що потрапляння тут до деяких із них буде відповідне питанням.
Едді

2

Так. Якщо вони під / 16 підмережі. Для підмережі / 24 вам потрібен маршрутизатор.


1
Ви можете вдосконалити свою відповідь, пояснивши її детальніше. Наприклад, поясніть, чому це працює /16, але `/ 24 потрібен маршрутизатор.
Рон Моупін

0

Якщо хости A і B перебувають у різних мережах або підмережах і підключені до одного комутатора, я вважаю, що вони можуть спілкуватися через шлюз за замовчуванням.


Адреса шлюзу повинна бути в тій самій мережі, що і адреса, налаштована на хості. Оскільки адреса шлюзу - це адреса, яка використовується для відправки трафіку з мережі , вона повинна бути в тій самій мережі, що і хостинг, що надсилає, інакше хосту знадобиться шлюз, щоб дістатися до шлюзу.
Рон Моупін

0

Тільки якщо комутатор підключений до маршрутизатора, який знає, як прокладати маршрути між цими двома підмережами.


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