This shows you the differences between two versions of the page.
pr:laboratoare:03 [2017/01/17 10:54] sergiu.costea |
pr:laboratoare:03 [2025/07/27 14:49] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ~~SHOWSOLUTION~~ | + | ===== Laboratorul 03. ===== |
- | ===== Laboratorul 03. OSPF ===== | ||
- | |||
- | ==== 1. Motivație ==== | ||
- | După achiziționarea unui nou sediu vă confruntați cu provocarea configurării protocolului OSPF. Pentru că doriți să asigurați o implementare scalabilă ați ales implementarea Multi-Area OSPF. | ||
- | |||
- | ==== 2. Topologie ==== | ||
- | |||
- | {{ :pr:laboratoare:lab3_topology.png?600 |}} | ||
- | ==== 3. Cerințe ==== | ||
- | |||
- | <note important> Descărcați configurațiile inițiale de {{:pr:laboratoare:02_initial_configs.zip|aici}}. </note> | ||
- | |||
- | Atenție: de fiecare dată când vi se cere să salvați configurațiile ruterelor în initial_configs, trebuie să: | ||
- | * Dați comanda ''wr'' pe toate ruterele | ||
- | * În console dynagen dați comanda (fără ''[]''): | ||
- | <code> | ||
- | export /all [cale_absolută_către_directorul_initial_configs] | ||
- | </code> | ||
- | |||
- | ** 1. [5p] ** Toate adresele IP au fost configurate pe interfețele fizice. Configurați pe fiecare ruter o interfață de loopback urmărind tabelul de mai jos. Atenție, IP-ul de pe loopback va fi automat setat de OSPF ca RID în taskurile ce urmează: | ||
- | |||
- | |||
- | ^ Numele ruterului ^ Adresa de pe Loopback0 | | ||
- | | Eevvee | 150.1.1.1/32 | | ||
- | | Gengar | 150.1.2.1/32 | | ||
- | | Charizard | 150.1.3.1/32 | | ||
- | | Lugia | 150.1.4.1/32 | | ||
- | | Gyarados | 150.1.5.1/32 | | ||
- | |||
- | <solution -hidden> | ||
- | |||
- | <code> | ||
- | Eevvee(config)#int lo0 | ||
- | Eevvee(config-if)#ip addr 150.1.1.1 255.255.255.25 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gengar(config)#int lo0 | ||
- | Gengar(config-if)#ip addr 150.1.2.1 255.255.255.255 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Charizard(config)#int lo0 | ||
- | Charizard(config-if)#ip addr 150.1.3.1 255.255.255.255 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Lugia(config)#int lo0 | ||
- | Lugia(config-if)#ip addr 150.1.4.1 255.255.255.255 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gyarados(config)#int lo0 | ||
- | Gyarados(config-if)#ip addr 150.1.5.1 255.255.255.255 | ||
- | </code> | ||
- | |||
- | </solution> | ||
- | |||
- | ** 2. [5p] ** Configurați OSPF area 0 între //Gengar// și //Eevvee//. Verificați formarea de adiacențe între cele 2 rutere. Care este comanda care verifică formarea adiacențelor? | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Gengar(config)#router ospf 1 | ||
- | Gengar(config-router)#network 172.1.231.0 0.0.0.3 area 0 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Eevvee(config)#router ospf 1 | ||
- | Eevvee(config-router)#network 172.1.231.0 0.0.0.3 area 0 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gengar(config)#do sh ip ospf neigh | ||
- | |||
- | Neighbor ID Pri State Dead Time Address Interface | ||
- | 150.1.1.1 1 FULL/DR 00:00:38 172.1.231.1 Ethernet2/1 | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | |||
- | ** 3. [10p] ** Configurați link-ul dintre //Gengar// și //Eevvee// astfel încât //Gengar// să nu participe la alegerea DR-ului iar Eevvee să devină întotdeauna DR (presupunând că vor fi adăugate pe același segment mai multe rutere cu configurații OSPF implicită). | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Gengar(config-router)#int eth2/1 | ||
- | Gengar(config-if)#ip ospf priority 0 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Eevvee(config)#int eth2/1 | ||
- | Eevvee(config-if)#ip ospf priority 255 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gengar(config)#do sh ip ospf neigh | ||
- | |||
- | Neighbor ID Pri State Dead Time Address Interface | ||
- | 150.1.1.1 255 FULL/DR 00:00:38 172.1.231.1 Ethernet2/1 | ||
- | Eevvee(config)#do sh ip ospf neigh | ||
- | |||
- | Neighbor ID Pri State Dead Time Address Interface | ||
- | 150.1.6.1 0 FULL/DROTHER 00:00:34 172.1.231.2 Ethernet2/1 | ||
- | </code> | ||
- | |||
- | </solution> | ||
- | |||
- | ** 4. [5p] ** Configurați aria 1 între ruterele //Gengar//, //Lugia// și //Charizard//. Verificați formarea adiacențelor între cele 3 rutere. Care sunt RID-urile folosite de fiecare ruter? Identificați ruterul care a fost ales DR și ruterul care a fost ales BDR. Salvați configurațiile de pe rutere în initial_configs. | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Lugia(config)#router ospf 1 | ||
- | Lugia(config-router)#net 10.10.211.0 0.0.0.7 area 1 | ||
- | Lugia(config-router)#do write | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gengar(config)#router ospf 1 | ||
- | Gengar(config-router)#net 10.10.211.0 0.0.0.7 area 1 | ||
- | Gengar(config-router)#do write | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Charizard(config)#router ospf 1 | ||
- | Charizard(config-router)#net 10.10.211.0 0.0.0.7 area 1 | ||
- | Charizard(config-router)#do write | ||
- | </code> | ||
- | |||
- | <code> | ||
- | => export /all initial_configs | ||
- | </code> | ||
- | |||
- | Aflarea DR, BDR în două feluri: | ||
- | <code> | ||
- | Gengar(config-router)#do sh ip ospf neigh | ||
- | |||
- | Neighbor ID Pri State Dead Time Address Interface | ||
- | 150.1.1.1 255 FULL/DR 00:00:32 172.1.231.1 Ethernet2/1 | ||
- | 150.1.3.1 1 FULL/BDR 00:00:36 10.10.211.3 FastEthernet0/0 | ||
- | 150.1.4.1 1 FULL/DR 00:00:36 10.10.211.1 FastEthernet0/0 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gengar(config-router)#do sh ip ospf interface fa0/0 | include Design | ||
- | Designated Router (ID) 150.1.4.1, Interface address 10.10.211.1 | ||
- | Backup Designated router (ID) 150.1.3.1, Interface address 10.10.211.3 | ||
- | Adjacent with neighbor 150.1.3.1 (Backup Designated Router) | ||
- | Adjacent with neighbor 150.1.4.1 (Designated Router) | ||
- | </code> | ||
- | |||
- | 150.1.4.1(Lugia) este DR; 150.1.3.1(Charizard) este BDR; Gengar rămâne în consecință DROther. | ||
- | |||
- | </solution> | ||
- | |||
- | ** 5. [10p] ** Reconfigurați cele 3 rutere de pe segmentul ariei 1, astfel încât ruterul care este în acest moment în starea DROTHER, să devină DR, iar ruterul care este în acest moment DR, să devină BDR. Nu modificați prioritatea OSPF pentru a rezolva acest task. Este permisă modificarea RID-urilor. | ||
- | <note important>Atenție: în dynagen nu funcționează comanda „reload”. Dacă aveți nevoie să restartați ruterele, dați stop și apoi start.</note> | ||
- | |||
- | <solution -hidden> | ||
- | Router ID-uri curente: | ||
- | - Gengar: 150.1.2.1 (DROther) | ||
- | - Charizard: 150.1.3.1 (BDR) | ||
- | - Lugia: 150.1.4.1 (DR) | ||
- | Gengar trebuie să devină DR. În acest sens, vom modifica router ID-ul său astfel încât să fie mai mare decât al lui Charizard și Lugia. | ||
- | Lugia, fost DR va deveni automat BDR deoarece dintre el și Charizard, Lugia are router-ID-ul maxim. | ||
- | |||
- | <code> | ||
- | Gengar(config)#router ospf 1 | ||
- | Gengar(config-router)#router-id 150.1.6.1 | ||
- | Reload or use "clear ip ospf process" command, for this to take effect | ||
- | Gengar(config-router)#do clear ip ospf proc | ||
- | Reset ALL OSPF processes? [no]: yes | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Lugia(config-router)#do clear ip ospf proc | ||
- | Reset ALL OSPF processes? [no]: yes | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Charizard(config)#do clear ip ospf proc | ||
- | Reset ALL OSPF processes? [no]: yes | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Charizard(config)#do sh ip ospf neigh | ||
- | Neighbor ID Pri State Dead Time Address Interface | ||
- | 150.1.4.1 1 2WAY/DROTHER 00:00:30 10.10.211.1 FastEthernet0/0 | ||
- | 150.1.6.1 1 2WAY/DROTHER 00:00:32 10.10.211.6 FastEthernet0/0 | ||
- | |||
- | Charizard(config)#do sh ip ospf neigh | ||
- | Neighbor ID Pri State Dead Time Address Interface | ||
- | 150.1.4.1 1 FULL/BDR 00:00:30 10.10.211.1 FastEthernet0/0 | ||
- | 150.1.6.1 1 FULL/DR 00:00:32 10.10.211.6 FastEthernet0/0 | ||
- | </code> | ||
- | |||
- | </solution> | ||
- | |||
- | |||
- | ** 6. [10p] ** Activați **OSPF aria 1** pe Loopback-ul lui //Gengar//. Verificați tabela de rutare pe ruterul //Lugia//. Ce rețele OSPF cunoaște acest ruter și ce cod (identificatorul din stanga rutei) au aceste rețele? | ||
- | |||
- | <solution -hidden> | ||
- | |||
- | <code> | ||
- | Gengar(config)#router ospf 1 | ||
- | Gengar(config-router)#net 150.1.2.1 0.0.0.0 area 1 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Lugia#sh ip route | ||
- | [...] | ||
- | O IA 172.1.231.0 [110/11] via 10.10.211.6, 00:02:16, FastEthernet0/0 | ||
- | [...] | ||
- | O 150.1.2.1 [110/2] via 10.10.211.6, 00:02:16, FastEthernet0/0 | ||
- | </code> | ||
- | |||
- | Rutele învățate prin OSPF de //Lugia// au identificatorul O. Prima rută a lui //Lugia// are și //IA// (Inter-Area) deoarece reprezintă o rețea introdusă în OSPF într-o altă arie (aria 0) decât cea din care face parte Lugia (area 1). | ||
- | </solution> | ||
- | |||
- | ** 7. [25p] ** Introduceți în OSPF: | ||
- | * rețeaua de pe Loopback-ul lui //Charizard// ca rută externă ariei 1 cu cost cumulativ | ||
- | * rețeaua de pe Loopback-ul lui //Lugia// ca rută externă ariei 1 cu cost inițial de 40, fără cost cumulativ | ||
- | * rețeaua de pe Loopback-ul lui //Eevvee// ca rută externă ariei 0 cu parametrii impliciți | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Charizard(config)#router ospf 1 | ||
- | Charizard(config-router)#redistribute connected metric-type 1 | ||
- | % Only classful networks will be redistributed | ||
- | Charizard(config-router)#redistribute connected metric-type 1 ? | ||
- | subnets Consider subnets for redistribution into OSPF | ||
- | [...] | ||
- | Charizard(config-router)#redistribute connected metric-type 1 subnets | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Lugia(config)#router ospf 1 | ||
- | Lugia(config-router)#redistribute connected metric 40 subnets | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Eevvee(config)#router ospf 1 | ||
- | Eevvee(config-router)#redistribute connected subnets | ||
- | </code> | ||
- | |||
- | </solution> | ||
- | |||
- | ** 8. [10p] ** Vizualizați tabela de rutare pe ruterul //Gengar//. Răspundeți asistentului la următoarele întrebări: | ||
- | * Ce cost are rețeaua care identifică loopback-ul lui //Eevvee//? De ce are acest cost? | ||
- | * Ce coduri (identificatorul din stanga rutei) au cele 3 loopback-uri care au fost injectate în OSPF? | ||
- | * Ce cost are rețeaua care identifică loopbackul lui //Charizard//? De ce are acest cost și cum a fost calculat? | ||
- | * Ce cost are rețeaua care identifică loopback-ul lui //Lugia//? | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Gengar#sh ip route | ||
- | [...] | ||
- | 150.1.0.0/32 is subnetted, 4 subnets | ||
- | O E2 150.1.4.1 [110/40] via 10.10.211.1, 00:02:09, FastEthernet0/0 | ||
- | O E1 150.1.3.1 [110/21] via 10.10.211.3, 00:02:09, FastEthernet0/0 | ||
- | O E2 150.1.1.1 [110/20] via 172.1.231.1, 00:01:24, Ethernet2/1 | ||
- | </code> | ||
- | |||
- | * Ruta injectată de //Lugia//, 150.1.4.1 are codul E2 (implicit pentru comanda de redistribuire, fără cost cumulativ) și metrica 40 setată în comanda de restribuire de la exercițiul anterior. | ||
- | * Ruta injectată de //Charizard//, 150.1.3.1 are codul E1 (deoarece a fost setat explicit), adică este o rută cu cost cumulativ. Costul său provine din costul inițial implicit al rutelor redistribuite - 20, la care se adaugă costul legăturii lui //Gengar// către vecinul de la care a aflat ruta și anume costul 1 implicit pentru o interfață FastEthernet. Verificarea costului OSPF pe interfața Fa0/0 a lui //Gengar// se face cu comanda “show ip ospf interface Fa0/0”. | ||
- | * Ruta injectată de //Eevvee//, 150.1.1.1, are parametrii impliciți: este o rută externă de tip E2(fără cost cumulativ) cu metrica 20. | ||
- | |||
- | </solution> | ||
- | |||
- | ** 9. [10p] ** Configurați autentificare OSPF în format MD5 între ruterele //Gengar// și //Eevvee//. | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Gengar(config)#interface e2/1 | ||
- | Gengar(config-if)#ip ospf authentication message-digest | ||
- | Gengar(config-if)#ip ospf message-digest 1 md5 cisco | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Eevvee(config-router)#interface e2/1 | ||
- | Eevvee(config-if)#ip ospf authentication message-digest | ||
- | Eevvee(config-if)#ip ospf message-digest 1 md5 cisco | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Eevvee(config-if)#Ctrl^Z | ||
- | Eevvee#debug ip ospf adj | ||
- | OSPF adjacency events debugging is on | ||
- | Eevvee# | ||
- | *Mar 1 01:17:34.451: OSPF: Send with youngest Key 1 | ||
- | </code> | ||
- | |||
- | </solution> | ||
- | |||
- | ** 10. [10p] ** Pe segmentul între //Charizard// și //Gyarados// administratorul ce s-a ocupat anterior de rețea a configurat unii parametrii incompatibili pentru adiacența OSPF. Activați **OSPF aria 2** intre cele 2 rutere și rezolvați problemele de adiacență astfel încât cele 2 rutere să ajungă in starea **FULL** de adiacență. După ce ați activat OSPF, folosiți comanda ''debug ip ospf events'' pe //Gyarados// pentru a găsi greșelile. Salvați configurațiile de pe rutere în ''initial_configs''. | ||
- | |||
- | Atenție: orice configurație inițial prezentă pe cele 2 rutere când le-ati pornit poate reprezenta o greseala de configurare făcută de administratorul anterior. | ||
- | |||
- | <solution -hidden> | ||
- | |||
- | <code> | ||
- | Gyarados#sh ip route | ||
- | 10.0.0.0/29 is subnetted, 1 subnets | ||
- | C 10.10.211.168 is directly connected, FastEthernet2/0 | ||
- | Charizard#sh ip route | ||
- | [...] | ||
- | 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks | ||
- | C 10.10.211.168/30 is directly connected, FastEthernet2/0 | ||
- | </code> | ||
- | * Observăm că //Gyarados// este configurat cu o mască de rețea diferită de cea indicată în topologia de laborator | ||
- | |||
- | <code> | ||
- | Charizard(config)#router ospf 1 | ||
- | Charizard(config-router)#net 10.10.211.168 0.0.0.3 area 2 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gyarados(config-if)#interface Fa2/0 | ||
- | Gyarados(config-if)#ip addr 10.10.211.169 255.255.255.252 | ||
- | Gyarados(config-if)#router ospf 1 | ||
- | Gyarados(config-router)#net 10.10.211.168 0.0.0.3 area 2 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gyarados#debug ip ospf events | ||
- | OSPF events debugging is on | ||
- | *Mar 1 01:30:12.643: OSPF: Mismatched hello parameters from 10.10.211.170 | ||
- | *Mar 1 01:30:12.647: OSPF: Dead R 80 C 40, Hello R 20 C 10 Mask R 255.255.255.252 C 255.255.255.252 | ||
- | Gyarados#sh ip ospf interface Fa2/0 | include Hello | ||
- | Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 | ||
- | Hello due in 00:00:01 | ||
- | Charizard#sh ip ospf interface fa2/0 | include Hello | ||
- | Timer intervals configured, Hello 20, Dead 80, Wait 80, Retransmit 5 | ||
- | Hello due in 00:00:11 | ||
- | </code> | ||
- | |||
- | * Observăm un mismatch de configurație de hello interval între //Gyarados// și //Charizard// | ||
- | <code> | ||
- | Gyarados(config)#interface Fa2/0 | ||
- | Gyarados(config-if)#ip ospf hello-interval 20 | ||
- | *Mar 1 01:32:53.115: %OSPF-5-ADJCHG: Process 1, Nbr 150.1.3.1 on FastEthernet2/0 from LOADING to FULL, Loading Done | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gyarados(config-if)#do sh ip ospf neigh | ||
- | Neighbor ID Pri State Dead Time Address Interface | ||
- | 150.1.3.1 1 FULL/BDR 00:01:12 10.10.211.170 FastEthernet2/0 | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | ==== 4. Bonus ==== | ||
- | ** 11. [10p] ** Afisați tabela de rutare pe //Gyarados//. Ce rute OSPF puteți vedea? De ce nu puteți vedea toate rutele OSPF? Configurați rețeaua astfel încât să aveți conectivitate între **aria 2** și restul ariilor OSPF, fără să schimbați configurația ariilor. | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Gyarados(config-if)#do sh ip route | ||
- | [...] | ||
- | 10.0.0.0/30 is subnetted, 1 subnets | ||
- | C 10.10.211.168 is directly connected, FastEthernet2/0 | ||
- | 150.1.0.0/32 is subnetted, 2 subnets | ||
- | C 150.1.5.1 is directly connected, Loopback0 | ||
- | O E1 150.1.3.1 [110/21] via 10.10.211.170, 00:01:26, FastEthernet2/0 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Gengar(config)#router ospf 1 | ||
- | Gengar(config-router)#area 1 virtual-link 150.1.3.1 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Charizard(config)#router ospf 1 | ||
- | Charizard(config-router)#area 1 virtual-link 150.1.6.1 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Charizard(config-router)#do sh ip ospf neigh | ||
- | Neighbor ID Pri State Dead Time Address Interface | ||
- | 150.1.6.1 0 FULL/ - - 10.10.211.6 OSPF_VL0 | ||
- | Gyarados(config-if)#do sh ip route | ||
- | [...] | ||
- | 172.1.0.0/30 is subnetted, 1 subnets | ||
- | O IA 172.1.231.0 [110/12] via 10.10.211.170, 00:00:53, FastEthernet2/0 | ||
- | 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks | ||
- | C 10.10.211.168/30 is directly connected, FastEthernet2/0 | ||
- | O IA 10.10.211.0/29 [110/2] via 10.10.211.170, 00:01:19, FastEthernet2/0 | ||
- | 150.1.0.0/32 is subnetted, 5 subnets | ||
- | O E2 150.1.4.1 [110/40] via 10.10.211.170, 00:00:48, FastEthernet2/0 | ||
- | C 150.1.5.1 is directly connected, Loopback0 | ||
- | O IA 150.1.2.1 [110/3] via 10.10.211.170, 00:01:19, FastEthernet2/0 | ||
- | O E1 150.1.3.1 [110/21] via 10.10.211.170, 00:00:48, FastEthernet2/0 | ||
- | O E2 150.1.1.1 [110/20] via 10.10.211.170, 00:00:48, FastEthernet2/0 | ||
- | O*E2 0.0.0.0/0 [110/1] via 10.10.211.170, 00:00:48, FastEthernet2/0 | ||
- | </code> | ||
- | |||
- | </solution> | ||