Відображення фізичних адрес на IP-адреси: протоколи ARP й RARP

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

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

Для визначення локальної адреси по IP-адресі використовується протокол дозволу адреси Address Resolution Protocol, ARP. Протокол ARP працює різним образом залежно від того, який протокол канального рівня працює в даній мережі - протокол локальної мережі (Ethernet, Token Ring, FDDI) з можливістю широкомовного доступу одночасно до всіх вузлів мережі, або ж протокол глобальної мережі (X.25, frame relay), як правило не підтримуючий широкомовний доступ. Існує також протокол, що вирішує зворотне завдання - знаходження IP-адреси по відомій локальній адресі. Він називається реверсивний ARP - RARP (Reverse Address Resolution Protocol) і використовується при старті бездискових станцій, що не знають у початковий момент своєї IP-адреси, але знаючу адресу свого мережевого адаптера.

В локальних мережах протокол ARP використає широкомовні кадри протоколу канального рівня для пошуку в мережі вузла із заданою IP-адресою.

Вузол, якому потрібно виконати відображення IP-адреси на локальну адресу, формує ARP запит, вкладає його в кадр протоколу канального рівня, указуючи в ньому відома IP-адреса, і розсилає запит широкомовно. Всі вузли локальної мережі одержують ARP запит і порівнюють зазначений там IP-адресу із власним. У випадку їхнього збігу вузол формує ARP-відповідь, у якому вказує своя IP-адреса й своя локальна адреса й відправляє його вже направленно, тому що в ARP запиті відправник указує свою локальну адресу. ARP-запити й відповіді використають той самий формат пакета. Тому що локальні адреси можуть у різних типах мереж мати різну довжину, то формат пакета протоколу ARP залежить від типу мережі. На малюнку 3.2

У поле типу мережі для мереж Ethernet вказується значення 1. Поле типу протоколу дозволяє використати пакети ARP не тільки для протоколу IP, але й для інших мережевих протоколів. Для IP значення цього поля дорівнює 080016.

Довжина локальної адреси для протоколу Ethernet дорівнює 6 байтам, а довжина IP-адреси - 4 байтам. У поле операції для ARP запитів указується значення 1 для протоколу ARP й 2 для протоколу RARP.

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

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