Міністерство освіти і науки України
Національний Університет «Львівська Політехніка»
ЗВІТ ДО ПРАКТИЧНОЇ РОБОТИ №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-адрес або ім'я маршрутизатора, на який треба відправляти всі пакети, відповідні цьому рядку таблиці маршрутизації.
ПРИКЛАД ПІДКЛЮЧЕННЯ КОРПОРАТИВНОЇ МЕРЕЖІ ЗГІДНО ПРОТОКОЛУ ТСР/ІР ІЗ ЗАЗНАЧЕННЯМ ІР-АДРЕСАЦІЇ В ЦІЙ МЕРЕЖІ
Номер РС
ІП адреса
Інтефейс
Підмережа сервера
Server
192.168.6.2
eth1
Router (ADSL)
192.168.6.1
eth1
Router
192.168.6.3
eth1
Підмережа 1
PC1(1)
192.168.1.1
eth0
PC2(1)
192.168.1.2
eth0
PC3(1)
192.168.1.3
eth0
PC4(1)
192.168.1.4
eth0
Підмережа 2
PC1(2)
192.168.2.1
eth0
PC2(2)
192.168.2.2
eth0
PC3(2)
192.168.2.3
eth0
PC4(2)
192.168.2.4
eth0
Підмережа 3
PC1(3)
192.168.3.1
eth0
PC2(3)
192.168.3.2
eth0
PC3(3)
192.168.3.3
eth0
PC4(3)
192.168.3.4
eth0
Підмережа 4
PC1(4)
192.168.4.1
eth0
PC2(4)
192.168.4.2
eth0
PC3(4)
192.168.4.3
eth0
PC4(4)
192.168.4.5
eth0
Підмережа 5
PC1(5)
192.168.5.1
eth0
PC2(5)
192.168.5.2
eth0
PC3(5)
192.168.5.3
eth0
PC4(5)
192.168.5.4
eth0
Виконання роботи
Інтерфейс /etc/network/interfaces підмережі сервера.
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.6.2
netmask 255.255.255.0
gateway 192.168.6.1
broadcast 192.168.6.255
Інтерфейс /etc/network/interfaces першої підмережі.
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.6.1
broadcast 192.168.1.255
Інтерфейс /etc/network/interfaces другої підмережі.
auto lo
iface lo inet loopback
auto eth0
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0
gateway 192.168.6.1
broadcast 192.168.2.255
Інтерфейс /etc/network/interfaces третьої підмережі.
auto lo
iface lo inet loopback
auto eth0
iface eth1 inet static
address 192.168.3.1
netmask 255.255.255.0
gateway 192.168.6.1
broadcast 192.168.3.255
Інтерфейс /etc/network/interfaces четвертої підмережі.
auto lo
iface lo inet loopback
auto eth0
iface eth1 inet static
address 192.168.4.1
netmask 255.255.255.0
gateway 192.168.6.1
broadcast 192.168.4.255
Інтерфейс /etc/network/interfaces п’ятої підмережі.
auto lo
iface lo inet loopback
auto eth0
iface eth1 inet static
address 192.168.5.1
netmask 255.255.255.0
gateway 192.168.6.1
broadcast 192.168.5.255
Встановлююю шлюз по замовчуванню для eth1:
route add default gw 192.168.6.1 eth1
Інтерфейс eth0 – це зв'язок з локальною мережею що складається з 5 підмереж 192.168.1.х – 192.168.5.х;
Інтерфейс eth1 – це зв'язок з ADSL модемом та сервером із виходом в інтернет;
Для перегляду ресурсів локальних мереж виконую наступні команди:
для першої підмережі:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.254 eth0
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.254 eth0
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.1.254 eth0
route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.254 eth0
route add -net 192.168.6.0 netmask 255.255.255.0 gw 192.168.1.254 eth0
для другої підмережі:
route add -net 192.168.1.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
для третьої підмережі:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.3.254 eth0
route add -net 192.168.2.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
для четвертої підмережі:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.4.254 eth0
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.4.254 eth0
route add -net 192.168.3.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
для п’яьої підмережі:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.5.254 eth0
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.4.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
Результат виконання команд
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.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.254 eth0
up route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.254 eth0
up route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.1.254 eth0
up route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.254 eth0
up route add -net 192.168.6.0 netmask 255.255.255.0 gw 192.168.1.254 eth0
auto eth1
iface eth1 inet static
address 192.168.6.2
netmask 255.255.255.0
gateway 192.168.6.1
broadcast 192.168.254.255
Для усіх інших підмереж вміст файлу є аналогічним, за винятком відповідних змін для полів adress 192.168.х.1, x є [2;6], broadcast 192.168.x.255, x є [2;6] і стрічок “up route”.
Висновок
В даній практичній роботі я навчився задавати таблиці маршрутизації для локальної мережі.