Чому комутатори не переписують mac-адреси?


10

Чи є якась конкретна причина, чому комутатори Ethernet не змінюють MAC-адресу пакету?

Це для ідентифікації кінцевого хоста за допомогою MAC-адреси чи чогось іншого?


5
Припустимо, тебе звали Кумар. Вам би хотілося, якби люди почали називати вас "Джессіка"?
Майк Пеннінгтон

1
комутатори не переписують пакети (кадри); вони просто переміщують їх від інтерфейсу до інтерфейсу. (у випадку трансляції / багатоадресної передачі, це включає копіювання в кілька портів.)
Ricky Beam

4
Чи можете ви придумати вагому причину, чому комутатор повинен змінити MAC-адресу?
Teun Vink

Чи допомогла вам якась відповідь? якщо так, то слід прийняти відповідь, щоб питання не з’являлося вічно, шукаючи відповідь. Крім того, ви можете надати та прийняти власну відповідь.
Рон Моупін

Відповіді:


10

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

MAC-адреса - це унікальний ідентифікатор, який використовується хостами в локальній мережі.

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

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

Це може додатково створити проблеми з 802.1X та іншими механізмами, які використовують MAC-адресу для ідентифікації / класифікації пристрою.

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


4

Переписування адрес дейтаграм відбувається на рівні 3, наприклад, коли шлюзи (маршрутизатор або брандмауер), на яких працює NAT, переписують IP-адреси хостів у внутрішній мережі, щоб усі вони з’являлися з однієї (або декількох) зовнішніх IP-адрес на самому шлюзі.

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

У третьому шарі з NAT, NAT вирішує ряд завдань:

  • IP-адреси використовуються для глобальної комунікації, і доступний обмежений набір IP-адрес, які мають бути спільними. Використовуючи NAT, можна переконатися, що більша кількість внутрішніх хостів може мати меншу кількість (як правило, одну) IP-адресу, видиму в загальнодоступному Інтернеті.
  • Переписування IP-адрес деякі вважають, але далеко не всім потрібно додати рівень безпеки шляхом маскування IP-адрес внутрішніх машин.

Отже, якщо ми будемо дотримуватися прикладу NAT, насправді немає необхідності в другому шарі NAT.

  • MAC-адреси не використовуються глобально для адресації дейтаграм в Інтернеті, вони використовуються для надсилання кадрів до правильних хостів у локальній підмережі. Оскільки локальні підмережі відносно невеликі, а кількість можливих MAC-адрес дуже велика, не можна "вичерпати" доступні MAC-адреси на рівні 2-го рівня. (Можливість вручну перенастроїти MAC-адреси NIC на довільне значення це не змінює)
  • І для спірної переваги безпеки переписування адрес дейтаграми під час переадресації: Оскільки MAC-адреси використовуються лише в локальній підмережі, зазвичай, у відносному відношенні, є набагато кращий контроль з точки зору безпеки над цією підмережею (як фізично, так і більшість залучені пристрої) порівняно з аналогом у випадку 3 рівня, який є всім Інтернетом (який ми, як підключені користувачі та інженери мережі, на практиці не контролюємо безпеку).

Сподіваємося, що це прожене трохи, чому комутатори не переписують MAC-адреси. Єдиний випадок 3-го шару, який я придумав у верхній частині голови - це NAT, інші, безумовно, можуть навести приклад інших випадків 3 рівня, коли IP-переписування гарантовано (і чому ці технології насправді не мають сенсу на рівні 2-го рівня) .


3
Точкове місце, але у мене є одна крихітна карикатура з вашою відповіддю. Ви згадали, що "насправді немає необхідності у двосторонньому шарі NAT" ... поки я не бачив MAC NAT, я бачив тунелювання на рівні mac. За кількох обставин має сенс перейти на "тунельні" mac-адреси всередині інших mac-адрес. Ситуація, яка одразу приходить в голову, - це мостинг на базі провайдера IEEE 802.1ah (PBB) . Як правило, це використовується для масштабування наявних вланів / зменшення мак-навчання в кільцях метро провайдера послуг
Майк Пеннінгтон

1
@IllvilJa: Добре сказано ..! Ви вирішили сумніви, які мене бентежать останні кілька тижнів. Кілька тижнів тому я подумав так: "маршрутизатор, коли він має справу з WAN, прагне поставити свою MAC-адресу замість MAC-адреси відправника (у кожному пакеті) і передає пакети одержувачу. Але у випадку LAN, маршрутизатор не ставить свою MAC-адресу замість MAC-адреси відправника (у кожному пакеті), а просто передає пакети між відправником та одержувачем "Але після вашого пояснення я досить чітко розрізняю" маршрутизатор "та" перемикач '. Знову дякую..!
Махаран

0

Перезапис MAC-адреси додав би значної складності (комутатор повинен знати про протоколи вищого рівня, такі як arp, щоб він міг переписати перерозподіл адреси), ускладнював би усунення несправностей, заважав протоколам типу STP працювати і, як правило, був би PITA. Він також зазвичай не потрібен.

Що не означає, що це неможливо. ebtables (аналог другого рівня iptables) має деякі варіанти перекладу MAC-адрес. Це може бути корисно, якщо у вас є комутатори, які не використовують таблиці MAC per-vlan, і ви хочете виконати деяку фільтрацію рівня 2.

http://ebtables.netfilter.org/examples/example1.html

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