Come funziona il BGP
Ogni rete è identificata da un ASN e annuncia ai vicini i prefissi IP che controlla. Due router BGP, detti peer, stabiliscono una sessione TCP sulla porta 179 e si scambiano messaggi di aggiornamento: quali prefissi sono raggiungibili e con quale AS path, cioè la lista degli ASN da attraversare.
BGP non sceglie il percorso più veloce ma quello che le politiche configurate preferiscono. Per questo è detto un protocollo path vector, guidato dalle politiche: tra più percorsi per lo stesso prefisso il router applica una sequenza di criteri (local preference, lunghezza dell'AS path, origin, MED e altri) per eleggere il migliore.
iBGP ed eBGP
| Tipo | Tra chi | Uso |
|---|---|---|
| eBGP | Router di ASN diversi | Sessioni con fornitori di transito, peer e Internet Exchange |
| iBGP | Router dello stesso ASN | Distribuire le rotte esterne all'interno della propria rete |
Con l'IP Transit si configura una sessione eBGP con il fornitore. Il tipo di sessione definisce anche cosa si accetta e cosa si annuncia: due decisioni che incidono direttamente su sicurezza e stabilità.
Gli strumenti per controllare il traffico
- Local preference: sceglie il percorso preferito in uscita tra più fornitori.
- AS path prepending: ripete il proprio ASN nell'AS path di un annuncio per renderlo meno attraente e spostare il traffico in ingresso verso un altro collegamento.
- Communities: etichette associate alle rotte che chiedono al fornitore un'azione, come limitare l'export a certe aree, modificare il prepending o attivare la mitigazione DDoS.
- Filtri di prefissi e di AS path: proteggono da annunci errati o malevoli.
Sulla rete C1V (AS212271) le communities supportate sono documentate pubblicamente su looking-glass.c1vhosting.it/bgp_communities.html e coprono controllo di export IPv4/IPv6, prepending e mitigazione DDoS. Il Looking Glass permette inoltre di verificare le rotte.
Cosa serve per usare BGP
- un ASN, proprio o sponsorizzato da un LIR (sponsorizzazione ASN);
- uno o più prefissi, almeno un /24 IPv4 o un /48 IPv6 per essere accettati dagli operatori (vedi affitto IPv4);
- oggetti route nel database RIPE e un contatto tecnico corretto;
- un fornitore di transito che accetti la sessione, come l'IP Transit;
- un router che supporti BGP e abbia memoria sufficiente per la tabella di routing.
Se ricevi solo una rotta di default dal fornitore, i requisiti hardware sono contenuti; se ricevi la tabella completa servono router con memoria e CPU adeguate.
Sicurezza e buone pratiche
Un annuncio sbagliato può rendere irraggiungibili reti altrui (route leak) o dirottarne il traffico (hijack). Alcune pratiche di base riducono il rischio:
- filtrare in ingresso e in uscita con prefix-list basate sugli oggetti IRR;
- creare ROA per la validazione delle origini RPKI e scartare gli annunci non validi;
- limitare il numero massimo di prefissi accettati per sessione;
- autenticare la sessione (TCP-AO o MD5) e monitorare lo stato dei peer;
- usare le communities di mitigazione DDoS in caso di attacco volumetrico.
Come sperimentare senza hardware
Per imparare BGP basta un router virtuale. Un VPS MikroTik CHR con RouterOS preinstallato permette di costruire laboratori BGP, VPN site-to-site e prove di filtri; leggi la guida a MikroTik RouterOS CHR. Per applicazioni reali, collega poi il router a un servizio di transit.
Come si configura una prima sessione BGP: i passi
Il flusso è simile con qualsiasi fornitore di transito. Questo è un percorso generale, da adattare al router e alle indicazioni del fornitore.
- Ottieni un ASN e almeno un prefisso (vedi cos'è un ASN) e crea gli oggetti route nel database RIPE.
- Concorda con il fornitore indirizzi della sessione, ASN remoto e cosa verrà annunciato e ricevuto: solo default, default più rotte parziali o tabella completa.
- Configura sul router l'istanza BGP, il peer e i filtri in ingresso e in uscita, prima di attivare la sessione.
- Attiva la sessione e verifica che passi allo stato Established, poi controlla di ricevere le rotte attese.
- Annuncia il tuo prefisso e controlla dall'esterno che sia visibile, ad esempio con un Looking Glass pubblico come quello della rete C1V.
- Imposta monitoraggio e avvisi sullo stato dei peer e sul numero di prefissi ricevuti.
Se la sessione non sale, le cause più frequenti sono ASN o indirizzo del vicino errati, filtri di rete che bloccano la porta TCP 179 e password della sessione non coincidenti.
Errori comuni nella configurazione BGP
- Nessun filtro in uscita: senza filtri si rischia di annunciare prefissi non propri o di far transitare traffico altrui (route leak).
- Nessun limite di prefissi: un vicino che invia troppe rotte può saturare la memoria del router; imposta un massimo per sessione.
- Oggetti route mancanti o errati: i fornitori spesso costruiscono i filtri sul database IRR, quindi un oggetto assente può far scartare il tuo annuncio.
- Prefissi troppo piccoli: molti operatori scartano IPv4 più specifici di un /24 e IPv6 più specifici di un /48.
- Prepending usato come unica leva: sposta il traffico solo in modo approssimativo; per un controllo più fine servono le communities del fornitore.
- Hardware sottodimensionato: ricevere la tabella completa su un router con poca memoria porta a instabilità.
Glossario essenziale del BGP
- ASN
- Numero che identifica un sistema autonomo, cioè una rete con una propria politica di routing.
- Prefisso
- Blocco di indirizzi IP annunciato in notazione CIDR, ad esempio un /24.
- Peer
- Router con cui si stabilisce una sessione BGP.
- AS path
- Elenco degli ASN attraversati per raggiungere un prefisso.
- Community
- Etichetta associata a una rotta che chiede un'azione al vicino.
- RPKI e ROA
- Sistema che attesta quale ASN è autorizzato a originare un prefisso.
- Route leak
- Annuncio propagato oltre l'ambito previsto, che devia traffico altrui.
- Transit
- Servizio con cui un fornitore ti dà accesso al resto di Internet; vedi cos'è l'IP Transit.
Per iniziare a sperimentare senza hardware puoi usare un VPS MikroTik CHR.
Pronto a passare alla pratica?
Supporto tecnico in italiano, infrastruttura a Pomezia (Roma), rete AS212271.
Scopri l'IP Transit con BGPDomande frequenti
Il BGP serve a un sito web normale?
No. Per un sito su hosting o VPS basta l'indirizzo IP del fornitore. Il BGP serve a chi gestisce una rete con ASN e prefissi propri.
Che porta usa il BGP?
Le sessioni BGP usano TCP sulla porta 179.
Che differenza c'è tra transit e peering in BGP?
Con il transit il fornitore ti dà accesso all'intera Internet; con il peering scambi rotte e traffico soltanto con una rete specifica, spesso presso un Internet Exchange.
Cos'è il prepending?
È l'aggiunta ripetuta del proprio ASN all'AS path di un annuncio per renderlo meno preferibile e indirizzare il traffico in ingresso verso altri collegamenti.
Posso provare il BGP con un VPS?
Sì: un VPS MikroTik CHR con RouterOS è un modo semplice per fare esperimenti con sessioni BGP, anche se per annunci reali servono ASN e prefissi propri.
Quanto tempo serve perché un annuncio BGP sia visibile ovunque?
Di solito la propagazione richiede da pochi minuti a qualche decina di minuti, ma dipende dai filtri dei singoli operatori. Un Looking Glass pubblico aiuta a verificare da quali punti il prefisso è già visibile.
Cosa significa che una sessione BGP è Established?
Significa che i due router hanno completato la negoziazione e stanno scambiando rotte. Se la sessione resta in altri stati, come Active o Idle, c'è un problema di raggiungibilità, di parametri o di filtri.
Serve IPv6 per usare il BGP?
No, il BGP funziona sia con IPv4 sia con IPv6, e le due famiglie di indirizzi si annunciano separatamente. Con IPv6 il prefisso minimo accettato di norma è un /48.