Кілька комутаторів - як це працює?


14

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

Це мене здивувало - що станеться, якщо у вас є перемикачі, підключені до перемикачів, як це:

Computer A
    |
 Switch 1
    |
 Switch 2
    |
Computer B

Частина моєї домашньої мережі налаштована так, настільки очевидно, що вона як-небудь працює. Але якщо Комп'ютер A хоче надіслати пакет на Комп'ютер B, як комутатор 1 знає, щоб переслати пакет на Switch 2? Оскільки перемикач 1 безпосередньо не підключений до комп'ютера B, як він може мати MAC-адресу комп'ютера B у своїй базі даних, якщо комутатор 2 не надає комутатору 1 цю інформацію?


1
Якщо припустити, що кадр Ethernet переходить від комп’ютера A до комп'ютера B, і перемикач 1, і комутатор 2 зрештою матимуть таблицю CAM для MAC-адреси комп'ютера B. Комутатору неважливо, що насправді з іншого боку, як саме повертається MAC-адреса, що це кадри Ethernet.
LawrenceC

Відповіді:


23

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

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

Тож комп'ютер B зрештою отримує кадр, тим часом усі інші пристрої його ігнорують.

Тепер ви можете підключити крапки. Коли комп’ютер B відповідає, комутатор 2 дізнається, що кадри, призначені для комп'ютера A, переходять до порту, до якого підключений перемикач 1, а перемикач 1 дізнається, що кадри, призначені для комп'ютера B, переходять до порту, до якого підключений перемикач 2.


7
так що в основному комутатори трохи схожі на хаб-програми для невідомих кадрів.
Сірекс

2
Точно, а це означає, що завжди буде якесь затоплення, не дуже чи часто. Ха, старі шкільні хаби. Нагадує мені про супутниковий Інтернет у 90-х, коли приймач, встановлений на вашому ПК, повинен був ігнорувати всі пакети, не призначені для вас. Розмова про затоплення!
misha256

2
Що станеться, якщо ми надішлемо pingзапит? Чи відповість кожен пристрій, приєднаний до комутатора, чи сам перемикач відповість на ICMP ping?
AStopher

@ misha256 Насправді всі сучасні послуги кабельного Інтернету та багато оптоволоконних Інтернет-сервісів все ще надсилають усі пакети, призначені для вашого мікрорайону (або, можливо, лише ваш або два блоки), і ваш модем повинен відфільтрувати той, який не є вашим.
Моше Кац

6

Фізичний порт на комутаторі вважається рівнем OSI 1. Усі MAC-адреси, які надходять у цей конкретний порт, представляють фізичні адреси мережевих пристроїв (OSI-рівень 2). На кожному активному порту може бути 0, 1 або більше MAC (або CAM або будь-який постачальник комутаторів, який їх називає) адреси. Насправді, комутатор не має поняття, який тип пристрою підключений без додаткової інформації (або адміністратор, або якийсь спеціально розроблений протокол розповідає більше).

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

Якщо комутатор отримує одну і ту ж фізичну адресу через більш ніж один інтерфейс, він зазвичай виявляється і рахується як "MAC flapping". Це означає, що комутатор не може бути впевнений, через який порт повинен бути надісланий пакет з певною MAC-адресою.

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

Іноді через помилки мережі або хакерську атаку в мережі деякі пристрої можуть генерувати безліч оголошень MAC. Якщо кількість оголошених MAC-адрес занадто велика, щоб запам'ятати комутатор, він може вирішити забути про оптимальну доставку пакетів. Якщо ви не впевнені, на якому порту мешкає MAC-адреса, пакет може бути переданий у всі порти, як широкомовні (атака з ім'ям arp-spoofing вдалася).

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

Сподіваюся, це допомагає.

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