This shows you the differences between two versions of the page.
rl:labs:12:contents:02 [2020/10/14 12:52] iulia.florea [02. [5p] Aflare informații despre adresa IP publică] |
rl:labs:12:contents:02 [2024/01/06 19:23] (current) vlad_iulius.nastase [02. [20p] Configurare eBGP] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 02. [5p] 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ă. | + | 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%%''. |
- | **Whois** este un protocol cerere răspuns care este folosit pentru a interogra informații despre resursele internetului, precum: numele de domeniu, subnet-uri de adrese IP sau sistemul autonom din care face parte. Vom folosi utilitarul **whois** pentru a afla acest informații despre adresa aflată la exercițiul anterior:<code bash> | + | Pentru a activa și configura procesul de BGP al router-ului vom folosi comanda de mai jos: |
- | root@mjolnir: whois <ip_ex_1> | + | <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> |