Хочете знати, для чого потрібна динамічна маршрутизація Cisco і як налаштувати OSPF у Cisco? Тоді ця стаття призначена для вас!
Давайте розглянемо наступну топологію мережі:
Припустимо, що ми використовуємо статичну маршрутизацію в цій мережі. Потім виникає необхідність додати новий маршрутизатор (R4). Маршрутизатори "знають" тільки про мережі, які безпосередньо до них підключені. У цьому випадку ми повинні вручну додати всі маршрути до підмереж на R4 і додати маршрути до підмереж, які обслуговує R4, до інших маршрутизаторів:
Зі зростанням мережі це стає досить трудомістким завданням. Протоколи динамічної маршрутизації дають змогу обмінюватися маршрутами автоматично, спрощуючи обслуговування мережі. Також динамічні протоколи маршрутизації самі визначають оптимальний маршрут для надсилання пакетів (ми можемо впливати на це за потреби) і обирати альтернативний маршрут у разі падіння якогось каналу.
Наприклад, R3 може зв'язатися з R1 через кілька маршрутів: через 10.5.0.4/30, через 10.5.0.8/30 -> 10.5.0.0/30 та 10.5.0.16/30 -> 10.5.0.12/30 -> 10.5.0.0/ 30. При використанні OSPF роутери постійно обмінюватимуться інформацією про відомі маршрути та стан з'єднань. У разі падіння прямого каналу між R1 та R3 трафік піде через роутер R2.
Налаштування OSPF
Так виглядає топологія нашої мережі після додавання нового маршрутизатора (R4):
Почнемо з налаштування роутера R1. Представляю Вашій увазі безпосередньо сам приклад налаштування.
Запустимо процес ospf:
R1(config)# router ospf 1
Остання цифра - це ідентифікатор процесу, який може відрізнятися для різних роутерів. Для зручності краще використовувати один і той самий номер.
Тепер ми вимкнемо надсилання пакетів привітання для всіх інтерфейсів. З міркувань безпеки ми будемо явно вказувати інтерфейси, які використовуються для сусідських відносин.
R1(config-router)#passive-interface default
Далі вкажемо інтерфейси, які будуть використовуватися для надсилання привітальних пакетів. Для R1 це будуть fa0/0 та fa0/1:
R1(config-router)#no passive-interface fa0/0 R1(config-router)#no passive-interface fa0/1
За допомогою команди network ми можемо зробити дві речі: вказати, які мережі ми хочемо оголосити іншим маршрутизаторам через OSPF, і які інтерфейси будуть використовуватися для надсилання hello-пакетів. Ось чому раніше ми додали певні інтерфейси для hello-пакетів. Наприклад, нам потрібно 3 мережі для маршрутизатора R1: 10.5.0.0/30, 10.5.0.4/30 і 172.16.0.0/26. Але остання мережа включатиме лише пристрої користувачів, і ми не хочемо, щоб хтось міг впливати на таблиці маршрутизації на маршрутизаторах.
Формат команди network::
network 0.0.0.0 255.255.255.255 area 0
Першим параметром йде номер мережі, другим - wildcart маска і останнім номер зони..
Простіше кажучи, ця команда вказує маршрутизатору, які інтерфейси використовуються для оголошення підмереж через OSPF. У наведеному вище прикладі ми дозволили оголошувати будь-які підмережі з будь-яких інтерфейсів. Звичайно, цей метод спрощує конфігурацію, але Cisco не рекомендує його використовувати, оскільки будь-який інтерфейс, налаштований на маршрутизаторі, буде негайно додано до таблиць маршрутизації на інших маршрутизаторах. Cisco рекомендує підключати кожну мережу окремо. У нашій конфігурації мережі на R1 це буде виглядати наступним чином:
R1(config-router)#network 10.5.0.1 0.0.0.0 area 0 R1(config-router)#network 10.5.0.5 0.0.0.0 area 0 R1(config-router)#network 172.16.0.1 0.0.0.0 area 0
Для розуміння синтаксису наведу приклад, який дасть змогу анонсувати обидві службові мережі (10.5.0.0.0/30 і 10.5.0.4/30):
R1(config-router)#network 10.5.0.0 0.0.0.255 area 0
По суті це означає: "анонсувати підмережі з інтерфейсів, починаючи з 10.5.0".
Давайте налаштуємо R2:
router ospf 1 passive-interface default no passive-interface FastEthernet0/0 no passive-interface FastEthernet0/1 no passive-interface Vlan30 network 10.5.0.2 0.0.0.0 area 0 network 10.5.0.9 0.0.0.0 area 0 network 10.5.0.13 0.0.0.0 area 0 network 172.16.0.129 0.0.0.0 area 0
Після цього ми отримуємо наступне сповіщення:
*Mar 1 00:05:29.875: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.0.1 on FastEthernet0/0 from LOADING to FULL, Loading Done
Це означає, що R1 і R2 встановили neighbour відносини й обмінялися інформацією про відомі маршрути. Тепер на R2 має бути один "сусід":
R2#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 172.16.0.1 1 FULL/DR 00:00:35 10.5.0.1 FastEthernet0/0
Погляньте на таблицю маршрутизації на R2:
R2#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type1, N2 - OSPF NSSA external type2 E1 - OSPF external type1, E2 - OSPF external type2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 172.16.0.0/26 is subnetted, 2 subnets C 172.16.0.128 is directly connected, Vlan20 O 172.16.0.0 [110/11] via 10.5.0.1, 00:06:39, FastEthernet0/0 10.0.0.0/30 is subnetted, 3 subnets C 10.5.0.8 is directly connected, Vlan30 O 10.5.0.4 [110/20] via 10.5.0.1, 00:06:39, FastEthernet0/0 C 10.5.0.0 is directly connected, FastEthernet0/0
Ми отримали два маршрути через OSPF від R1, який позначено літерою O на початку запису про маршрут.
Конфігурація R3:
router ospf 1 passive-interface default no passive-interface FastEthernet0/0 no passive-interface FastEthernet0/1 no passive-interface Vlan20 network 10.5.0.6 0.0.0.0 area 0 network 10.5.0.10 0.0.0.0 area 0 network 10.5.0.17 0.0.0.0 area 0 network 172.16.0.65 0.0.0.0 area 0
Конфігурація R4:
router ospf 1 passive-interface default no passive-interface FastEthernet0/0 no passive-interface FastEthernet0/1 network 10.5.0.14 0.0.0.0 area 0 network 10.5.0.18 0.0.0.0 area 0 network 172.16.1.1 0.0.0.0 area 0 network 172.16.1.65 0.0.0.0 area 0 network 172.16.1.129 0.0.0.0 area 0 network 172.16.1.193 0.0.0.0 area 0
Після цих маніпуляцій таблиця маршрутизації виглядає наступним чином:
R1#show ip route ... 172.16.0.0/26 is subnetted, 6 subnets O 172.16.1.128 [110/21] via 10.5.0.6, 00:11:05, FastEthernet0/1[110/21] via 10.5.0.2, 00:11:05, FastEthernet0/0 O 172.16.1.192 [110/21] via 10.5.0.6, 00:11:05, FastEthernet0/1[110/21] via 10.5.0.2, 00:11:05, FastEthernet0/0 C 172.16.0.0 is directly connected, Vlan10 O 172.16.1.0 [110/21] via 10.5.0.6, 00:11:05, FastEthernet0/1[110/21] via 10.5.0.2, 00:11:05, FastEthernet0/0 O 172.16.0.64 [110/11] via 10.5.0.6, 00:11:07, FastEthernet0/1 O 172.16.1.64 [110/21] via 10.5.0.6, 00:11:07, FastEthernet0/1[110/21] via 10.5.0.2, 00:11:07, FastEthernet0/0 10.0.0.0/30 is subnetted, 5 subnets O 10.5.0.12 [110/20] via 10.5.0.2, 00:11:07, FastEthernet0/0 O 10.5.0.8 [110/11] via 10.5.0.6, 00:11:08, FastEthernet0/1[110/11] via 10.5.0.2, 00:11:08, FastEthernet0/0 C 10.5.0.4 is directly connected, FastEthernet0/1 C 10.5.0.0 is directly connected, FastEthernet0/0 O 10.5.0.16 [110/20] via 10.5.0.6, 00:11:11, FastEthernet0/1
Тепер ми можемо зімітувати збій в роботі каналу зв'язку. Простежимо маршрут від маршрутизатора R3 до клієнтського ПК з IP 172.16.0.2:
R3#traceroute 172.16.0.2 Type escape sequence to abort. Tracing the route to 172.16.0.2 1 10.5.0.5 16 msec 16 msec 16 msec 2 172.16.0.2 24 msec 36 msec 44 msec
З трасування видно, що трафік піде безпосередньо до R1. Вимкнемо інтерфейс на R1, до якого підключений R3:
R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#interface fa0/1 R1(config-if)#shutdown R1(config-if)#end
R3 помічає, що канал від R1 вийшов з ладу:
*Mar 1 03:32:41.567: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.0.1 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Dead timer expired
Тепер трафік використовує альтернативний канал (R3 -> R2 - R1):
R3#traceroute 172.16.0.2 Type escape sequence to abort. Tracing the route to 172.16.0.2 1 10.5.0.9 16 msec 16 msec 16 msec 2 10.5.0.1 40 msec 32 msec 40 msec 3 172.16.0.2 44 msec 48 msec 68 msec
Ми завершили налаштування OSPF з однією областю (область 0). Тепер наша мережа використовує OSPF для динамічної маршрутизації.
Multi Area OSPF
Коли варто розділити мережу на кілька зон? Перш за все, коли нам потрібна агрегація маршрутів. Наприклад, в нашій топології маршрутизатор R4 оголошує 4 маршрути в мережу, але всі мережі в діапазоні 172.16.1.0-172.16.1.255 належать виключно R4. Ми хочемо оголосити лише один маршрут: 172.16.1.0/24. Це особливо актуально для великих мереж з великою таблицею маршрутизації.
По-друге, враховуючи природу всіх протоколів динамічної маршрутизації, кожен маршрутизатор в OSPF знає, коли будь-який з каналів мережі виходить з ладу. Звичайно, це покращує процес вибору оптимального маршруту, але значно збільшує навантаження. Припустимо, у нас є 15 офісів у Хмельницькому та 10 у Вінниці. Маршрутизаторам у Вінниці не потрібно знати, що якийсь маршрутизатор у Хмельницькому вийшов з ладу. Поділ мережі на кілька зон допомагає вирішити цю проблему
Для початку приберемо анонс підмереж із R4
router ospf 1 no network 172.16.1.1 0.0.0.0 area 0 no network 172.16.1.65 0.0.0.0 area 0 no network 172.16.1.129 0.0.0.0 area 0 no network 172.16.1.193 0.0.0.0 area 0
І додамо їх з area 1::
router ospf 1 network 172.16.1.1 0.0.0.0 area 1 network 172.16.1.65 0.0.0.0 area 1 network 172.16.1.129 0.0.0.0 area 1 network 172.16.1.193 0.0.0.0 area 1
І оголосимо діапазон для зони:
R4(config-router)#area 1 range 172.16.1.0 255.255.255.0
Тепер на маршрутизаторах з областю 0 з'являється лише один маршрут:
R1#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type1, N2 - OSPF NSSA external type2 E1 - OSPF external type1, E2 - OSPF external type2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route ... O IA 172.16.1.0/24[110/21] via 10.5.0.6, 00:00:30, FastEthernet0/1[110/21] via 10.5.0.2, 00:00:30, FastEthernet0/0 ...