Як IP-адреси відображаються на MAC-адреси?


14

Я читав про відмінності між MAC та IP-адресами та чому вони потрібні обом.

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

У реальному світі ми зв’язуємо адреси та імена за допомогою телефонної книги. Який механізм пов'язує IP-адреси з MAC-адресами та де цей механізм розташований у мережі?


5
Переглянувши ваші запитання, я думаю, що ви отримаєте користь від хорошої книги. Розглянемо вивчення чогось у напрямку TCP / IP Illustrated, Vol. 1: Протоколи Стівенса (FYI, видання 1993 р., Як правило, вважається кращим, ніж перевипуск 2011 року, хоча видання 1993 р. Висвітлює лише IPv4 поглиблено).
Майк Пеннінгтон

"Ілюстрована мережа: як TCP / IP працює в сучасній мережі" та / або "Посібник по TCP / IP: всебічна, ілюстрована посилання на протоколи протоколу Інтернету" також може бути вартим ознайомлення.
Jens Link

4
@MikePennington Дякую, це хороший спосіб сказати це слово, на відміну від "RTFM" та -1. Я читаю його зараз в Інтернеті :)
CodyBugstein


1
Адреси MAC, насправді, ні фізичні, ні незмінні, ні унікальні. Я бачив пристрої, які рандомізують свій MAC при кожному перезавантаженні. Звичайно, є утиліти майже на будь-якій платформі, щоб тимчасово або назавжди змінити MAC майже кожного інтерфейсу. iOS 8 навіть рандомізує Wi-Fi MAC для сканування мереж.
MacLemon

Відповіді:


19

Механізм називається протоколом вирішення адреси (ARP) . Кожні ARP-адреси пристрою Ethernet IPv4 для вирішення мак-адрес Ethernet для цільових IP-адрес. Відображення IP до mac зберігається в таблиці ARP кожного пристрою (телефонна книга за вашою аналогією).

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


Я думаю, більшість часу це просто дивиться з місцевого столу Arp. Тільки перший раз, коли він повинен робити трансляцію
Cruncher

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

О, я не зрозумів, що він через пару хвилин скинув стіл. Я думав, це триває деякий час. Чи означає це отрута ARP, вам потрібно часто надсилати відповіді ARP?
Cruncher

Так, і "справжній" хост не повинен надсилати жодних пакетів на отруєну машину, інакше машина зберігатиме "справжній" MAC.
мулаз

1
Залежно від того, що ви намагаєтеся досягти.
мулаз

13

Оскільки питання було позначене IPv6, я відповім за це, оскільки IPv6 сильно відрізняється від IPv4.

Для початку не існує такого поняття, як ARPv6. Відображення між шаром 2 та IPv6 адресами проводиться за допомогою протоколу сусіднього виявлення (NDP), який надсилається через ICMPv6. Таким чином, ви не повинні ігнорувати ICMPv6 і відфільтровувати його, як це прийнято у застарілому IP. NDP надає два типи повідомлень, які тут цікавлять: Прохання про сусід та рекламу сусіда. Вузол, який хоче дізнатися адресу рівня посилання для певної IP-адреси, надсилає розмову про сусіда згідно з адресою багатоадресної передачі локального запитуваного вузла - більше немає трансляції для IPv6.

Наприклад, якщо 2001:db8::0011:2233:4455:6677вказана адреса, то адреса багатоадресної передачі запитуваного вузла є ff02::1:ff55:6677, а адреса багатоадресної передачі Ethernet є 33:33:ff:55:66:77. Усі вузли з адресою, що закінчується, *55:6677належать до цієї групи багатоадресних повідомлень і слухатимуть її - це, швидше за все, лише сама цільова система. Сусідське прохання містить також одноадресні IPv6 адреси та MAC-адресу системи запиту.

