Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Маршрутизація.

Маршрутизація – широка тема, і про неї можна написати дуже багато. Для більшості, проте, схема маршрутизації буде достатньо простої, тому тут буде розглянуті тільки базові питання, пов'язані з маршрутизацією.

Почнемо з визначення. Отже, що ж таке IP-маршрутизація?

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

Проілюструємо це визначення на прикладі. Уявіть собі звичайний офісний маршрутизатор, який має PPP-з'єднання з Інтернетом, дещо підключених сегментів локальної ethernet-мережі і PPP-з'єднання з іншим офісом. Коли через один з інтерфейсів на маршрутизатор приходить IP-пакет, маршрутизатор повинен вирішити, через який з інтерфейсів відправляти цей пакет далі. Навіть простим машинам може бути потрібно маршрутизувати пакети, оскільки вони мають щонайменше два інтерфейси – один кільцевий, описаний вище, і другий, через який вони підключені до реальної мережі, наприклад ethernet-інтерфейс, або інтерфейс підключення по послідовних лініях PPP або SLIP.

Як же відбувається маршрутизація? На кожній машині зберігається спеціальний список правил маршрутизації, званий таблицею маршрутизації. Будь-який рядок цієї таблиці як правило містить щонайменше три поля. Перше поле – адреса призначення, друге – ім'я інтерфейсу, через який слід відправляти пакети, і третє – IP-адреса машини, через яку передаватимуться пакети. В Linux, Ви можете проглянути таблицю маршрутизації за допомогою наступної команди:

user% cat /proc/net/route

або однієї з команд:

user% /sbin/route -n user% netstat -r

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

Для управління таблицею маршрутизації використовується програма route. Ця програма перетворить свої аргументи в параметри виклику ядра, і ядро додає, видаляє або змінює рядки в таблиці маршрутизації.

Простий приклад. Уявіть собі, що у вас є ethernet-мережа. Вона організована як мережа класу С з адресою 192.168.1.0. Вашій машині була виділена адреса 192.168.1.10 і було сказано, що маршрутизатор, через який Ваша мережа підключена до Інтернету знаходиться за адресою 192.168.1.1.

Насамперед Ви повинні набудувати мережевий інтерфейс. Команда виглядатиме так:

root# ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up

Після цього Ви повинні додати в таблицю маршрутизації на Вашій машині рядок, згідно якого пакети на машини з адресами 192.168.1.* ядро повинне відправляти через інтерфейс eth0. Це робиться за допомогою наступної команди:

root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0

Зверніть увагу на використовування опції “-net“. Ця опція вказує, що адреса призначення в таблиці маршрутизації буде адресою мережі. За допомогою опції “-host” ви можете задати маршрут на конкретну IP-адресу.

Цей маршрут дозволить вам встановлювати IP-з'єднання з всіма машинами у вашому локальному ethernet-сегменті. Але як бути з всією рештою машин?

Би було дуже складне задавати маршрути для всіх можливих IP-мереж явно, тому використовують наступний трюк – маршрут за замовчуванням. Маршрут за замовчуванням підходить для всіх адрес призначення, не вказаних в таблиці маршрутизації. За допомогою маршруту за замовчуванням Ви говорите ядру – “а все інше відправляй туди”. В нашому прикладі маршрут за умовчанням настроюється командою:

root# route add default gw 192.168.1.1 eth0

Опція “gw” вказує програмі route що наступний аргумент – IP-адреса або ім'я маршрутизатора, на який треба відправляти всі пакети, відповідні цьому рядку таблиці маршрутизації.

Отже повністю настройка виглядатиме так:

root# ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0 root# route add default gw 192.168.1.1 eth0

Якщо Ви уважно проглянете ваші “rc” файли, що настроюють мережу, Ви знайдете, що принаймні один з них виглядає приблизно так, як і в нашому прикладі. Приведена конфігурація – одна з найпоширеніших.

Розглянемо тепер дещо складнішу конфігурацію маршрутизації в мережі. Уявіть собі, що ви повинні побудувати маршрутизатор з попереднього прикладу. У цього маршрутизатора є одне PPP-з'єднання і три підключені ethernet-сегменти. Настройка маршрутизації виглядатиме так:

root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0 root# route add -net 192.168.2.0 netmask 255.255.255.0 eth1 root# route add -net 192.168.3.0 netmask 255.255.255.0 eth2 root# route add default ppp0

У всій мережі тільки маршрутизатор повинен мати в своїй таблиці маршрутизації окремі рядки для кожної з підмереж. На решті машин зв'язок з іншими сегментами локальної мережі здійснюватиметься за допомогою маршруту за замовчуванням. Вони відправлятимуть пакети на маршрутизатор, а той передаватиме їх в потрібний сегмент мережі. Вас може здивувати, що маршрут за замовчуванням на маршрутизаторі не використовує опції “gw”. Причина проста. Протоколи з'єднання по послідовних лініях, такі як PPP і SLIP завжди мають тільки дві машини в мережі – (з'єднання крапка-крапка) тому вказівка адреси безглуздо – на тому кінці з'єднання тільки одна машина. Таким чином, для подібних з'єднань немає потреби вказувати адресу маршрутизатора, на який треба передавати пакети. Для інших типів мереж, таких як ethernet, arcnet або token ring потрібно вказувати адресу маршрутизатора, оскільки ці мережі підтримують підключення відразу багатьох машин до одного сегменту мережі.

ping - посилка пакетів ICMP ECHO_REQUEST мережевим хостам




Дата добавления: 2014-12-19; просмотров: 100 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав