Динамично рутиране - OSPF

Отдавна не съм се занимавал с този тип дейности. Първо защо е нужно динамично рутиране? Давам пример: "Ако имаме малка мрежа примерно от 2 или 3 рутера то не е проблем да се опишат маршрутите в тази мрежа. А сега си представете компания с 50 рутера или още по-голяма. Първо да се опишат маршрутите е много работа и вероятността да се допусне грешка също е много голяма". Затова на помощ идват така наречените динамични рутирания (маршрути). Недостатък на упоменатите динамични маршрути е, че много товарят устройствата (рутерите). Вярно има разни тънкости в настройките за облекчаване работата на маршрутизаторите но все пак си изисква ресурс. И така на долната картинка ще покажем прост пример на динамично маршрутизиране.

Pic01

В случая имаме три рутера работещи в една AREA 0. Тя е задължителна. Всяка допълнителна примерно AREA 1, AREA2 и т.н. ще работят в допълнение на AREA 0. Тук ще демонстрираме работа е една AREA за да стане ясна работата на динамичния протокол OSPF. За да работи примера ни е необходимо рутерите да имат: - Дефинирани мрежи в които ще работят - Индентификатори - АРЕА в която ще работят. За клиентски машини ще ползваме PC0, PC1 и PC2. Мрежовите настройки на интерфейсите им ще са съответно: PC0: IP:192.168.10.2/24 GW:192.168.10.1 PC1: IP:192.168.11.2/24 GW:192.168.11.1 PC2: IP:192.168.12.2/24 GW:192.168.12.1 Да започваме с Router0:

Router>en # Влизаме в привилегирован режим. Router#configure terminal # Влизаме в режим глобална конфигурация Router(config)#interface fastEthernet 0/0 # Ще дефинираме интерфейс Fa 0/0 Router(config-if)#no shutdown # Интерфейс Fa 0/0 го правим активен Router(config-if)#ip address 10.0.0.10 255.255.255.0 # Даваме му IP adres Router(config-if)#exit # Излизаме ниво нагоре за да може да влезем да редактираме другия интерфейс на рутера Router(config)#interface fastEthernet 0/1 # Ще дефинираме интерфейс Fa 0/1 Router(config-if)#no shutdown # Интерфейс Fa 0/1 го правим активен Router(config-if)#ip address 192.168.10.1 255.255.255.0 # Даваме му IP adres Router(config-if)#end # Приключваме с настройката на Router0

За сега приключваме с Router0. Продължаваме с Router1

Router>en # Влизаме в привилегирован режим. Router#configure terminal # Влизаме в режим глобална конфигурация Router(config)#interface fastEthernet 0/0 # Ще дефинираме интерфейс Fa 0/0 Router(config-if)#no shutdown # Интерфейс Fa 0/0 го правим активен Router(config-if)#ip address 10.0.0.11 255.255.255.0 # Даваме му IP adres Router(config-if)#exit # Излизаме ниво нагоре за да може да влезем да редактираме другия интерфейс на рутера Router(config)#interface fastEthernet 0/1 # Ще дефинираме интерфейс Fa 0/1 Router(config-if)#no shutdown # Интерфейс Fa 0/1 го правим активен Router(config-if)#ip address 192.168.11.1 255.255.255.0 # Даваме му IP adres Router(config-if)#end # Приключваме с настройката на Router0

И с Router1 приключваме засега Продължаваме с Router2

Router>en # Влизаме в привилегирован режим. Router#configure terminal # Влизаме в режим глобална конфигурация Router(config)#interface fastEthernet 0/0 # Ще дефинираме интерфейс Fa 0/0 Router(config-if)#no shutdown # Интерфейс Fa 0/0 го правим активен Router(config-if)#ip address 10.0.0.12 255.255.255.0 # Даваме му IP adres Router(config-if)#exit # Излизаме ниво нагоре за да може да влезем да редактираме другия интерфейс на рутера Router(config)#interface fastEthernet 0/1 # Ще дефинираме интерфейс Fa 0/1 Router(config-if)#no shutdown # Интерфейс Fa 0/1 го правим активен Router(config-if)#ip address 192.168.12.1 255.255.255.0 # Даваме му IP adres Router(config-if)#end # Приключваме с настройката на Router0


До тук направихме следното: - Всеки клиент вижда рутера към който е свързан но не вижда другите рутери и клиенти, - Рутерите се виждат помежду си но маршрутните им таблици са само до локалните интерфейси. Да проверим от PC0

C:\>ping 192.168.10.1 Pinging 192.168.10.1 with 32 bytes of data: Reply from 192.168.10.1: bytes=32 time<1ms TTL=255 Reply from 192.168.10.1: bytes=32 time<1ms TTL=255 Reply from 192.168.10.1: bytes=32 time=1ms TTL=255 Reply from 192.168.10.1: bytes=32 time<1ms TTL=255 C:\>ping 10.0.0.1 Pinging 10.0.0.1 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out

Тази тема я проиграхме в "Първоначални настройки на рутера (ROUTING)". Тук няма да пояснявам защо. За сигурност да проверим Router0

Router0#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 10.0.0.10 YES manual up up FastEthernet0/1 192.168.10.1 YES manual up up Vlan1 unassigned YES unset administratively down down Router0#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, 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 10.0.0.0/24 is subnetted, 1 subnets C 10.0.0.0 is directly connected, FastEthernet0/0 C 192.168.10.0/24 is directly connected, FastEthernet0/1

Всичко е точно За да се виждат всички устройства от упражнението един друг ще ползваме динамично маршрутизиране (OSPF). Започваме с Router0. Стъпките ще са следните: - Дефинираме процес на динамично рутиране. Примерно за този рутер ще е 1. В другите рутери може пак да е 1 но може да е и друг номер. В този рутер може да има няколко процеса на рутиране, но те трябва да бъдат с различни номера. - Дефинираме ID на процеса. Ако не укажем никакво ID то рутера си назначава сам по подразбиране. На различните рутери ID-то трябва да е различно. - Дефинираме кои мрежи ще участват в динамичните маршрути. В нашия случай ще включим двата интерфейса Fa0/0 и Fa0/1. Освен дефинирането на кои интерфейси ще участват (по-точно не интерфейсите а кои мрежи), ще трябва да се укаже и в коя AREA ще работи. Тъй като примера ще е прост то ще ползваме само основната AREA 0. - За намаляване на натовареността на рутера ще ограничим разпространението на динамичните маршрути само между рутерите, като изключим разпространението им към клиентите. Това също ще повиши безопасността на системата. И така започваме:

Router0#configure terminal Router0(config)#router ospf 1 # Дефинираме процес на динамично рутиране №1 Router0(config-router)#router-id 1.1.1.1 # Дефинираме уникално ID на процеса Router0(config-router)#network 10.0.0.0 0.0.0.255 area 0 # Вкарваме едната мрежа в таблицата на динамичните маршрути Router0(config-router)#network 192.168.10.0 0.0.0.255 area 0 # Вкарваме другата мрежа в таблицата на динамичните марпрути Router0(config-router)#passive-interface fastEthernet 0/1 # Изключваме разпространението на таблицата на динамичните маршрути към клиентите Router0(config-router)#end # Приключваме дефинирането на OSPF Router0#show ip protocols # Да видим какво сътворихме, като разгледаме протокола OSPF Routing Protocol is "ospf 1" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Router ID 1.1.1.1 Number of areas in this router is 1. 1 normal 0 stub 0 nssa Maximum path: 4 Routing for Networks: 10.0.0.0 0.0.0.255 area 0 192.168.10.0 0.0.0.255 area 0 Passive Interface(s): FastEthernet0/1 Routing Information Sources: Gateway Distance Last Update 1.1.1.1 110 00:00:34 Distance: (default is 110)

Имаме дефиниран динамичен протокол OSPF. Вижда му се ID-то. Вижда се кои мрежи участват в динамичното рутиране, и кой е пасивния интерфейс. Обърнете внимание как дефинирахме мрежите: "network 10.0.0.0 0.0.0.255 area 0". Тук маската е в инверсен режим. За пример: Мрежата е 10.0.0.0 с маска 255.255.255.0. А ние трябва да направим маската инверсна. Това става като от 255.255.255.255 извадим 255.255.255.0 и се получава 0.0.0.255. Това е принципа. Сега да дефинираме и Router1

Router1#configure terminal Router1(config)#router ospf 1 Router1(config-router)#router-id 2.2.2.2 Router1(config-router)#network 10.0.0.0 0.0.0.255 area 0 Router1(config-router)#network 192.168.11.0 0.0.0.255 area 0 Router1(config-router)#passive-interface fastEthernet 0/1 Router1(config-router)#end Router1#show ip protocols Routing Protocol is "ospf 1" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Router ID 2.2.2.2 Number of areas in this router is 1. 1 normal 0 stub 0 nssa Maximum path: 4 Routing for Networks: 10.0.0.0 0.0.0.255 area 0 192.168.11.0 0.0.0.255 area 0 Passive Interface(s): FastEthernet0/1 Routing Information Sources: Gateway Distance Last Update 1.1.1.1 110 00:00:53 2.2.2.2 110 00:00:19 Distance: (default is 110)

