BGP (Border Gateway Protocol) su MikroTik
Il protocollo BGP, Border Gateway Protocol è un protocollo di routing dinamico usato perconnettere tra loro più router che appartengono a “sistemi autonomi” (AS) diversi. È quindi un protocollo di routing inter-AS, classificato come protocollo di “Exterior Gateway”, ovvero utilizzato per inviare le proprie route a organizzazioni esterne (e per ricevere le route di organizzazioni esterne).
Il BGP è il protocollo di routing per antonomasia, sul quale è basato il funzionamento di internet.
Di seguito un esempio base di configurazione del BGP su RouterOS tramite CLI, è possibile configurare tutto anche tramite Winbox/Webfig.
Ipotizziamo che il nostro numero di AS sia AS12345, l’indirizzo ip è 172.16.255.1, our public IP range received by RIPE or other similar organization is 201.201.240.0/21.
L’ AS number del nostro peering ISP1 is AS11111, il suo indirizzo di peering è 172.16.255.2. Non useremo una password MD5 in questo esempio.
Di seguito l’immagine con lo schema dell’esempio :
Configurazione del progcesso globale del BGP
/routing bgp instance set default as=12345 redistribute-static=no redistribute-connected=no
/routing bgp network add network=201.201.240.0/21 synchronize=no
Setting first BGP peer ISP1
/routing bgp peer add remote-address=192.168.255.2 remote-as=11111 instance=default
out-filter=AS11111-bgp-out in-filter=AS11111-bgp-in
Filters BGP-out – permetteremo solo l’annuncio delle nostre reti. Se il processo BGP proverà ad annunciare altre rotte, queste saranno bloccate dal filtro.
/routing filter add action=accept chain=AS11111-bgp-out prefix=201.201.240.0/21
/routing filter add action=discard chain=AS11111-bgp-out
Nel nostro esempio, ISP1 è un link di backup per cui dovremo creare una regola particolare nella chain di filter-out. Per ottenere questo risultato faremo si che la path verso ISP1 sia più lunga che quella tramite ISP2.
Come risultato finale tutto il traffico in ingrasso arriverà tramite ISP2 mentre ISP1 rimarrà come backup nel caso che ISP2 abbia problemi.
Filters BGP-in – Non vogliamo ricevere da altri peer reti “dannose”, come reti private o bogons e tanto meno le nostre networks.
/routing filter add action=discard chain=AS11111-bgp-in prefix=10.0.0.0/8
/routing filter add action=discard chain=AS11111-bgp-in prefix=169.254.0.0/16
/routing filter add action=discard chain=AS11111-bgp-in prefix=192.168.0.0/16
/routing filter add action=discard chain=AS11111-bgp-in prefix=172.16.0.0/12
/routing filter add action=discard chain=AS11111-bgp-in prefix=224.0.0.0/4
/routing filter add action=discard chain=AS11111-bgp-in prefix=240.0.0.0/4
/routing filter add action=discard chain=AS11111-bgp-in prefix=127.0.0.0/8
/routing filter add action=discard chain=AS11111-bgp-in prefix=201.201.240.0/21
/routing filter add action=accept chain=AS11111-bgp-in
Ora il nostro peer verso ISP1 dovrebbe essere UP.
Configuration of BGP peering with ISP2
/routing bgp peer add remote-address=172.16.255.6 remote-as=22222 instance=default
out-filter=AS22222-bgp-out in-filter=AS22222-bgp-in
Filter BGP-out – qui annunceremo solo le nostre reti. Notete che non c’è nessun AS-PATH prepend, in quanto ISP2 è il nostro link principale.
/routing filter add action=accept chain=AS22222-bgp-out prefix=201.201.240.0/21
/routing filter add action=discard chain=AS22222-bgp-out
Filter BGP-in – è come il filtro per ISP1.
/routing filter add action=discard chain=AS22222-bgp-in comment=”” disabled=no prefix=10.0.0.0/8
/routing filter add action=discard chain=AS22222-bgp-in comment=”” disabled=no prefix=169.254.0.0/16
/routing filter add action=discard chain=AS22222-bgp-in comment=”” disabled=no prefix=192.168.0.0/16
/routing filter add action=discard chain=AS22222-bgp-in comment=”” disabled=no prefix=172.16.0.0/12
/routing filter add action=discard chain=AS22222-bgp-in comment=”” disabled=no prefix=224.0.0.0/4
/routing filter add action=discard chain=AS22222-bgp-in comment=”” disabled=no prefix=240.0.0.0/4
/routing filter add action=discard chain=AS22222-bgp-in comment=”” disabled=no prefix=127.0.0.0/8
/routing filter add action=discard chain=AS22222-bgp-in comment=”” disabled=no prefix=201.201.240.0/21
Questo filtro dovrà avere un ulteriore entry per forzare l’uscita del nostro traffico tramite ISP2.