This shows you the differences between two versions of the page.
rl:labs:12:contents:02 [2018/01/09 08:43] octavian.grigorescu |
rl:labs:12:contents:02 [2024/01/06 19:23] (current) vlad_iulius.nastase [02. [20p] Configurare eBGP] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 02. [10p] Aflare informații despre adresa IP publică ==== | + | ====== 02. [20p] Configurare eBGP ====== |
- | Mai departe vrem să aflăm din ce subnet facem parte, cine se ocupă de acesta, al cărei organizații aparține și din ce țară se află. Whois este un protocol cerere răspuns care este folosit pentru a interogra informații despre resursele internetului cum ar fi numele de domeniu, subnet-uri de adrese IP sau un sistem autonom. Vom folosi utilitarul whois pentru a afla acest informații despre adresa aflată la exercițiul anterior:<code bash> | + | Vom configura eBGP pe router-ul LOND. Vom exporta către IXP rețeaua noastră (''%%X.0.0.0/8%%'') și vom importa tot ce primim de la IXP. IXP-ul este configurat astfel încât să exporte toate rutele primite de la AS-urile vecine. Pentru conectarea la IXP vom folosi rețeaua ''%%180.22.0.0/24%%''. |
- | root@mjolnir: whois <ip_ex_1> | + | |
+ | Pentru a activa și configura procesul de BGP al router-ului vom folosi comanda de mai jos: | ||
+ | <code> | ||
+ | LOND_router# configure terminal | ||
+ | LOND_router(config)# router bgp <X> | ||
+ | LOND_router(config-router)# | ||
</code> | </code> | ||
+ | unde ''%%<X>%%'' este numărul grupei/AS-ului. Observăm schimbarea prompt-ului, sugerând modul de configurare actual. | ||
- | Ce informații putem observa în output-ul obținut în urma rulării acestei comenzi ? | + | În general, avem opțiunea să configurăm un ''%%router-id%%''. Acest lucru poate influența criteriile de alegere a rutei în BGP. Pentru moment, nu e neapărat necesar, dar îl vom seta ca fiind IP-ul către IXP. Pe interfața ''%%ixp_22%%'' (către IXP) a router-ului ''%%LOND%%'' este deja configurată o adresă IP. Pentru a afla adresele IP de pe interfețe putem folosi comanda de mai jos: |
- | Care este subnet-ul din care face parte adresa noastră publică ? | + | |
- | <solution -hidden> | + | <code> |
- | <code bash> | + | LOND_router# show interface brief |
- | root@host:~# whois <adresa_ip_publica> | + | Interface Status VRF Addresses |
- | [...] | + | --------- ------ --- --------- |
- | 141.85.0.0/16 | + | dns_<X> up default 198.0.0.<X>/24 |
- | [...] | + | ixp_22 up default 180.22.0.<X>/24 |
+ | lo up default <X>.151.0.1/24 | ||
+ | port_BERL up default <X>.0.2.2/24 | ||
+ | port_PARI up default <X>.0.1.1/24 | ||
+ | ssh up default 158.<X>.10.1/16 | ||
+ | |||
+ | LOND_router# | ||
</code> | </code> | ||
- | </solution> | + | <note tip> |
+ | Pentru a folosi comenzi de tipul ''%%show%%'' fără a părăsi modul de configurare actual, acestea pot fi prefixate cu ''%%do%%''. | ||
+ | <code> | ||
+ | LOND_router(config-router)# do show interface brief | ||
+ | Interface Status VRF Addresses | ||
+ | --------- ------ --- --------- | ||
+ | dns_<X> up default 198.0.0.<X>/24 | ||
+ | ixp_22 up default 180.22.0.<X>/24 | ||
+ | lo up default <X>.151.0.1/24 | ||
+ | port_BERL up default <X>.0.2.2/24 | ||
+ | port_PARI up default <X>.0.1.1/24 | ||
+ | ssh up default 158.<X>.10.1/16 | ||
+ | |||
+ | LOND_router(config-router)# | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | Pentru a seta ''%%router-id%%''-ul, vom folosi comanda ''%%bgp router-id A.B.C.D%%'', astfel: | ||
+ | <code> | ||
+ | LOND_router(config-router)# bgp router-id 180.22.0.<X> | ||
+ | LOND_router(config-router)# | ||
+ | </code> | ||
+ | |||
+ | În continuare, va trebui să configurăm vecinul la care ne conectăm (IXP-ul). **Urmăriți [[https://docs.frrouting.org/en/latest/bgp.html#clicmd-neighbor-PEER-remote-as-ASN|documentația comenzii]] și configurați IXP-ul ca peer**. | ||
+ | <note tip> | ||
+ | **Hint** | ||
+ | |||
+ | IXP-ul este în AS-ul 22 și are adresa IP ''%%180.22.0.22%%''. | ||
+ | </note> | ||
+ | |||
+ | În final, va trebui să configurăm rețeaua pe care vrem să o exportăm. **Urmăriți [[https://docs.frrouting.org/en/latest/bgp.html#clicmd-network-A.B.C.D-M|documentația comenzii]] pentru a exporta rețeaua ''%%<X>.0.0.0/8%%''**. | ||
+ | |||
+ | Putem verifica starea procesului de BGP astfel: | ||
+ | <code> | ||
+ | LOND_router(config-router)# do show bgp summary | ||
+ | |||
+ | IPv4 Unicast Summary: | ||
+ | BGP router identifier 180.22.0.1, local AS number 1 vrf-id 0 | ||
+ | BGP table version 1 | ||
+ | RIB entries 1, using 192 bytes of memory | ||
+ | Peers 1, using 14 KiB of memory | ||
+ | |||
+ | Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt | ||
+ | 180.22.0.22 4 22 6 5 0 0 0 00:02:51 (Policy) (Policy) | ||
+ | |||
+ | Total number of neighbors 1 | ||
+ | LOND_router(config-router)# | ||
+ | </code> | ||
+ | <note important> | ||
+ | Putem observa în dreptul coloanelor ''%%State/PfxRcd%%'' și ''%%PxfSnt%%'' textul ''%%(Policy)%%''. Acest lucru înseamnă că nu exportăm și nu importăm rute datorită lipsei filtrelor. **Urmăriți [[https://docs.frrouting.org/en/latest/bgp.html#clicmd-bgp-ebgp-requires-policy|documentația]] pentru a rezolva problema**. | ||
+ | |||
+ | **Hint** | ||
+ | |||
+ | Pentru a anula efectul unei comenzi o putem prefixa cu ''%%no %%''. | ||
+ | |||
+ | Pentru a reporni procesul de BGP putem folosi următoarea comandă: | ||
+ | <code> | ||
+ | LOND_router# clear bgp * | ||
+ | LOND_router# | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | Verificați iar starea procesului BGP. | ||
+ | <code> | ||
+ | LOND_router# show bgp summary | ||
+ | |||
+ | IPv4 Unicast Summary: | ||
+ | BGP router identifier 180.22.0.1, local AS number 1 vrf-id 0 | ||
+ | BGP table version 2 | ||
+ | RIB entries 3, using 576 bytes of memory | ||
+ | Peers 1, using 14 KiB of memory | ||
+ | |||
+ | Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt | ||
+ | 180.22.0.22 4 22 20 23 0 0 0 00:01:58 1 2 | ||
+ | |||
+ | Total number of neighbors 1 | ||
+ | LOND_router# | ||
+ | </code> | ||
+ | Verificați conectivitatea de pe router-ul ''%%LOND%%'' către un IP din AS 21 (este preconfigurat), sau către unul din IP-urile de pe router-ul ''%%LOND%%'' din AS-urile colegilor. | ||
+ | <code> | ||
+ | LOND_router# ping 21.0.2.2 | ||
+ | PING 21.0.2.2 (21.0.2.2) 56(84) bytes of data. | ||
+ | 64 bytes from 21.0.2.2: icmp_seq=1 ttl=64 time=10.3 ms | ||
+ | 64 bytes from 21.0.2.2: icmp_seq=2 ttl=64 time=4.14 ms | ||
+ | 64 bytes from 21.0.2.2: icmp_seq=3 ttl=64 time=4.13 ms | ||
+ | ^C | ||
+ | --- 21.0.2.2 ping statistics --- | ||
+ | 3 packets transmitted, 3 received, 0% packet loss, time 2003ms | ||
+ | rtt min/avg/max/mdev = 4.132/6.202/10.332/2.920 ms | ||
+ | LOND_router# | ||
+ | </code> | ||
+ | |||
+ | Afișați tabela de rutare și observați noua intrare obținută prin BGP. | ||
+ | <code> | ||
+ | LOND_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 | ||
+ | |||
+ | <...> | ||
+ | B>* 21.0.0.0/8 [20/0] via 180.22.0.21, ixp_22, weight 1, 00:05:57 | ||
+ | <...> | ||
+ | LOND_router# | ||
+ | </code> | ||
+ | |||
+ | <hidden> | ||
+ | Pentru AS 2 | ||
+ | <code> | ||
+ | root@g2-proxy ~> ./goto.sh LOND router | ||
+ | Warning: Permanently added '158.2.10.1' (ECDSA) to the list of known hosts. | ||
+ | |||
+ | Hello, this is FRRouting (version 7.5.1). | ||
+ | Copyright 1996-2005 Kunihiro Ishiguro, et al. | ||
+ | |||
+ | LOND_router# configure terminal | ||
+ | LOND_router(config)# router bgp 2 | ||
+ | LOND_router(config-router)# bgp router-id 180.22.0.2 | ||
+ | LOND_router(config-router)# no bgp ebgp-requires-policy | ||
+ | LOND_router(config-router)# neighbor 180.22.0.22 remote-as 22 | ||
+ | LOND_router(config-router)# address-family ipv4 unicast | ||
+ | LOND_router(config-router-af)# network 2.0.0.0/8 | ||
+ | LOND_router(config-router-af)# neighbor 180.22.0.22 activate | ||
+ | LOND_router(config-router-af)# exit-address-family | ||
+ | LOND_router(config-router)# exit | ||
+ | LOND_router(config)# exit | ||
+ | LOND_router# show bgp sum | ||
+ | |||
+ | IPv4 Unicast Summary: | ||
+ | BGP router identifier 180.22.0.2, local AS number 2 vrf-id 0 | ||
+ | BGP table version 2 | ||
+ | RIB entries 3, using 576 bytes of memory | ||
+ | Peers 1, using 14 KiB of memory | ||
+ | |||
+ | Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt | ||
+ | 180.22.0.22 4 22 5 5 0 0 0 00:00:33 2 2 | ||
+ | |||
+ | Total number of neighbors 1 | ||
+ | LOND_router# | ||
+ | </code> | ||
+ | Comanda ''%%neighbor 180.22.0.2 activate%%'' e opțională by default dacă folosim ''%%address-family ipv4 unicast%%''. | ||
+ | |||
+ | **În textul laboratorului trebuie să dea ''%%no bgp ebgp-requires-policy%%'' după ce s-a stabilit conexiunea. După comanda asta trebuie restabilită conexiunea cu ''%%clear bgp *%%'' în afara modului de config.** | ||
+ | |||
+ | </hidden> |