Після отримання цільовий вузол відповідає своїм рекламним сусідом, який надсилається на одноадресну адресу (рівень зв'язку та IPv6) вузла, що вимагає. Таким чином, вузол, що вимагає, дізнається MAC-адресу цільового вузла.

І так, NDP-спуфінг працює так само, як ARP-підробка. І ні, IPsec - це не відповідь.


" ARP сам не може бути використаний, оскільки він був створений для 4-байтних адрес мережевого рівня (тобто IPv4). " Це неправда. ARP використовує поля довжини адреси для визначення довжини адреси (до 255 октетів) для адрес 2-го та 3-го рівня (див. RFC 826). Причину ARP не можна використовувати з IPv6 в тому, що IPv6 не має трансляції.
Рон Мопін

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

2
Я не знаю, чи було замінено ARP з міркувань безпеки в першу чергу. Наскільки я бачу це було бажання охопити всі протоколи управління ICMPv6. Як побічний ефект, так, ви можете захистити ICMPv6 за допомогою IPsec. Однак IPsec вимагає обміну ключами, і IKE перебігає UDP - для цього потрібна IP-адреса. Одним із завдань NDP є узгодження IP-адреси, і ручний обмін ключами не змінює масштаб, тому ідея NDP + IPsec = захищена NDP не працює таким чином. Такі альтернативи, як SeND, не відмовились (і, швидше за все, ніколи не будуть). Зрештою, я не бачу жодної переваги безпеки NDP перед ARP.
контрмод

4

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

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


Звичайно. Це було веселою вправою для мене. Справжні речі, такі як трансляція / одностайка, не відповідають ідеям аналогії (кричати / говорити / поштою?), Тому візьміть зерна солі.
Джектоз

До редактора: я використовував адресу пізніше за аналогією для MAC.
Джектоз

2
  1. MAC адреси можуть бути змінені. У Linux використовуйте ip або ifconfig для більшості Windows дивіться налаштування драйвера мережевого інтерфейсу.

  2. Ви нічого не конвертуєте. MAC адреси є на рівні Layer-2, IP на Layer-3 моделі OSI. Для IPv4 ARP використовується для з'ясування того, яка адреса MAC (Layer-2) належить до певної IP-адреси (Layer-3). Для IPv6 використовується ICMPv6 (сусідське відкриття).


Вибачте, я повинен був сказати "перекласти", а не "конвертувати"
CodyBugstein

0

Протокол роздільної здатності адреси (ARP)

IP-адреса ---> ARP ---> MAC-адреса

MAC-адреса ---> RARP ---> IP-адреса

IP-адреса = логічна адреса [32 біта]

MAC-адреса = фізична адреса [48 біт]

Мережевий шар (IP) ----> ARP ---> Layer Layer (MAC)

IP-адреса потрібна в мережевому шарі, щоб визначити хост джерела / призначення.

MAC-адреса потрібна в шарі передачі даних для ідентифікації джерела / місця призначення.


Ви невірні щодо RARP (багато людей мають це неправильне уявлення). Це те, що хост використовував для визначення власної IP-адреси, а не IP-адреси інших хостів. Він більше не використовується.
Рон Моупін

0

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

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

Зауважте, що IP-адреса наступного переходу - це суто локальне поняття, воно ніколи не стає частиною пакету, надісланого по дроту.

Якщо пакет повинен бути відправлений на багатопотоковий шар зв'язку (наприклад, Ethernet і т.д.), ОС шукає наступний скачок в таблиці arp (ipv4) або сусідньому виявленні (ipv6). Якщо він знайде там нестарелий запис, то він має потрібну MAC-адресу і може надіслати пакет.

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

У v4 надсилаються запити arp. Зазвичай це трансляція, але в деяких випадках, якщо у хоста є відкладений запис, він може спробувати спершу запит на одноадресну передачу і лише повернутися до трансляції, якщо це не вдалося. Відповідь, як правило, є односторонньою.

У v6 сусідніх запитах клопотання надсилаються на адресу багатоадресної передачі, згенеровану з наступної хоп-адреси. Мета відповідає на рекламу сусіда-одноразового. Господарі також можуть надсилати рекламу сусіда до групи "все вузли багатоадресної передачі" (він також ефективно транслює), щоб оновити записи в кешах виявлення сусідських однолітків.

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