This shows you the differences between two versions of the page.
pr:labs:07 [2019/09/16 13:49] octavian.grigorescu [Cerinţe] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ~~SHOWSOLUTION~~ | ||
- | ===== Laboratorul 07. BGP (1) ===== | ||
- | |||
- | ==== Motivație ==== | ||
- | |||
- | Pentru conectarea noii rețele la Internet se vor folosi 2 provideri (SpiderMan și IronMan). Cum angajații celor 2 ISP-uri nu au absolvit cursul de PR, apar probleme în configurarea corectă a BGP. Vă oferiți să ajutați providerii cu configurarea router-elor lor de edge (pentru o sumă rezonabilă, bineînțeles). | ||
- | |||
- | Configurațiile inițiale (interfețe, adresare IP) sunt deja realizate pe echipamente. De asemenea, pe fiecare router este configurată interfața Lo0, cu IP 150.0.x.x/24. NU modificați setările interfețelor dacă laboratorul nu vă cere explicit acest lucru! | ||
- | |||
- | ==== Topologie ==== | ||
- | |||
- | {{:pr:laboratoare:7_bgp_topologie.png?700|}} | ||
- | ==== Cerinţe ==== | ||
- | |||
- | === Setup === | ||
- | <note important> Descărcați configurațiile inițiale de {{:pr:labs:7_bgp_initial_configs.zip|aici}}</note> | ||
- | |||
- | === Exercitii === | ||
- | |||
- | ** 1. ** [10p] Configurați OSPF area 0 pentru tot sistemul autonom 100 (CaptainAmerica, Drax și Hulk). Introduceți în OSPF și interfețele de loopback de pe CaptainAmerica și Hulk. | ||
- | |||
- | <solution hidden> | ||
- | Pe toate: | ||
- | <code> | ||
- | router ospf 1 | ||
- | </code> | ||
- | |||
- | Pe interfețele dorite: | ||
- | <code> | ||
- | ip ospf 1 area 0 | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | ** 2. ** [10p] Configurați adiacențe eBGP între SpiderMan și CaptainAmerica și între IronMan și Hulk. Folosiți adresele IP ale interfețelor direct conectate. | ||
- | |||
- | <solution hidden> | ||
- | Pe SpiderMan: | ||
- | <code> | ||
- | router bgp 200 | ||
- | neighbor 69.63.186.38 remote-as 100 | ||
- | </code> | ||
- | |||
- | Pe CaptainAmerica: | ||
- | <code> | ||
- | router bgp 100 | ||
- | neighbor 69.63.186.37 remote-as 200 | ||
- | </code> | ||
- | |||
- | Similar pe IronMan și Hulk. | ||
- | </solution> | ||
- | |||
- | ** 3. ** [10p] Configurați adiacență iBGP între CaptainAmerica și Hulk. Folosiți interfețele de loopback pentru stabilirea adiacențelor. Verificați tabelele BGP de pe cele 4 rutere. | ||
- | |||
- | <solution hidden> | ||
- | <code> | ||
- | CaptainAmerica(config)#router bgp 100 | ||
- | CaptainAmerica(config-router)#neighbor 150.0.3.3 remote-as 100 | ||
- | CaptainAmerica(config-router)#neighbor 150.0.3.3 update-source lo0 | ||
- | |||
- | Hulk(config)#router bgp 100 | ||
- | Hulk(config-router)#neighbor 150.0.1.1 remote-as 100 | ||
- | Hulk(config-router)#neighbor 150.0.1.1 update-source l0 | ||
- | </code> | ||
- | |||
- | Nu ar trebui să apară nimic în tabelele de rutare. | ||
- | </solution> | ||
- | |||
- | ** 4. ** [10p] Propagați interfața Lo0 de pe SpiderMan în BGP cu originea internă (i). Propagați doar interfața Lo0 de pe IronMan în BGP cu originea necunoscută (?). Verificați propagarea corectă a măștii. | ||
- | |||
- | <solution hidden> | ||
- | |||
- | <code> | ||
- | SpiderMan(config)#router bgp 200 | ||
- | SpiderMan(config-router)#network 150.0.5.0 mask 255.255.255.0 | ||
- | |||
- | IronMan(config)#ip access-list standard ACL_BGP_RDST | ||
- | IronMan(config-std-nacl)#permit 150.0.4.4 0.0.255.255 | ||
- | IronMan(config-std-nacl)#exit | ||
- | IronMan(config)#route-map BGP_RDST | ||
- | IronMan(config-route-map)#match ip add ACL_BGP_RDST | ||
- | IronMan(config-route-map)#exit | ||
- | IronMan(config)#router bgp 300 | ||
- | IronMan(config-router)#redistribute connected route-map BGP_RDST | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | ** 5. ** [10p] Configurați protocolul BGP astfel încât Lo0 de pe IronMan să apară în tabela de rutare de pe CaptainAmerica , respectiv Lo0 de pe SpiderMan să apară în tabela de rutare de pe Hulk. | ||
- | |||
- | <solution hidden> | ||
- | |||
- | <code> | ||
- | CaptainAmerica(config)#router bgp 100 | ||
- | CaptainAmerica(config-router)#neighbor 150.0.3.3 next-hop-self | ||
- | |||
- | Hulk(config)#router bgp 100 | ||
- | Hulk(config-router)#neighbor 150.0.1.1 next-hop-self | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | ** 6. ** [5p] Din cauza sincronizării nu există conectivitate între SpiderMan și IronMan (de pe interfețele de loopback). Configurați o adiacență iBGP între Drax și Hulk folosind adresele de pe interfața direct conectată. | ||
- | |||
- | <solution hidden> | ||
- | |||
- | <code> | ||
- | Hulk(config)#router bgp 100 | ||
- | Hulk(config-router)#neighbor 172.4.0.1 remote-as 100 | ||
- | |||
- | Drax(config)#router bgp 100 | ||
- | Drax(config-router)#neighbor 172.4.0.2 remote-as 100 | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | ** 7. ** [15p] Verificați conectivitatea dintre SpiderMan și IronMan. Funcționează? Fără a crea noi adiacențe rezolvați acestă problemă. | ||
- | |||
- | <solution -hidden> | ||
- | |||
- | <code> | ||
- | Hulk(config)#router bgp 100 | ||
- | Hulk(config-router)#neighbor 172.4.0.1 route-reflector-client | ||
- | Hulk(config-router)#neighbor 150.0.1.1 route-reflector-client | ||
- | Hulk(config-router)# neighbor 172.4.0.1 next-hop-self | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | |||
- | ** 8. ** [5p] Adăugați 4 interfețe de loopback din spațiul 192.180.0.0/16 pe ruterul Drax. Propagați aceste interfețe în BGP având originea internă (i). Verificați conectivitatea cu aceste interfețe de pe SpiderMan și IronMan. | ||
- | |||
- | <solution hidden> | ||
- | |||
- | <code> | ||
- | Drax(config)#int l0 | ||
- | Drax(config-if)#ip add 192.180.0.1 255.255.255.0 | ||
- | Drax(config-if)#int l1 | ||
- | Drax(config-if)#ip add 192.180.1.1 255.255.255.0 | ||
- | Drax(config-if)#int l2 | ||
- | Drax(config-if)#ip add 192.180.2.1 255.255.255.0 | ||
- | Drax(config-if)#int l3 | ||
- | Drax(config-if)#ip add 192.180.3.1 255.255.255.0 | ||
- | |||
- | Drax(config)#router bgp 100 | ||
- | Drax(config-router)#network 192.180.0.0 mask 255.255.255.0 | ||
- | Drax(config-router)#network 192.180.1.0 mask 255.255.255.0 | ||
- | Drax(config-router)#network 192.180.2.0 mask 255.255.255.0 | ||
- | Drax(config-router)#network 192.180.3.0 mask 255.255.255.0 | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | ** 9. ** [10p] Pe ruterele CaptainAmerica și Hulk filtrați actualizările trimise folosind un route-map (neighbor IP route-map NUME), astfel încât doar primele două interfețe să fie promovate către vecinii eBGP. Pentru a vedea modificările resetați conexiunea eBGP (clear ip bgp NEIGHBOR). | ||
- | |||
- | <solution hidden> | ||
- | |||
- | <code> | ||
- | CaptainAmerica(config)#ip access-list standard ACL_BGP_SpiderMan_OUT | ||
- | CaptainAmerica(config-std-nacl)#permit 192.180.0.0 0.0.0.255 | ||
- | CaptainAmerica(config-std-nacl)#permit 192.180.1.0 0.0.0.255 | ||
- | CaptainAmerica(config-std-nacl)#exit | ||
- | CaptainAmerica(config)#route-map BGP_SpiderMan_OUT | ||
- | CaptainAmerica(config-route-map)#match ip add ACL_BGP_SpiderMan_OUT | ||
- | CaptainAmerica(config-route-map)#exit | ||
- | CaptainAmerica(config)#router bgp 100 | ||
- | CaptainAmerica(config-router)#neighbor 69.63.186.37 route-map BGP_SpiderMan_OUT out | ||
- | CaptainAmerica(config)#ip access-list standard ACL_BGP_SpiderMan_OUT | ||
- | CaptainAmerica(config-std-nacl)#25 permit 150.0.4.0 0.0.0.255 | ||
- | </code> | ||
- | |||
- | Pe Hulk asemănător. | ||
- | </solution> | ||
- | |||
- | |||
- | ** 10. ** [5p] Verificați conectivitatea între SpiderMan și IronMan (interfețele de loopback). La sfârșitul acestui exercițiu trebuie să aveți conectivitate. | ||
- | |||
- | <solution hidden> | ||
- | |||
- | <code> | ||
- | SpiderMan# ping 150.0.4.4 source lo0 | ||
- | </code> | ||
- | </solution> | ||
- | |||
- | |||
- | ** 11. ** [10p] Creați două interfețe de loopback pe SpiderMan și IronMan (loopback1) folosind adresele 192.168.0.1/24, respectiv 192.168.1.1/24. Configurați o adiacență eBGP între SpiderMan și IronMan, folosind cele două interfețe create. Pentru conectivitate folosiți rute statice. | ||
- | |||
- | <solution hidden> | ||
- | |||
- | <code> | ||
- | SpiderMan(config)#int l1 | ||
- | SpiderMan(config-if)#ip add 192.168.0.1 255.255.255.0 | ||
- | SpiderMan(config-if)#exit | ||
- | SpiderMan(config)#ip route 192.168.1.0 255.255.255.0 74.125.39.102 | ||
- | SpiderMan(config)#ip route 192.168.1.0 255.255.255.0 87.248.113.14 | ||
- | SpiderMan(config)#router bgp 200 | ||
- | SpiderMan(config-router)#neighbor 192.168.1.1 remote-as 300 | ||
- | SpiderMan(config-router)#neighbor 192.168.1.1 update-source l1 | ||
- | SpiderMan(config-router)#neighbor 192.168.1.1 ebgp-multihop 2 | ||
- | |||
- | IronMan(config)#int l1 | ||
- | IronMan(config-if)#ip add 192.168.1.1 255.255.255.0 | ||
- | IronMan(config-if)#exit | ||
- | IronMan(config)#ip route 192.168.0.0 255.255.255.0 74.125.39.101 | ||
- | IronMan(config)#ip route 192.168.0.0 255.255.255.0 87.248.113.13 | ||
- | IronMan(config)#router bgp 300 | ||
- | IronMan(config-router)#neighbor 192.168.0.1 remote-as 200 | ||
- | IronMan(config-router)#neighbor 192.168.0.1 update-source l1 | ||
- | IronMan(config-router)#neighbor 192.168.0.1 ebgp-multihop 2 | ||
- | </code> | ||
- | </solution> |