Як комутатор дізнається MAC-адресу не в таблиці пошуку?


12

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

Що ж відбувається тоді? Чи веде трансляція (MAC-адреса ff:ff:ff:ff:ff:ff) та чи отримує відповіді від підключених пристроїв, чи є протокол, призначений для того, який використовується? Я не думаю, що комутатор використовує ARP (Address Resolution Protocol)?


1
Якщо ви подумаєте про це, коли комутатор не може насправді перемикати кадр (оскільки, наприклад, у його таблиці немає необхідної адреси), зазвичай він повинен сприймати цей кадр як концентратор з міркувань сумісності.
Тодд Вількокс

Дуже дякую всім за відповіді.

Відповіді:


28

Хороше питання. Я відповім на це анімацією:

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

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

Це запевняє, що якщо хост B існує (який на даний момент комутатор ще не знає), він отримає його. Сподіваємось, отримавши кадр, Хост B сгенерує кадр відповідей, що дозволить комутатору дізнатись відображення MAC-адреси з кадру повернення.

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

Останнє зауваження щодо термінів Flooding vs Broadcast . Перемикач ніколи не передає кадри, мовлення - це не дія, яку може здійснити комутатор. Вимикач може затопити лише кадр. Мовлення просто кадр з призначенням MAC - адресою ffff.ffff.ffff. Це часто плутають, оскільки кінцевий ефект однаковий, але насправді вони різні .


Основна відмінність між затопленням та мовленням полягає в тому, як реагуватимуть наступні вузли
Феррібіг

2
@Ferrybig Правильно. Але я б висловити це трохи різні ... Головна відмінність між комутатором затоплення в односпрямованої раму, і перемикач затоплення в широкомовний кадр, як наступний вузол (и) буде реагувати. Немає такого поняття, як комутатор, що транслює кадр. (Цей коментар, і моя відповідь, говорить про транзитний трафік, а не про управління трафіком до / з комутатора)
Едді

5

Комутатор не використовує ARP, але ARP може допомогти у запобіганні виникнення цієї ситуації в першу чергу з двох причин:

  1. Якщо вузол A посилає IP-пакет у вузол B, який відсутній у кеш-пам'яті ARP, він спочатку надішле запит ARP (який є широкомовними пакетами, і автоматично перелиється на всі порти комутатором). Коли вузол B надсилає відповідь ARP, комутатор дізнається його MAC-адресу. Отже, до моменту фактичної передачі даних комутатор вже знає MAC адреси учасників і не потребує затоплення пакетів даних.

  2. Багато пристроїв, коли посилання зростатиме, надсилатиме безплатний пакет ARP . Крім оновлення кешів ARP інших вузлів в мережі, GARP також заповнить таблицю MAC-адреси комутатора.

IPv6 не використовує ARP, але NDP виконує аналогічну мету.

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


4

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


За винятком випадків, коли він затоплюється, він не заливає кадр назад до порту, з якого він отримав кадр, правда?
Тодд Вілкокс

1
Правильно. він не надсилає його до порту, з якого отримано кадр.
Рон Мопін

3
Я просто додам, що комутатор не дізнається нову (призначення) MAC-адресу, доки пристрій не відповість.
Рон Трунк

Затопивши кадр у всі порти, існує ризик безпеки?

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