This shows you the differences between two versions of the page.
pr:laboratoare:04 [2016/11/01 11:39] mihai.chiroiu |
pr:laboratoare:04 [2025/07/27 14:49] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Laboratorul 04. OSPF (2) ===== | + | ===== Laboratorul 04. ===== |
- | ==== Motivaţie ==== | ||
- | După ce v-ați familiarizat cu comportamentul de bază al protocolului OSPF, sunteți provocați să implementați politici avansate ale protocolului folosind tipuri speciale de arii OSPF prin care să eficientizați tabelele de rutare în rețea. | ||
- | |||
- | ==== Topologie ==== | ||
- | |||
- | {{ :pr:laboratoare:04_topology.png |}} | ||
- | |||
- | ==== Cerințe ==== | ||
- | |||
- | <note hint> | ||
- | Când un task vă cere afișarea unui output și deducerea unui parametru, comunicați rezultatul analizei voastre asistentului. | ||
- | Toate configurațiile ce făceau scopul primului laborator de OSPF au fost încărcate pe rutere. Nu începeți taskurile acestui laborator fără să încărcați initial_configs. | ||
- | </note> | ||
- | |||
- | === Setup === | ||
- | <note important> Descărcați configurațiile inițiale de {{:pr:laboratoare:04_initial_configs.zip|aici}}. </note> | ||
- | |||
- | === Exerciții === | ||
- | |||
- | 1. Prima provocare avansată OSPF este să configurați rețeaua astfel încât aria 1 să nu primească nici o rută din exteriorul domeniului OSPF dar aria 2 să primească în continuare toate rutele, atât externe cât și inter-area. Rezolvați acest task folosind doar cunoștințele prezentate la curs și fără să modifcați distribuția curentă de arii. Pentru a rezolva acest task, urmăriți exercițiile de mai jos. | ||
- | |||
- | 2. [10p] Încercați să configurați aria 1 ca arie specială OSPF ce filtrează rute externe. Care este problema de care vă loviți? | ||
- | |||
- | <solution -hidden> | ||
- | Aflăm procesul de OSPF care rulează pe fiecare ruter astfel: | ||
- | <code> | ||
- | Chewbacca(config)#do sh ip proto | include ospf | ||
- | Routing Protocol is "ospf 1" | ||
- | </code> | ||
- | |||
- | Trebuie să configurăm area 1 prezentă pe DarthMaul, Jabba și Chewbacca ca arie de stub care filtrează update-urile de tip 5 External Link și de tip 4 ASBR Summary primite din area 0 prin DarthMaul. Mai multe detalii despre tipurile de link state advertisements OSPF găsiți aici: http://en.wikipedia.org/wiki/Link-state_advertisement. | ||
- | |||
- | <code> | ||
- | DarthMaul(config)#router ospf 1 | ||
- | DarthMaul(config-router)#area 1 stub | ||
- | % OSPF: Area cannot be a stub as it contains a virtual link | ||
- | Jabba(config)#router ospf 1 | ||
- | Jabba(config-router)#area 1 stub | ||
- | Jabba(config-router)# | ||
- | *Mar 1 00:12:48.735: %OSPF-4-ASBR_WITHOUT_VALID_AREA: Router is currently an ASBR while having only one area which is a stub area | ||
- | Jabba(config-router)# | ||
- | *Mar 1 00:12:49.623: %OSPF-5-ADJCHG: Process 1, Nbr 150.1.3.1 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Adjacency forced to reset | ||
- | *Mar 1 00:12:49.627: %OSPF-5-ADJCHG: Process 1, Nbr 150.1.6.1 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Adjacency forced to reset | ||
- | Chewbacca(config-router)#area 1 stub | ||
- | % OSPF: Area cannot be a stub as it contains a virtual link | ||
- | </code> | ||
- | |||
- | Pe DarthMaul și Chewbacca nu putem configura area 1 ca stub deoarece a fost folosită pentru configurarea unui virtual link. Adiacențele dintre Jabba și DarthMaul, respectiv dintre Jabba și Chewbacca vor pica deoarece pentru formarea adiacențelor OSPF trebuie să coincidă bitul de stub. | ||
- | |||
- | </solution> | ||
- | |||
- | 3. [15p] Pentru a putea configura aria 1 ca arie speciala OSPF, implementați o metodă alternativă de a lega aria 2 la aria 0 fără a folosi un virtual-link. (Hint: tunelare) | ||
- | |||
- | <solution -hidden> | ||
- | |||
- | Ștergerea configurării de virtual link: | ||
- | <code> | ||
- | Chewbacca(config-router)#do sh run | section router ospf | ||
- | router ospf 1 | ||
- | [...] | ||
- | area 1 virtual-link 150.1.6.1 | ||
- | [...] | ||
- | Chewbacca(config-router)#no area 1 virtual-link 150.1.6.1 | ||
- | DarthMaul(config-router)#do sh run | section router ospf | ||
- | router ospf 1 | ||
- | [...] | ||
- | area 1 virtual-link 150.1.3.1 | ||
- | [...] | ||
- | DarthMaul(config-router)#no area 1 virtual-link 150.1.3.1 | ||
- | </code> | ||
- | |||
- | Tunelare GRE: | ||
- | <code> | ||
- | DarthMaul(config)#interface Tunnel0 | ||
- | DarthMaul(config-if)# ip address 11.0.0.1 255.255.255.0 | ||
- | DarthMaul(config-if)# ip ospf 1 area 0 | ||
- | DarthMaul(config-if)# tunnel source FastEthernet0/0 | ||
- | DarthMaul(config-if)# tunnel destination 10.10.211.3 | ||
- | Chewbacca(config)#interface Tunnel0 | ||
- | Chewbacca(config-if)# ip address 11.0.0.2 255.255.255.0 | ||
- | Chewbacca(config-if)# ip ospf 1 area 0 | ||
- | Chewbacca(config-if)# tunnel source FastEthernet0/0 | ||
- | Chewbacca(config-if)# tunnel destination 10.10.211.6 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Chewbacca(config-if)#do sh ip ospf neig | ||
- | |||
- | Neighbor ID Pri State Dead Time Address Interface | ||
- | 150.1.6.1 0 FULL/ - 00:00:38 11.0.0.1 Tunnel0 [...] | ||
- | </code> | ||
- | |||
- | </solution> | ||
- | |||
- | 4. [3p] Odată ce ați obținut din nou conectivitate între aria 2 și aria 0, configurați aria 1 ca arie specială OSPF pentru a filtra rutele externe. | ||
- | |||
- | * Rulați comanda ''sh ip route'' pe Chewbacca. Apar rute externe? De ce? | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | DarthMaul(config-if)#router ospf 1 | ||
- | DarthMaul(config-router)#area 1 stub | ||
- | Chewbacca(config-if)#router ospf 1 | ||
- | Chewbacca(config-router)#area 1 stub | ||
- | </code> | ||
- | |||
- | Aceste rute sunt aflate via Tunnel0, nu via FastEthernet0/0 din area 1 stub. | ||
- | </solution> | ||
- | |||
- | * Afisați baza de date OSPF pe Chewbacca și identificați de unde aveți rute externe în tabela de rutare OSPF. | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Chewbacca(config-router)#do sh ip ospf database | ||
- | [...] | ||
- | #### Type 4 LSA | ||
- | Summary ASB Link States (Area 2) | ||
- | |||
- | Link ID ADV Router Age Seq# Checksum | ||
- | 150.1.1.1 150.1.3.1 80 0x80000001 0x003931 | ||
- | |||
- | Type-5 AS External Link States | ||
- | |||
- | Link ID ADV Router Age Seq# Checksum Tag | ||
- | 0.0.0.0 150.1.1.1 495 0x80000001 0x00DA3E 1 | ||
- | 150.1.1.1 150.1.1.1 495 0x80000001 0x00C0AC 0 | ||
- | 150.1.3.1 150.1.3.1 493 0x80000001 0x0019D0 0 | ||
- | </code> | ||
- | |||
- | Atât pentru ruta externă 150.1.1.1, cât și pentru 0.0.0.0, introduse prin LSA de tip 5, advertising router este 150.1.1.1, adică Yoda. În secțiunea Summary ASB Link States dedicată LSA-urilor de tip 4, pe coloana Link ID avem ID-ul ASBR-ului care introduce rute de tip 5, iar pe coloana ADV Router avem ABR-ul care propaga Link State-uri de tip 5 din backbone area în area 2(listată în titlul secțiunii). Observăm că ABR-ul este 150.1.3.1, adică Chewbacca care este conectat prin area de backbone prin Tunnel0. | ||
- | |||
- | </solution> | ||
- | |||
- | 5. [4p] Afisați tabela de rutare pe Jabba. | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Jabba#sh ip route | ||
- | [...] | ||
- | O*IA 0.0.0.0/0 [110/2] via 10.10.211.6, 00:18:46, FastEthernet0/0 | ||
- | [110/2] via 10.10.211.3, 00:18:46, FastEthernet0/0 | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | * Câte rute default aveți? De ce? | ||
- | |||
- | <solution -hidden> | ||
- | Avem 2 rute, una prin ABR-ul DarthMaul care e direct conectat la area 0, una prin ABR-ul Chewbacca care e conectat la area 0 prin tunel. Rutele au metrici egale deoarece sunt rute de tip inter-area al căror cost se calculează ca sumă a costului rutei din punct de vedere al ABR-ului care o propagă inter-area, plus costul lui Jabba până la ABR: | ||
- | Costurile lui DarthMaul și Chewbacca pentru ruta 0.0.0.0 sunt egale cu 1 chiar dacă Freddie află despre 0.0.0.0 prin DarthMaul, deoarece 0.0.0.0 este redistribuită în area 0 ca rută de tip E2 (fără cost cumulativ) | ||
- | Costurile lui Jabba până la DarthMaul și Freddie sunt egale cu 1 | ||
- | </solution> | ||
- | |||
- | * Care dintre rutele default prezente este cea generata de Yoda în laboratorul trecut prin comanda „default information-originate”? | ||
- | |||
- | <solution -hidden> | ||
- | Ambele | ||
- | </solution> | ||
- | |||
- | 6. [10p] În urma configurațiilor făcute utilizatorii v-au înștiințat că nu mai pot accesa interfața de loopback a lui Jabba. Testați conectivitatea către 150.1.4.1 de pe orice ruter din rețea. De ce nu mai aveți acces la această rețea? Configurați tipul de arie al ariei 1 astfel încât să puteți accesa rețele externe introduse în OSPF de rutere din această arie. | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Yoda(config)#do ping 150.1.4.1 | ||
- | [...] | ||
- | ..... | ||
- | Yoda(config-router)#do ping 150.1.4.1 | ||
- | [...] | ||
- | !!!!! | ||
- | </code> | ||
- | |||
- | |||
- | <code> | ||
- | Success rate is 0 percent (0/5) | ||
- | DarthMaul(config)#router ospf 1 | ||
- | DarthMaul(config-router)#no area 1 stub | ||
- | DarthMaul(config-router)#area 1 nssa | ||
- | Jabba(config)#router ospf 1 | ||
- | Jabba(config-router)#no area 1 stub | ||
- | Jabba(config-router)#area 1 nssa | ||
- | Chewbacca(config)#router ospf 1 | ||
- | Chewbacca(config-router)#no area 1 stub | ||
- | Chewbacca(config-router)#area 1 nssa | ||
- | </code> | ||
- | |||
- | </solution> | ||
- | |||
- | 7. [3p] Afisați tabela de rutare pe DarthMaul. Cu ce cod cunoaște acest ruter rețelele 150.1.3.1 și 150.1.4.1? Testați conectivitatea către 150.1.4.1 de pe un ruter din rețea (diferit de Jabba) | ||
- | |||
- | <solution -hidden> | ||
- | 150.1.3.1 - Loopback Chewbacca | ||
- | 150.1.4.1 - Loopback Jabba | ||
- | |||
- | <code> | ||
- | DarthMaul#sh ip route | ||
- | [...] | ||
- | O N2 150.1.4.1 [110/40] via 10.10.211.1, 00:02:32, FastEthernet0/0 | ||
- | O N1 150.1.3.1 [110/21] via 10.10.211.3, 00:02:32, FastEthernet0/0 | ||
- | Yoda(config)#do ping 150.1.4.1 | ||
- | [...] | ||
- | !!!!! | ||
- | Success rate is 100 percent (5/5), round-trip min/avg/max = 8/25/44 ms | ||
- | </code> | ||
- | |||
- | Codul care apare indică o rută de tip E2, respectiv E1 redistribuită într-o arie care este NSSA. | ||
- | </solution> | ||
- | |||
- | 8. [10p] Deși ați rezolvat cu succes și această problemă, acum utilizatorii se plâng de faptul că ruterul Jabba nu mai oferă acces la Internet. Care este cauza acestei probleme? Configurați rețeaua astfel încât toate ruterele din aria 1 să primească o rută default de la DarthMaul. | ||
- | |||
- | <solution -hidden> | ||
- | Cauza problemei este că în arii de tip NSSA, spre deosebire de arii de stub, ABR-ul (fie el DarthMaul sau Chewbacca) nu distribuie rute default în mod implicit. | ||
- | |||
- | |||
- | <code> | ||
- | Jabba(config-router)#do ping 150.1.1.1 | ||
- | [...] | ||
- | ..... | ||
- | Success rate is 0 percent (0/5) | ||
- | Jabba(config-router)#do sh ip route | ||
- | [...] | ||
- | O*N2 0.0.0.0/0 [110/1] via 10.10.211.6, 00:00:15, FastEthernet0/0 | ||
- | Jabba(config-router)#do ping 150.1.1.1 | ||
- | [...] | ||
- | !!!!! | ||
- | Success rate is 100 percent (5/5), round-trip min/avg/max = 4/25/72 ms | ||
- | </code> | ||
- | |||
- | <code> | ||
- | DarthMaul(config)#router ospf 1 | ||
- | DarthMaul(config-router)#area 1 nssa default-information-originate | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | 9. [10p] Introduceți rețeaua Loopback0 a lui Yoda în aria 101. Configurați aria 101 pentru a filtra LSA-urile de tip 3, 4 și 5. Verificați faptul că în aria 101 nu ajung LSA-urile specificate. | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Yoda#sh ip ospf data | begin Area 101 | ||
- | Router Link States (Area 101) | ||
- | |||
- | Link ID ADV Router Age Seq# Checksum Link count | ||
- | 150.1.1.1 150.1.1.1 20 0x80000001 0x00164C 1 | ||
- | |||
- | Summary Net Link States (Area 101) | ||
- | |||
- | Link ID ADV Router Age Seq# Checksum | ||
- | 0.0.0.0 150.1.1.1 15 0x80000001 0x005153 | ||
- | |||
- | Type-5 AS External Link States | ||
- | |||
- | Link ID ADV Router Age Seq# Checksum Tag | ||
- | 0.0.0.0 150.1.1.1 1110 0x80000001 0x00DA3E 1 | ||
- | 150.1.3.1 150.1.3.1 1111 0x80000001 0x0019D0 0 | ||
- | 150.1.4.1 150.1.6.1 279 0x80000001 0x00FB6C 0 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Yoda(config)#router ospf 1 | ||
- | Yoda(config-router)#net 150.1.1.1 0.0.0.0 area 101 | ||
- | Yoda(config-router)#area 101 stub no-summary | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | 10. [10p] Configurați interfețele de Loopback de mai jos pe Jabba și introduceți aceste rețele în OSPF fără a le introduce într-o anumită arie: | ||
- | * Loopback1: 192.168.0.1/26 | ||
- | * Loopback2: 192.168.0.65/26 | ||
- | * Loopback3: 192.168.0.129/26 | ||
- | * Loopback4: 192.168.0.193/26 | ||
- | |||
- | <solution -hidden> | ||
- | |||
- | <code> | ||
- | Yoda#sh ip route | ||
- | [..] | ||
- | |||
- | 192.168.0.0/26 is subnetted, 4 subnets | ||
- | O E2 192.168.0.64 [110/40] via 172.1.231.2, 00:00:35, Ethernet2/1 | ||
- | O E2 192.168.0.0 [110/40] via 172.1.231.2, 00:00:43, Ethernet2/1 | ||
- | O E2 192.168.0.192 [110/40] via 172.1.231.2, 00:00:16, Ethernet2/1 | ||
- | O E2 192.168.0.128 [110/40] via 172.1.231.2, 00:00:27, Ethernet2/1 | ||
- | [..] | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Jabba(config)#interface Loopback1 | ||
- | Jabba(config-if)# ip address 192.168.0.1 255.255.255.192 | ||
- | Jabba(config-if)#interface Loopback2 | ||
- | Jabba(config-if)# ip address 192.168.0.65 255.255.255.192 | ||
- | Jabba(config-if)#interface Loopback3 | ||
- | Jabba(config-if)# ip address 192.168.0.129 255.255.255.192 | ||
- | Jabba(config-if)#interface Loopback4 | ||
- | Jabba(config-if)# ip address 192.168.0.193 255.255.255.192 | ||
- | </code> | ||
- | |||
- | Aceste rute sunt introduse automat în OSPF deoarece Jabba este configurat să redistribuie rutele connected din laboratorul precedent de OSPF. | ||
- | |||
- | </solution> | ||
- | |||
- | |||
- | 11. [ 5p] Configurați interfețele de Loopback de mai jos pe DarthMaul și introduceți aceste rețele în OSPF aria 201: | ||
- | * Loopback1: 192.168.1.1/25 | ||
- | * Loopback2: 192.168.1.129/25 | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | DarthMaul#sh ip proto | ||
- | [..] | ||
- | 192.168.1.1 0.0.0.0 area 201 | ||
- | 192.168.1.129 0.0.0.0 area 201 | ||
- | [..] | ||
- | </code> | ||
- | |||
- | <code> | ||
- | DarthMaul(config)#interface Loopback1 | ||
- | DarthMaul(config-if)# ip address 192.168.1.1 255.255.255.128 | ||
- | DarthMaul(config-if)#interface Loopback2 | ||
- | DarthMaul(config-if)# ip address 192.168.1.129 255.255.255.128 | ||
- | DarthMaul(config-if)#router ospf 1 | ||
- | DarthMaul(config-router)# network 192.168.1.1 0.0.0.0 area 201 | ||
- | DarthMaul(config-router)# network 192.168.1.129 0.0.0.0 area 201 | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | 12. [10p] Sumarizați rețelele de loopback ale lui Jabba pentru a introduce o singură rută în OSPF. Verificați comportamentul în tabelele de rutare ale ruterelor vecine. | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | Jabba(config-if)#router ospf 1 | ||
- | Jabba(config-router)#summary-address 192.168.0.0 255.255.255.0 | ||
- | </code> | ||
- | |||
- | |||
- | <code> | ||
- | Chewbacca#sh ip route | ||
- | [...] | ||
- | O E2 192.168.0.0/24 [110/40] via 10.10.211.1, 00:00:08, FastEthernet0/0 | ||
- | [...] | ||
- | </code> | ||
- | |||
- | </solution> | ||
- | |||
- | 13. [10p] Sumarizați rețelele de loopback ale lui DarthMaul pentru a introduce o singură rută în OSPF. Verificați comportamentul în tabelele de rutare ale ruterelor vecine. | ||
- | |||
- | <solution -hidden> | ||
- | <code> | ||
- | DarthMaul(config-router)# area 201 range 192.168.1.0 255.255.255.0 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Jabba(config-router)#do sh ip route | ||
- | [...] | ||
- | O IA 192.168.1.0/24 [110/2] via 10.10.211.6, 00:00:47, FastEthernet0/0 | ||
- | [...] | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | ==== Bonus ==== | ||
- | |||
- | 14. [5p] In laboratorul OSPF part 1 ați configurat autentificare MD5 cu parola cisco între ruterele DarthMaul și Yoda. Configurați ruterele pentru a se autentifica cu parola ccnp, FĂRĂ a pierde adiacența între ele pe măsură ce realizați configurațiile. | ||
- | |||
- | <solution -hidden> | ||
- | |||
- | <code> | ||
- | DarthMaul#sh ip ospf neigh | ||
- | 150.1.1.1 255 FULL/DR 00:00:33 172.1.231.1 Ethernet2/1 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | DarthMaul(config-router)#int e2/1 | ||
- | DarthMaul(config-if)# ip ospf message-digest-key 2 md5 ccnp | ||
- | Yoda(config)#int e2/1 | ||
- | Yoda(config-if)# ip ospf message-digest-key 2 md5 ccnp | ||
- | DarthMaul(config-if)#no ip ospf message-digest-key 1 | ||
- | </code> | ||
- | |||
- | <code> | ||
- | Yoda(config-if)#no ip ospf message-digest-key 1 | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | 15. [5p] Adăugați interfața Loopback1 pe Stormtrooper cu adresa 192.168.100.1/24. Introduceți această rețea în OSPF fără a da nici o comandă OSPF pe ruterul Stormtrooper. | ||
- | |||
- | <solution -hidden> | ||
- | |||
- | <code> | ||
- | Stormtrooper(config)#int lo1 | ||
- | Stormtrooper(config-if)#ip addr 192.168.100.1 255.255.255.0 | ||
- | Chewbacca(config)#ip route 192.168.100.0 255.255.255.0 10.10.211.169 | ||
- | Chewbacca(config)#router ospf 1 | ||
- | Chewbacca(config-router)#redistribute static subnets | ||
- | </code> | ||
- | |||
- | </solution> |