Se pare ca la partea cu un singur ASN puneam problema gresit:
Initial aveam asa pe vpn-hub spre vpn-gw-a:
route-map A permit 1 match origin igp set ip next-hop 192.168.168.1
route-map-ul era aplicat asa:
neighbor 192.168.168.2 route-map A out
Care teoretic ar fi trebuit sa schimbe next-hop din anunturi in ce i-am zis io mai sus.
Cu un hint de la gabim ca nu trebuie sa fac match pe nimic ci doar sa setez ip next-hop, asa ca am lasat doar varianta cu set ip next-hop. Dar tot fara noroc.
Ma mai scarpinai un pic si ajunsei la alta combinatie care se pare ca merge: pun route-map pe in pe gateway-uri si nu mai fac nimic pe vpn-hub, lucru care se pare ca merge. Plus bonus points ca setand next-hop ca peer-address ma doare la bachetzi cine e peer-ul, deci pot sa fac template.
route-map set-nh permit 1 set ip next-hop peer-address
Care se aplica asa:
neighbor 192.168.168.1 remote-as 4200000000 neighbor 192.168.168.1 route-map set-nh in
Iar pe vpn-hub arata in felul urmator:
neighbor 192.168.168.2 remote-as 4200000000 neighbor 192.168.168.2 route-reflector-client
Pentru confirmare ca functioneaza treaba:
vpn-gw-a# sh ip bgp 172.16.3.0/24 BGP routing table entry for 172.16.3.0/24 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer Local 192.168.168.1 (metric 1) from 192.168.168.1 (192.168.168.10) Origin IGP, metric 0, localpref 100, valid, internal, best Originator: 192.168.168.10, Cluster list: 192.168.168.9 Last update: Sat Mar 21 21:55:27 2015
zebra instaleaza ruta corect:
[root@vpn-gw-a ~]# ip r l 172.16.3.0/24 172.16.3.0/24 via 192.168.168.1 dev to-hub proto zebra
Ping:
[root@vpn-gw-a ~]# ping 172.16.3.1 -I172.16.1.1 -c3 PING 172.16.3.1 (172.16.3.1) from 172.16.1.1 : 56(84) bytes of data. 64 bytes from 172.16.3.1: icmp_seq=1 ttl=63 time=1.99 ms 64 bytes from 172.16.3.1: icmp_seq=2 ttl=63 time=1.37 ms 64 bytes from 172.16.3.1: icmp_seq=3 ttl=63 time=1.37 ms --- 172.16.3.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2006ms rtt min/avg/max/mdev = 1.376/1.582/1.993/0.290 ms
De asta imi place mie BGP-ul, ca poti sa-l violezi in cele mai oribile moduri (ca ce-am facut mai sus e viol cu perversiuni) si tot functioneaza bine :))
Pe vpn-hub pot sa pun un peer-group imens in care ii strang pe toti, iar pe gateway-uri peer-address. Asa iti vin ideile, facand stuff :)
Teoretic, ar fi mers route-map-ul si pe vpn-hub cum il pusesem inainte, insa se pare ca implementare de quagga nu face stuff cand pui route-map pe out. Dar bine ca merge pe in.
Asa ca pot folosi un singur ASN indiferent de cati neighbor-i am. Acum as putea sa-mi pun un pahar de vin ca am intuit ca se poate, doar ca a durat ceva pana m-am prins si cum.