з backbone - 149.76.1.4.
Таким чином шлюз повинен мати по одній IP адресі на кожну мережу до якої його під'єднано фізично. Ці адреси разом з netmask пов'язані з інтерфейсом підмережі через який до них потрібно звертатись. Таким чином розкладка інтерфейсів та адресів на sophus повинна бути приблизно така :
----------------------------------------
+-------+-------------+----------------+
|iface | address | netmask |
+-------+-------------+----------------+
+-------+-------------+----------------+
|eth0 | 149.76.4.1 | 255.255.255.0 |
|fddi0 | 149.76.1.4 | 255.255.255.0 |
|lo | 127.0.0.1 | 255.0.0.0 |
+-------+-------------+----------------+
+-------+-------------+----------------+
Ілюстрація 3.Частина топології мережі Grouncho Marx University.
Останнє входження описує інтерфейс петлі lo, який описано вище.
На ілюстрації 3.4.3 показано частину мережевої топології Grouncho Marx University (GMU). Хости що знаходяться в двох підмережах показано з обома адресами.
Взагалі то ви можете ігнорувати невловиму відмінність між адресою хоста та її інтерфейсом. Для хоста що під'єднаний лише до однієї мережі (як то наприклад erdos), ви можете звертетатиь до нього як до цієї IP адреси, хоча насправді це IP адреса інтерфейсу Ethernet. Але всі ці відмінності важливі лише тоді коли ви звертаєтесь до шлюзу.
3.4.4 Таблиця маршрутизації
Тепер ми зосередимо увагу на тому як IP вибирає шлюз для доставки данних до віддаленої мережі.
Перед цим ми розглянули приклад де erdos пересилає данні для quark, перевіривши шо той не знаходиться в локальній мережі. Тому він надсилає данні на шлюз по замвчуванню - sophus, який вирішує те ж завдання. sophus розпізнає що quark не знаходиться в жодній мережі жо якої під'єднаний sophus безпосередньо, тобто він також пованен знайти відповідний шлюз. Правильним вибором буде niels, шлюз до мережі відділу фізики. Тому sophus потребує якоїсь інформації для того щоб пов'язати мережу місця прифзначення з потрібним шлюзом.
Інформація про маршрутизацію зберігається у вигляді таблиці де мережі пов'язано з шлюзами які мають до них доступ. У будь якому випадку повинен бути встановленим маршрут по замовчуванню, це шлюз пов'язаний з мережею 0.0.0.0. Всі данні до невідомих мереж надсилаються через маршрут по замовчуванню. На sophus, ця таблиця може бути приблизно такою:
-----------------------------------------
+------------+-------------+------------+
|Network | Gateway | Interface |
+------------+-------------+------------+
+------------+-------------+------------+
| 149.76.1.0 | - | fddi0 |
| 149.76.2.0 | 149.76.1.2 | fddi0 |
| 149.76.3.0 | 149.76.1.3 | fddi0 |
| 149.76.4.0 | - | eth0 |
| 149.76.5.0 | 149.76.1.5 | fddi0 |
|... | ... | ... |
| 0.0.0.0 | 149.76.1.2 | fddi0 |
+------------+-------------+------------+
+------------+-------------+------------+
Маршрути до мереж до яких sophus під'єднаний безпосередньо не потребують шлюзу; тому замість шлюзу вказано ``-''.
Таблиця маршрутизації може бути створена різними засобами. Для невеличках мереж найбільш ефективнвм є побудувати її руками використовуючи команду route під час завантаження системи (див. главу 6). Для великих мереж таблиця будується та обновлюється в реальному часі демоном маршрутизації; він працює на центральних хостах мережі та обмінюються маршрутною інформацією для обчислення оптимального маршруту між членами мереж.
В залежності від розміру мережі можуть використовуватись різні протоколи маршрутизації. Для маршрутизації в середині автономних систем (наприклад університетської мережі) використовуються протоколи внутрішньої маршрутизації. Найбільш відомий з них - RIP (Routing Information Protocol), який підтримується демоном BSD - routed. Для маршрутизації між автономними системами використовуються протоколи зовнішньої маршрутизації типу EGP (External Gateway Protocol) та BGP (Border Gateway Protocol). Ці протоколи (і RIP також) підтримуються демоном gated розробленим Корнелівському університеті.
3.4.5 Метрична вартість
Динамічна маршрутизація базована на RIP вибирає найкращий маршрут до хоста чи мережі призначення за допомогою числа `хопів', яке означає через скільки шлюзів пройдуть данні перш ніж досягнуть місця призначення. Найкоротший маршрут вважається найкращим. Дуже довнгі марщрути (16 і більше хопів) вважаються як непридатні для використання і ігноруються.
Щоб використовувати RIP для управління інформацією про маршрутизацією в вашій локальній мережі, ви повинні виконувати gated на всіх хостах мережі. Під час завантаження gated перевіряє всі активні мережеві інтерфейси. Якщо існує більше ніж один активний інтерфейс (не рахуючи інтерфейсу петлі), то gated вважає що хост передає данні між різними мережами, і буде активно обмінюватись інформацією про маршрутизацію. В іншому випадку він буде просто пасивно отримувати RIP данні з змінами і відповідно змінювати локальну таблицю маршрутизації.
При передачі (broadcasting) інформації з локальної таблиці маршрутизації, gated обчислює довжину маршруту з так званої метричної вартості, яка пов'язана з входженнями в таблицю маршрутизації. Ця метрична вартість встановлюється системним адміністратором при конфігуруванні маршрутів та повинна відображати фактичну вартість використання маршруту. Тому вартість маршруту до підмережі чи хоста, що має безпосереднє під'єднання, завжди повинна дорівнювати нулю, а в маршруті, що проходить через два шлюзи - двом. Зверніть увагу що метрична вартість має значення тільки при використанні RIP або gated.
3.5 Internet Control Message Protocol
IP має супутній протокол про який ми ще не згадували. Це Internet Control Message Protocol (ICMP) і використовується він мережевим кодом ядра щоб передавати повідмлення про помилки та подібну інформацію на інші хости. Припустимо що ви знову знаходитесь на erdos і хочете за допомогою telnet звернутись до порта 12345 на quark, але на quark на цьому порті немає жодної програми. Коли перший TCP пакет для цього порта буде доставлено на quark, мережевий рівень розпізнає це і негайно відправить на erdos повідомлення ``Port Unreachable''.
Існує велика кількість повідомлень які розуміє ICMP, більшість з них - повідомлення про помилки. Однак існує одне дуже цікаве повідомлення - Redirect, яке генерується при знаходженні коротшого маршруту. Наприклад, після завантаження таблиці маршрутів на