Както и в предния рутер се вижда номера на процеса, ID на процеса, дефинираните мрежи, както и пасивния интерфейс. Обърнете внимение на Routing Information Sources. Този рутер видя предния и почва да разменя маршрути с предния рутер. Да дефинираме и Router2

Router2#configure terminal Router2(config)#router ospf 1 Router2(config-router)#router-id 3.3.3.3 Router2(config-router)#network 10.0.0.0 0.0.0.255 area 0 Router2(config-router)#network 192.168. 0.0.0.255 area 0 Router2(config-router)#network 192.168.12.0 0.0.0.255 area 0 Router2(config-router)#passive-interface fastEthernet 0/1 Router2(config-router)#end Routing Protocol is "ospf 1" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Router ID 3.3.3.3 Number of areas in this router is 1. 1 normal 0 stub 0 nssa Maximum path: 4 Routing for Networks: 10.0.0.0 0.0.0.255 area 0 192.168.12.0 0.0.0.255 area 0 Passive Interface(s): FastEthernet0/1 Routing Information Sources: Gateway Distance Last Update 1.1.1.1 110 00:07:41 2.2.2.2 110 00:07:07 3.3.3.3 110 00:00:18 Distance: (default is 110)

Всичко е точно маршрутите на трите рутера почнаха да се разменят. Да видим кои съседи участват в динамичните маршрути

Router2#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 2.2.2.2 1 FULL/BDR 00:00:36 10.0.0.11 FastEthernet0/0 1.1.1.1 1 FULL/DR 00:00:31 10.0.0.10 FastEthernet0/0

Съседи са Router0 и Router1 със съответните си ID-та, мрежи и интерфейси. А сега да видим и самите маршрути в Router2

Router2#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, 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 10.0.0.0/24 is subnetted, 1 subnets C 10.0.0.0 is directly connected, FastEthernet0/0 O 192.168.10.0/24 [110/2] via 10.0.0.10, 00:13:19, FastEthernet0/0 O 192.168.11.0/24 [110/2] via 10.0.0.11, 00:13:19, FastEthernet0/0 C 192.168.12.0/24 is directly connected, FastEthernet0/1

Имаме два статични маршрута "C 10.0.0.0 is directly connected, FastEthernet0/0", "C 192.168.12.0/24 is directly connected, FastEthernet0/1", както и два маршрута получени чрез OSPF "O 192.168.10.0/24 [110/2] via 10.0.0.10, 00:13:19, FastEthernet0/0" и "O 192.168.11.0/24 [110/2] via 10.0.0.11, 00:13:19, FastEthernet0/0" И сега да проверим работоспособността на протокола OSPF, или по-точно как го подкарахме. Отваме на PC2

C:\>ping 192.168.12.1 Pinging 192.168.12.1 with 32 bytes of data: Reply from 192.168.12.1: bytes=32 time<1ms TTL=255 Reply from 192.168.12.1: bytes=32 time<1ms TTL=255 Reply from 192.168.12.1: bytes=32 time<1ms TTL=255 Reply from 192.168.12.1: bytes=32 time<1ms TTL=255 C:\>ping 192.168.11.2 Pinging 192.168.11.2 with 32 bytes of data: Reply from 192.168.11.2: bytes=32 time<1ms TTL=126 Reply from 192.168.11.2: bytes=32 time<1ms TTL=126 Reply from 192.168.11.2: bytes=32 time<1ms TTL=126 Reply from 192.168.11.2: bytes=32 time<1ms TTL=126 C:\>ping 192.168.10.2 Pinging 192.168.10.2 with 32 bytes of data: Reply from 192.168.10.2: bytes=32 time<1ms TTL=126 Reply from 192.168.10.2: bytes=32 time<1ms TTL=126 Reply from 192.168.10.2: bytes=32 time=1ms TTL=126 Reply from 192.168.10.2: bytes=32 time<1ms TTL=126

Супер PC2 достъпва всички клиенти. Това ни трябваше. Сега малко ще се отклоня и ще кажа какво не е добре в този пример. Използването на само на една AREA. Независимо, че ограничихме разпространението на маршрутните таблици към клиентите, натовареността на рутерите все още ще е много висока. За целата по-големите мрежи трябва да се разбият на няколко AREA. За целта обаче трябва да разиграем нов пример.

