МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
/
ЗВІТ
до практичної роботи № 2
з курсу
“Інформаційно-комунікаційні системи”ВИВЧЕННЯ ПРАВИЛ МАРШРУТИЗАЦІЇ В IP-МЕРЕЖАХ
Львів – 2010р.
Мета роботи
Ознайомитись з правилами маршрутизації в ІР-мережах та навчитись задавати таблиці маршрутизації для локальної обчислювальної мережі.
Теоретичні відомості
Правила маршрутизації визначають, куди відправляти IP-пакети. Дані маршрутизації зберігаються в одній з таблиць ядра. Вести таблиці маршрутизації можна статично або динамічно. Статичний маршрут - це маршрут, який задається явно за допомогою команди route. Динамічна маршрутизація виконується процесом-демоном (routed або gated), який веде і модифікує таблицю маршрутизації на основі повідомлень від інших комп'ютерів мережі. Для виконання динамічної маршрутизації розроблені спеціальні протоколи: RIP, OSPF, IGRP, EGP, BGP і так далі.
Динамічна маршрутизація необхідна в тому випадку, якщо у вас складна, постійно змінна структура мережі і одна і та ж машина може бути доступна по різних інтерфейсах (наприклад, через різні Ethernet або SLIP інтерфейси). Маршрути, задані статично, зазвичай не міняються, навіть якщо використовується динамічна маршрутизація.
Для персонального комп'ютера, що підключається до локальної мережі, в більшості ситуацій буває досить статичної маршрутизації командою route. Перш ніж намагатися будувати маршрути, прогляньте таблицю маршрутизації ядра за допомогою команди netstat -n -r. Ви повинні побачити щось подібне до наступного:
Код:
rigon@ubuntu-comp:~$ netstat -n -r
Таблиця маршутизации ядра протоколу IP
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 192.168.254.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.254.1 0.0.0.0 UG 0 0 0 eth1
Якщо таблиця порожня, то ви побачите лише заголовки стовпців. Тоді треба використовувати route. За допомогою команди route можна додати або видалити один (за один раз) статичний маршрут. Ось її формат:
Код:
route [-f] операція [-тип] адресат шлюз [dev] інтерфейс
Тут аргумент операція може приймати одне з двох значень: add (маршрут додається) або delete (маршрут видаляється). Аргумент адресат може бути IP-адресом машини, IP-адресом мережі або ключовим словом default . Аргумент шлюз - це IP-адрес комп'ютера, на який слід пересилати пакет (цей комп'ютер повинен мати прямий зв'язок з вашим комп'ютером). Команда
Код:
route -f
видаляє з таблиці дані про всі шлюзи. Необов'язковий аргумент тип набуває значень net або host . У першому випадку в полі адресата вказується адреса мережі, а в другому - адреса конкретного комп'ютера (хоста).
Як правило, буває необхідно побудувати маршрутизацію по згадуваних вище трьох інтерфейсах:
* локальний інтерфейс (lo)
* інтерфейс для плати Ethetnet (eth0)
* інтерфейс для послідовного порту (PPP або SLIP).
Локальний інтерфейс підтримує мережу з IP-номером 127.0.0.1. Тому для маршрутизації пакетів з адресою 127.... використовується команда:
Код:
route add -net 127.0.0.1 lo
Якщо у вас для зв'язку з локальною мережею використовується одна плата Ethernet, і всі машини знаходяться в цій мережі (мережева маска 255.255.255.0), то для налаштування маршрутизації досить викликати:
Код:
route add -net 192.168.36.0 netmask 255.255.255.0 eth0
Якщо ж ви маєте декілька інтерфейсів, то вам треба визначитися з мережевою маскою і викликати команду route для кожного інтерфейсу.
Оскільки дуже часто IP-пакети з вашого комп'ютера можуть вирушати не в одну мережу, а в різні мережі (наприклад, при перегляді різних сайтів в Інтернеті), то в принципі треба було б задати дуже багато маршрутів. Вочевидь, зробити це було б дуже складно, точніше просто неможливо. Тому вирішення проблеми маршрутизації пакетів перекладають на плечі спеціальних комп'ютерів - маршрутизаторів, а на звичайних комп'ютерах задають маршрут за умовчанням, який використовується для відправки всіх пакетів, не вказаних явно в таблиці маршрутизації. За допомогою маршруту за умовчанням ви говорите ядру "а все інше відправляй туди". Маршрут за умовчанням будується наступною командою:
Код:
route add default gw 192.168.1.1 eth0
Опція gw вказує програмі route, що наступний аргумент - це IP-адрес або ім'я маршрутизатора, на який треба відправляти всі пакети, відповідні цьому рядку таблиці маршрутизації.
ПРИКЛАД ПІДКЛЮЧЕННЯ КОРПОРАТИВНОЇ МЕРЕЖІ ЗГІДНО ПРОТОКОЛУ ТСР/ІР ІЗ ЗАЗНАЧЕННЯМ ІР-АДРЕСАЦІЇ В ЦІЙ МЕРЕЖІ
router(1) ADSL
192.168.1.1
eth1
Server (0)
192.168.1.2
eth1
router(0)
192.168.1.3
eth1
PC0(1)
192.168.2.1
eth0
PC1(1)
192.168.2.2
eth0
PC2(1)
192.168.2.3
eth0
PC3(1)
192.168.2.4
eth0
PC4(1)
192.168.2.5
eth0
Printer(1)
192.168.2.6
eth0
PC0(2)
192.168.3.1
eth0
PC1(2)
192.168.3.2
eth0
Printer(2)
192.168.3.3
eth0
PC0(3)
192.168.4.1
eth0
PC1(3)
192.168.4.2
eth0
PC2(3)
192.168.4.3
eth0
PC3(3)
192.168.4.4
eth0
PC4(3)
192.168.4.5
eth0
Printer(3)
192.168.4.6
eth0
PC0(4)
192.168.5.1
eth0
PC1(4)
192.168.5.2
eth0
Printer(4)
192.168.5.3
eth0
PC0(5)
192.168.6.1
eth0
PC1(5)
192.168.6.2
eth0
PC2(5)
192.168.6.3
eth0
PC3(5)
192.168.6.4
eth0
PC4(5)
192.168.6.5
eth0
Printer(5)
192.168.6.6
eth0
Виконання роботи
Пояснення:
Інтерфейс eth0 – це зв'язок з локальною мережею що складається з 5 підмереж 192.168.2.х – 192.168.6.х;
Інтерфейс eth1 – це зв'язок з ADSL модемом та сервером і з виходом в інтернет;
Інтерфейс /etc/network/interfaces першої підмережі:
Код:
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
broadcast 192.168.1.255
Інтерфейс /etc/network/interfaces другої підмережі.
Код:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0 gateway 192.168.1.1
broadcast 192.168.2.255
Для інших підмереж вміст файлу є аналогічним, окрім відповідних змін для полів adress 192.168.х.2, x є [1;5], broadcast 192.168.x.255, x є [2;6].
Встановлення шлюзу за замовчування для eth1:
route add default gw 192.168.1.1 eth1
Для перегляду ресурсів локальних мереж потрібно використати такі команди:
Код:
для 1-ї підмережі:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.254 eth0
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.254 eth0
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.2.254 eth0
route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.2.254 eth0
route add -net 192.168.6.0 netmask 255.255.255.0 gw 192.168.2.254 eth0
для 2-ї підмережі:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.3.254 eth0
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.254 eth0
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.3.254 eth0
route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.3.254 eth0
route add -net 192.168.6.0 netmask 255.255.255.0 gw 192.168.3.254 eth0
для 3-ї підмережі:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.4.254 eth0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.4.254 eth0
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.4.254 eth0
route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.4.254 eth0
route add -net 192.168.6.0 netmask 255.255.255.0 gw 192.168.4.254 eth0
для 4-ї підмережі:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.5.254 eth0
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.5.254 eth0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.5.254 eth0
route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.5.254 eth0
route add -net 192.168.6.0 netmask 255.255.255.0 gw 192.168.5.254 eth0
для 5-ї підмережі:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.6.254 eth0
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.6.254 eth0
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.6.254 eth0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.6.254 eth0
route add -net 192.168.6.0 netmask 255.255.255.0 gw 192.168.6.254 eth0
Результат виконання команд у файлі /etc/network/interface:
Код:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0
broadcast 192.168.1.255
up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.25 eth0
up route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.25 eth0
up route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.1.25 eth0
up route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.25 eth0
up route add -net 192.168.6.0 netmask 255.255.255.0 gw 192.168.1.25 eth0
auto eth1
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
broadcast 192.168.25.255
Для інших підмереж вміст файлу є аналогічним, окрім відповідних змін для полів adress 192.168.х.1, x є [2;6], broadcast 192.168.x.255, x є [2;6] і стрічок “up route”.
Висновок
Ознайомився з правилами маршрутизації в ІР-мережах та навчився задавати таблиці маршрутизації для локальної обчислювальної мережі.