marți, 20 iunie 2017

Solutie MPLS/VPN cu acces internet

Ma batea gandul sa scriu articolul acesta de ceva vreme, dar am ezitat pentru ca am simtit ca nu inteleg suficient de bine solutia. In prezent consider ca am ajuns la un nivel minim de intelegere, la care pot descrie o solutie MPLS/VPN in ansamblu si sa prezint configuratia minim necesara pentru ca aceasta sa functioneze.

In acest laborator mi-am propus sa configurez doua solutii MPLS/VPN pentru clientii A, respectiv B, iar pentru locatiile clientului A voi oferi si posibilitatea de a avea acces la internet.

Laboratorul poate fi descarcat de aici.

Topologia este urmatoarea:


Reteaua ISP-ului este formata din patru routere in Backbone-ul IP/MPLS si doua switchuri in reteaua de Acces.
Mai jos voi descrie pasii de urmat pentru construirea solutiei, punand accentul pe comenzile de configurare pentru Multi Protocol BGP si Route Leaking pentru clientul A, astfel incat sa putem furniza catre locatiile acestuia si serviciul de acces la Internet.

Primul pas in configurarea unei astfel de solutii il reprezinta realizarea conectivitatii IP intre routerele din Backbone. Am configurat interfetele si am folosit ca protocol de rutare OSPF.

Pasul doi il reprezinta activarea MPLS pe routerele din Backbone. Acest lucru presupune definirea unui interval de etichete MPLS pe care sa le foloseasca routerul, apoi activarea globala a procesului si in final activarea per interfata. Pentru o intelegere mai detaliata a ceea ce reprezinta tehnologia MPLS, va recomand sa cautati cursul video 'MPLS Fundamentals', realizat de Keith Barker pentru CBT Nuggets (great stuff).

Ex. configurare MPLS pe routerul P-1:
P-1(config)#mpls label range 200 299
P-1(config)#mpls ip
P-1(config)#interface fast 0/0
P-1(config-if)#mpls ip

La pasul trei vom ‘felia’ tabela de rutare, configurand VRF-urile clientilor. De asemenea, puteti gasi mai multe detalii despre ce reprezinta VRF-urile in cursul amintit mai sus, sau dintr-un articol pe care l-am postat cu ceva timp in urma si pe care il puteti gasi aici.

La pasul patru ajungem in sfarsit la partea distractiva si anume configurarea Multi Protocol BGP (MP-BGP).
Initial, vom realiza acest lucru intre PE-1 si PE-2, folosind doua interfete loopback pentru a forma relatia de vecinatate. Preferam sa facem acest lucru, deoarece doua routere din cadrul aceluiasi Sistem Autonom pot sa fie accesibile intre ele prin mai multe cai, iar daca am folosi pentru formarea vecinatatii subnetul configurat pe interfata fizica, in momentul in care aceasta are o problema iar subnetul nu mai e reachable, vom constata si caderea sesiunii BGP. Folosind o interfata virtuala Loopback, care are proprietatea de a fi up tot timpul, asiguram astfel redundanta.

Comenzi de configurare pe routerul PE-1:
PE-1#show run | sec bgp
router bgp 1234
neighbor 4.4.4.4 remote-as 1234
neighbor 4.4.4.4 update-source Loopback1

Comenzi de configurare pe routerul PE-2:
PE-1#show run | sec bgp
router bgp 1234
neighbor 1.1.1.1 remote-as 1234
neighbor 1.1.1.1 update-source Loopback4

Am pornit procesul BGP 1234 pe routerul PE-1 si am format vecinatatea cu routerul PE-2, folosind comanda neighbor si specificand folosirea pentru transmiterea update-urilor, interfata locala Loopback 1. Am procedat similar pe routerul PE-2 pentru a forma vecinatatea cu routerul PE-1.

‘Inima’ solutiei o reprezinta activarea MP-BGP, configurand pe routere posibilitatea ca acestea sa schimbe rute vpnv4.
Din modul de configurare al procesului BGP, vom accesa modul de configurare address-family vpnv4.

Activarea pe routerul PE-2:
address-family vpnv4
neighbor 4.4.4.4 activate
neighbor 4.4.4.4 send-community extended
neighbor 4.4.4.4 next-hop-self

Activarea pe routerul PE-1:
address-family vpnv4
neighbor 1.1.1.1 activate
neighbor 1.1.1.1 send-community extended
neighbor 1.1.1.1 next-hop-self

Restul de configuratie necesar pe routerele providerului il reprezinta configurarea de sesiuni BGP cu routerele din locatiile clientilor. Intre PE si CPE se pot configura si protocoale de tip IGP (EIGRP, OSPF), pentru transmiterea rutelor clientului catre ISP, iar apoi ISP-ul poate importa rutele in MP-BGP dintr-o locatie si le poate exporta intr-o alta locatie apartinand aceluiasi client. Solutia in care intre client si ISP se ridica o sesiune BGP este cel mai des intalnita.