Pic02

Спреямо гония пример имаме още 2 рутера (Router3 и Router4), свързани съответно към Router0 и Router2. Имаме и още два клиента PC3 и PC4 свързани съответно към Router3 и Router4. Пробвах се да имитирам по-голяма фирма, имаща централен офис примерно на 3 етажа (AREA 0) и още два клона извън централния офис (AREA 10 и AREA 20). Да приемем, че в централния офис има няколко отдела, разделени на няколко мрежи. Приемаме, че клоновете също отделени са в различни мрежи. И както говорихме по-горе, ако всичко се сложи само в една AREA 0, то натовареността на рутерите ще нарасне. Затова създадохме за клоновете AREA 10 и AREA 20. Най-вероятно пак ще е мъгла по това което говоря но на примера ще стане всичко ясно. Няма да показвам как вдигам интерфейсите на Router0, Router2, Router3 и Router4. Също няма да показвам как се присвоява IP към дадения интерфейс. По-важното е да доразвием темата OSPF. Да погледнем за начало интерфейсите на Router0, Router2, Router3 и Router4. По тях правихме промени, Router1 не сме го пипали.

Router0#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 10.0.0.10 YES manual up up FastEthernet0/1 192.168.10.1 YES manual up up FastEthernet0/1/0 unassigned YES unset up up FastEthernet0/1/1 unassigned YES unset up down FastEthernet0/1/2 unassigned YES unset up down FastEthernet0/1/3 unassigned YES unset up down Vlan1 172.16.10.1 YES manual up up Router2#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 10.0.0.12 YES manual up up FastEthernet0/1 192.168.12.1 YES manual up up FastEthernet0/1/0 unassigned YES unset up up FastEthernet0/1/1 unassigned YES unset up down FastEthernet0/1/2 unassigned YES unset up down FastEthernet0/1/3 unassigned YES unset up down Vlan1 172.16.12.1 YES manual up up Router3#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 172.16.10.2 YES manual up up FastEthernet0/1 192.168.13.1 YES manual up up Vlan1 unassigned YES unset administratively down down Router4#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 172.16.12.2 YES manual up up FastEthernet0/1 192.168.14.1 YES manual up up Vlan1 unassigned YES unset administratively down down

Router0, Router2 имат вдигнат още един итерфейс VLAN1 и присъединено IP. Router3 и Router4 са както Router1. Сега да се прехвърлим на Router0 и да добавим мрежата 172.16.10.0/24 към OSPF-a.

Router0#configure terminal Router0(config)#router ospf 1 Router0(config-router)#network 172.16.10.0 0.0.0.255 area 10 Router0(config-router)#end

Забележете, добавихме мрежа 172.16.10.0/24 но вече в AREA 10. Сега да се прехвърлим на Router3

Router3#configure t Router3(config)#router ospf 1 Router3(config-router)#router-id 4.4.4.4 Router3(config-router)#network 172.16.10.0 0.0.0.255 area 10 Router3(config-router)#network 192.168.13.0 0.0.0.255 area 10 Router3(config-router)#passive-interface fastEthernet 0/1 Router3(config-router)#end


И да проверим от PC0 да достъпим PC3

C:\>ping 192.168.13.1 Pinging 192.168.13.1 with 32 bytes of data: Reply from 192.168.13.1: bytes=32 time<1ms TTL=254 Reply from 192.168.13.1: bytes=32 time<1ms TTL=254 Reply from 192.168.13.1: bytes=32 time<1ms TTL=254 Reply from 192.168.13.1: bytes=32 time<1ms TTL=254 C:\>ping 192.168.13.2 Pinging 192.168.13.2 with 32 bytes of data: Reply from 192.168.13.2: bytes=32 time<1ms TTL=126 Reply from 192.168.13.2: bytes=32 time<1ms TTL=126 Reply from 192.168.13.2: bytes=32 time<1ms TTL=126 Reply from 192.168.13.2: bytes=32 time<1ms TTL=126

Всичко работи правилно. Задачка закачка оставям да се справите с AREA20 и Router4 С това смятам да приключваме с OSPF-а. В следващите теми мисля да подхванем използването на рутера в малки фирми с Internet. Смятам да покажа DHCP, PPPoE и нещо от този род както съм го показвал при Mikrotik-a. Върти ми се из главата да демонстрирам миксирани мрежи (Cisco, Mikrotik и разни други рутери), но не знам дали ще ми остане време.