Електронний посібник

Лекція № 14

Тема: Використання масок при IP-адресації, відображення IP-адрес на локальні адреси

Мета: ознайомитися з поняттям маска IP-адреси, правилами запису масок та відображенням IP-адрес на локальні адреси


План

1 Використання масок в IP-адресації

2 Відображення IP-адрес на локальні адреси

Лекційний матеріал

Використання масок в IP-адресації

Традиційна схема розподілу IP-адреси на номер мережі і номер вузла заснована на понятті класу, який визначається значеннями кількох перших біт адреси. Саме тому, що перший байт адреси 185.23.44.206 попадає в діапазон 128-191, ми можемо сказати, що ця адреса відноситься до класу В, а значить, номером мережі є перші два байти, доповнені двома нульовими байтами - 185.23.0.0, а номером вузла - 0.0.44.206.

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

Для стандартних класів мереж маски мають таке значення:

клас А - 11111111. 00000000. 00000000. 00000000 (255.0.0.0);

клас В - 11111111. 11111111. 00000000. 00000000 (255.255.0.0);

клас С-11111111.11111111.11111111.00000000 (255.255.255.0).

Для запису масок використовуються і інші формати, наприклад, зручно інтерпретувати значення маски, записаної в шістнадцятковому коді: FF.FF.OO.OO - маска для адрес класу В. Часто зустрічається і таке позначення 185.23.44.206/16 - цей запис говорить про те , що маска для цієї адреси містить 16 одиниць або що в зазначеному IP-адресу під номер мережі відведено 16 двійкових розрядів.

Забезпечуючи кожен IP-адреса маскою, можна відмовитися від понять класів адрес і зробити більш гнучкою систему адресації. Наприклад, якщо розглянутий вище адресу 185.23.44.206 асоціювати з маскою 255.255.255.0, то номером мережі буде 185.23.44.0, а не 185.23.0.0, як це визначено системою класів.

У масках кількість одиниць у послідовності, що визначає кордон номери мережі, не обов'язково має бути кратним 8, щоб повторювати поділ адреси на байти. Нехай, наприклад, для IP-адреси 129.64.134.5 вказана маска 255.255.128.0, тобто в двійковому вигляді:


IP-адреса 129.64.134.5 - 10000001. 01000000.10000110. 00000101


Маска 255.255.128.0 - 11111111.11111111.10000000. 00000000


Якщо ігнорувати маску, то відповідно до системи класів адрес 129.64.134.5 відноситься до класу В, а значить, номером мережі є перші 2 байти - 129.64.0.0, а номером вузла - 0.0.134.5.

Якщо ж використовувати для визначення кордону номери мережі маску, то 17 послідовних одиниць у масці, «накладені» на IP-адресу, визначаються як номери мережі в двійковому виразі:


10000001. 01000000. 10000000. 00000000 або в десятковій формі запису - номер мережі 129.64.128.0, а номер вузла 0.0.6.5.


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

Відображення IP-адрес на локальні адреси

Однією з головних завдань, яке ставилося при створенні протоколу IP, було забезпечення спільної узгодженої роботи в мережі, що складається з підмереж, в загальному випадку використовують різні мережеві технології. Безпосередньо з вирішенням цієї задачі пов'язаний рівень міжмережевих інтерфейсів стека TCP / IP. На цьому рівні визначаються вже розглянуті вище специфікації упаковки (інкапсуляції) IP-пакетів у кадри локальних технологій. Крім цього, рівень міжмережевих інтерфейсів повинен займатися також вкрай важливим завданням відображення IP-адрес в локальні адреси.

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

Необхідність у зверненні до протоколу ARP виникає щоразу, коли модуль IP передає пакет на рівень мережевих інтерфейсів, наприклад драйверу Ethernet. IP-адреса вузла призначення відомий модулю IP. Потрібен на його основі знайти МАС - адреса вузла призначення.

Робота протоколу ARP починається з перегляду так званої АКР-таблиці (табл. 1). Кожен рядок таблиці встановлює відповідність між IP-адресою і МАС - адресою. Для кожної мережі, підключеної до мережного адаптера комп'ютера або до порту маршрутизатора, будується окрема ARP-таблиця.

Таблиця 1. Приклад ARP-таблиці

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

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

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


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

Таблиця 2. Приклад ARP-запиту

У полі «тип мережі» для мереж Ethernet вказується значення 1.

Поле «тип протоколу» дозволяє використовувати протокол ARP не тільки для протоколу IP, але і для інших мережевих протоколів. Для IP значення цього поля дорівнює 0800 is.

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

З цього запиту видно, що в мережі Ethernet вузол з IP-адресою 194.85.135.75 намагається визначити, який МАС - адреса має інший вузол тієї ж мережі, мережева адреса якого 194.85.135.65. Поле шуканого локальної адреси заповнено нулями.

Відповідь надсилає вузол, упізнав свою IP-адресу. Якщо в мережі немає машини з шуканим IP-адресою, то ARP-відповіді не буде. Протокол IP знищує IP-пакети, що направляються за цією адресою. (Зауважимо, що протоколи верхнього рівня не можуть відрізнити випадок пошкодження мережі Ethernet від випадку відсутності машини з шуканим IP-адресою.) У табл. 3 поміщені значення полів ARP-відповіді, який міг би вступити на наведений вище приклад ARP-запиту.

Таблиця 3. Приклад ARP-відповіді

Ця відповідь отримує машина, що зробила ARP-запит. Модуль ARP аналізує ARP-відповідь і додає запис у свою ARP-таблицю (табл. 4). У результаті обміну цими двома ARP-сообшенія модуль IP-сайту 194.85.135.75 визначив, що IP-адресою 194.85.135.65 відповідає МАС - адреса 00E0F77F1920. Новий запис в ARP-таблиці з'являється автоматично, через кілька мілісекунд після того, як вона була потрібна.

Таблиця 4. Оновлена ​​ARP-таблиця

ПРИМІТКА Деякі реалізації IP та ARP не ставлять IP-пакети в чергу на час очікування ARP-відповідей. Замість цього IP-пакет просто знищується, про його відновлення покладається на модуль TCP або прикладний процес, що працює через UDP. Таке відновлення виконується за допомогою тайм-аутів і повторних передач. Повторна передача повідомлення проходить успішно, так як перша спроба вже викликала заповнення ARP-таблиці.