Configurare sesiune BGP intre routerul PE-1 si CPE-urile clientilor A si B:
address-family ipv4 vrf Customer_A
neighbor 172.16.10.2 remote-as 10
neighbor 172.16.10.2 activate
neighbor 172.16.10.2 soft-reconfiguration inbound
exit-address-family

address-family ipv4 vrf Customer_B
neighbor 172.16.20.2 remote-as 20
neighbor 172.16.20.2 activate
neighbor 172.16.20.2 soft-reconfiguration inbound
exit-address-family

Configurare sesiune BGP intre routerul PE-2 si CPE-urile clientilor A si B:
address-family ipv4 vrf Customer_A
neighbor 172.16.11.2 remote-as 10
neighbor 172.16.11.2 activate
neighbor 172.16.11.2 soft-reconfiguration inbound
exit-address-family

address-family ipv4 vrf Customer_B
neighbor 172.16.22.2 remote-as 20
neighbor 172.16.22.2 activate
neighbor 172.16.22.2 soft-reconfiguration inbound
exit-address-family

In continuare voi prezenta configuratia necesara pe un CPE, iar pentru exemplificare voi folosi routerul B-CPE-1.
Clientul B a contractat doar servicii de tip VPN.
Interfetele Loopback de pe CPE-uri au fost configurate pentru a simula LAN-urile clientilor.

Configuratie B-CPE-1:
B-CPE-1#show run | sec bgp
router bgp 20
bgp log-neighbor-changes
neighbor 172.16.20.1 remote-as 1234
!
address-family ipv4
 redistribute connected
 neighbor 172.16.20.1 activate
exit-address-family

Clientul A este ceva mai pretentios si doreste pe langa serviciul VPN si serviciul de Internet Acces in toate locatiile.
Pentru a realiza acest lucru am configurat un nou subnet, vizibil in tabela globala, intre routerele PE-1 si A-CPE-1.
Pe PE-1 am configurat subnetul pe o noua sub-interfata spre client, iar pe A-CPE-1 l-am ridicat pe o noua interfata fizica.
Am configurat pe A-CPE-1 un ACL pe care l-am folosit pentru a face NAT, de pe clasa privata folosita in VPN pe noua clasa publica si am setat o ruta default cu next hop IP-ul configurat pe PE-1.
In acest scenariu am considerat HQ, locatia in care se afla routerul A-CPE-1, iar locatia in care se afla A-CPE-2, Branch.
Pentru a scoate catre internet traficul din Branch, am ridicat intre A-CPE-2 si A-CPE-1 un tunel, iar pe A-CPE-2 am configurat o ruta default prin interfata Tunnel. Pe A-CPE-2, sursa interfetei Tunnel este interfata catre ISP, iar destinatia este IP-ul public configurat pe A-CPE-1. Pe A-CPE-1 interfata Tunnel este configurata cu sursa IP-ul public si destinatie, IP-ul privat de pe interfata catre ISP de pe A-CPE-2. De asemenea interfata Tunnel de pe A-CPE-1 are configurata comanda ip nat inside pentru a se face NAT la traficul venit de pe A-CPE-2 si destinat catre Internet.

Configuratie A-CPE-1 (output partial):
interface Loopback0
ip address 192.168.1.1 255.255.255.0
ip nat inside
!
interface Tunnel0
ip address 192.168.100.2 255.255.255.0
ip nat inside
tunnel source 9.9.9.2
tunnel destination 172.16.11.2
!
interface FastEthernet0/0
ip address 172.16.10.2 255.255.255.0
ip nat inside
!
interface FastEthernet0/1
ip address 9.9.9.2 255.255.255.252
ip nat outside
!
ip nat inside source list NAT interface FastEthernet0/1 overload
ip route 0.0.0.0 0.0.0.0 FastEthernet0/1 9.9.9.1
!
ip access-list extended NAT
deny   ip 192.168.0.0 0.0.255.255 172.16.0.0 0.0.255.255
permit ip 192.168.0.0 0.0.255.255 any


Configuratie A-CPE-2 (output partial):
interface Loopback0
ip address 192.168.2.1 255.255.255.0
!
interface Tunnel0
ip address 192.168.100.1 255.255.255.0
tunnel source FastEthernet0/0
tunnel destination 9.9.9.2
!
interface FastEthernet0/0
ip address 172.16.11.2 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 Tunnel0



Sper ca ati gasit acest articol util si interesant.
Pana la urmatorul, toate bune! :)




Niciun comentariu :

Trimiteți un comentariu