This shows you the differences between two versions of the page.
rl:labs:12:contents:02 [2024/01/04 02:24] viorel.mocanu [02. [10p] VPC Networks] |
rl:labs:12:contents:02 [2024/01/06 19:23] (current) vlad_iulius.nastase [02. [20p] Configurare eBGP] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 02. [10p] VPC Networks ====== | + | ====== 02. [20p] Configurare eBGP ====== |
- | După accesarea proiectului, proiectul va avea atașat un **VPC network** numit default, care are alocat subnet-urile implicite pentru fiecare regiune. | + | 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%%''. |
- | {{ :rl:labs:12:contents:vpc-network.png?700 |}} | + | 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> | ||
+ | unde ''%%<X>%%'' este numărul grupei/AS-ului. Observăm schimbarea prompt-ului, sugerând modul de configurare actual. | ||
- | <note tip>Care era subrețeua folosită de Google Cloud pentru range-urile predefinite din fiecare regiune ? </note> | + | Î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: |
- | Avem nevoie de cel puțin un VPC custom pe care îl putem crea apăsând pe butonul **CREATE VPC NETWORK** aflat sub câmpul de căutare. | + | <code> |
- | În pagina de creare a unui nou VPC trebuie să completăm următoarele detalii: | + | LOND_router# show interface brief |
- | - Numele VPC-ului (doar caractere mici, cifre și cratimă sunt acceptate) și opțional o descriere - student$X$-vpc-<name> (student1-vpc-frontend) | + | Interface Status VRF Addresses |
- | - Numele unui subnet definit în interiorul acestui VPC (aceleași limitări ca mai sus la caracterele acceptate) - student$X$-frontend (student1-frontend) | + | --------- ------ --- --------- |
- | - Regiunea (este important să cream toate subnet-urile din acest laborator în aceeași regiune, preferabil **europe-west1**) | + | dns_<X> up default 198.0.0.<X>/24 |
- | - Range-ul de adrese IP din subnet - 10.$X$.0.0/24 (unde $X$ e id-ul de student ) | + | ixp_22 up default 180.22.0.<X>/24 |
- | - Regulile de firewall aplicate pe VPC (nu uitați să bifați regulile de permitere **SSH** cel puțin). Vom edita regulile mai târziu pentru fiecare VPC. | + | 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> | ||
+ | <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 | ||
- | {{ :rl:labs:12:contents:create-vpc-network.png?500 |}} | + | 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> |