This shows you the differences between two versions of the page.
rl:labs:12:contents:04 [2023/12/28 18:08] viorel.mocanu created |
rl:labs:12:contents:04 [2024/01/15 07:16] (current) vlad_iulius.nastase [04. [10p] Propagare corectă next-hop] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 04. [10p] Rezervare adresă IP publică ====== | + | ====== 04. [10p] Propagare corectă next-hop ====== |
+ | În teorie, în urma comenzilor de le exercițiul anterior ar trebui să avem conectivitate de pe router-ul ''PARI'' către alte AS-uri. | ||
+ | Realitatea este alta... | ||
+ | <code> | ||
+ | PARI_router# ping 21.0.2.2 | ||
+ | ping: connect: Network unreachable | ||
+ | PARI_router# | ||
+ | </code> | ||
- | Dorim să ne rezervăm propria adresă IP publică statică pentru a o asocia mai târziu unei instanțe din topologia noastră. În //VPC Network//, alegem secțiunea //IP addresses// și opțiunea **Reserve External Static IP Address** (păstrăm setările default), setăm **Name** cu valoarea ''%%studentX-public%%'', Network Service Tier bifăm **Standard**, selectăm tipul **Regional** și aceeași regiune definită pe VPC-ul creat mai devreme (preferabil EU-west1) și apăsăm **Reserve**. | + | Dacă ne uităm la output-ul comenzii ''show bgp summary'' putem observa că am primit totuși de la router-ul ''LOND'' rute (coloana ''State/PfxRcd''). |
+ | <code> | ||
+ | PARI_router# show bgp sum | ||
- | Este un cost pentru fiecare adresă IP publică statică care nu este alocată unei instanțe (“totul în viață se plătește”). | + | IPv4 Unicast Summary: |
+ | BGP router identifier <X>.152.0.1, local AS number <X> vrf-id 0 | ||
+ | BGP table version 0 | ||
+ | RIB entries 3, using 576 bytes of memory | ||
+ | Peers 1, using 14 KiB of memory | ||
- | Acum avem în lista de adrese IP publice statice din contul nostru, adresa IP alocată mai devreme. | + | Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt |
+ | <X>.151.0.1 4 2 5 6 0 0 0 00:00:54 2 0 | ||
+ | Total number of neighbors 1 | ||
+ | PARI_router# | ||
+ | </code> | ||
+ | |||
+ | Însă, dacă verificăm tabela de rutare, nu vom regăsi nicio rută către rețele din afara AS-ului nostru (spre exemplu, nu regăsim nicio rută către ''21.0.0.0/8'', spațiul de adrese al AS-ului preconfigurat). | ||
+ | |||
+ | <code> | ||
+ | PARI_router# show ip route | ||
+ | Codes: K - kernel route, C - connected, S - static, R - RIP, | ||
+ | O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, | ||
+ | T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, | ||
+ | F - PBR, f - OpenFabric, | ||
+ | > - selected route, * - FIB route, q - queued, r - rejected, b - backup | ||
+ | |||
+ | S>* 2.0.0.0/8 [1/0] unreachable (blackhole), weight 1, 02:06:23 | ||
+ | O 2.0.1.0/24 [110/1] is directly connected, port_LOND, weight 1, 02:06:23 | ||
+ | C>* 2.0.1.0/24 is directly connected, port_LOND, 02:06:23 | ||
+ | O>* 2.0.2.0/24 [110/2] via 2.0.1.1, port_LOND, weight 1, 02:05:33 | ||
+ | O 2.0.3.0/24 [110/1] is directly connected, port_BUCH, weight 1, 02:06:22 | ||
+ | C>* 2.0.3.0/24 is directly connected, port_BUCH, 02:06:23 | ||
+ | O>* 2.0.4.0/24 [110/2] via 2.0.3.2, port_BUCH, weight 1, 02:05:31 | ||
+ | O 2.0.198.0/24 [110/10] is directly connected, matrix_2, weight 1, 02:06:25 | ||
+ | C>* 2.0.198.0/24 is directly connected, matrix_2, 02:07:47 | ||
+ | O>* 2.0.199.0/24 [110/11] via 2.0.3.2, port_BUCH, weight 1, 02:05:31 | ||
+ | O>* 2.104.0.0/24 [110/11] via 2.0.3.2, port_BUCH, weight 1, 02:05:31 | ||
+ | O>* 2.151.0.1/32 [110/1] via 2.0.1.1, port_LOND, weight 1, 02:05:33 | ||
+ | C>* 2.152.0.0/24 is directly connected, lo, 02:06:24 | ||
+ | O>* 2.152.0.1/32 [110/0] is directly connected, lo, weight 1, 02:06:23 | ||
+ | O>* 2.153.0.1/32 [110/2] via 2.0.1.1, port_LOND, weight 1, 02:05:23 | ||
+ | * via 2.0.3.2, port_BUCH, weight 1, 02:05:23 | ||
+ | O>* 2.154.0.1/32 [110/1] via 2.0.3.2, port_BUCH, weight 1, 02:05:31 | ||
+ | C>* 158.2.0.0/16 is directly connected, ssh, 02:07:58 | ||
+ | O>* 198.0.0.0/24 [110/11] via 2.0.1.1, port_LOND, weight 1, 02:05:33 | ||
+ | PARI_router# | ||
+ | </code> | ||
+ | |||
+ | Acest lucru este cauzat de faptul că ruta învățată de router-ul ''LOND'' are ca ''next-hop'' adresa IP a IXP-ului (''180.22.0.22''), însă router-ele interne nu au o rută către această rețea. Rutele primite de la ''LOND'' sunt "undeva în memoria router-ului", însă până când nu va avea o rută către ''next-hop'' ele nu vor fi în tabela de rutare. | ||
+ | |||
+ | Pe router-ul ''LOND'' putem folosi următoarea comandă pentru a propaga rutele, în iBGP, către router-ul ''PARI'', cu adresa IP a interfeței de loopback ca ''next-hop''. | ||
+ | <code> | ||
+ | LOND_router# configure terminal | ||
+ | LOND_router(config)# router bgp <X> | ||
+ | LOND_router(config-router)# address-family ipv4 unicast | ||
+ | LOND_router(config-router-af)# neighbor <X>.152.0.1 next-hop-self | ||
+ | LOND_router(config-router-af)# | ||
+ | </code> | ||
+ | |||
+ | Verificați iar tabela de rutare de pe router-ul ''PARI'' și incercați să dați ping în router-ul ''LOND'' din AS 21 (''ping 21.0.2.2''). | ||
- | {{ :rl:labs:12:contents:static-public-ip.png?400 |}} |