Internet non è una rete — è una rete di reti
Finora abbiamo studiato le reti come se fossero entità singole: una LAN, un campus, un’azienda. Ma Internet è qualcosa di più grande e radicalmente diverso nella struttura. Non esiste un’unica organizzazione che “possiede” Internet o che decide come instradare i suoi pacchetti.
Internet è un insieme di migliaia di reti indipendenti — chiamate Autonomous System (AS) — che si accordano volontariamente per scambiare traffico. Ogni AS è sotto il controllo amministrativo di un’unica organizzazione (un ISP, una grande azienda, un’università, una CDN) ed è responsabile del routing interno alle proprie reti.
Quanti AS esistono?
Ad oggi esistono oltre 100.000 AS attivi su Internet. Tra i più noti:
| AS | ASN | Organizzazione | Tipo |
|---|---|---|---|
AS15169 | 15169 | Google LLC | Content Provider / Tier-1 |
AS32934 | 32934 | Meta (Facebook) | Content Provider |
AS3320 | 3320 | Deutsche Telekom | Tier-1 / Carrier |
AS1299 | 1299 | Telia Company | Tier-1 / Transit |
AS137 | 137 | Università di New York | Education |
AS3269 | 3269 | Telecom Italia (TIM) | ISP nazionale |
IGP vs EGP: dentro e fuori l’AS
Il routing si divide in due mondi separati con esigenze completamente diverse:
La differenza non è solo tecnica: dentro un AS si ottimizza per la performance; tra AS si negozia basandosi su accordi commerciali e politici. Per questo un IGP come OSPF non va bene per Internet — non ha nessun meccanismo per dire “passo per questa rete solo se ho un contratto con loro”.
BGP — Border Gateway Protocol
BGP (definito nell’RFC 4271) è il protocollo che tiene unito Internet. È in funzione sin dal 1994 e gestisce la tabella di routing globale con oltre 900.000 prefissi IPv4 e altrettanti IPv6. Ogni pacchetto che attraversa più provider su Internet passa attraverso decisioni BGP.
Come funziona BGP: sessioni TCP e OPEN
BGP usa TCP porta 179 come trasporto — non UDP, non un suo protocollo proprietario. TCP garantisce affidabilità e ordinamento. Due router BGP stabiliscono una sessione (peering) dopo un handshake:
| Messaggio BGP | Funzione |
|---|---|
OPEN | Negozia versione BGP, ASN del mittente, Hold Timer, BGP Identifier |
UPDATE | Annuncia nuove route (prefissi + attributi) o ritira route non più valide |
KEEPALIVE | Mantiene viva la sessione (inviato ogni 1/3 dell’Hold Timer) |
NOTIFICATION | Segnala un errore e chiude la sessione |
eBGP vs iBGP
Esistono due varianti di BGP con comportamenti diversi:
| Caratteristica | eBGP (external) | iBGP (internal) |
|---|---|---|
| Dove opera | Tra router di AS diversi | Tra router dello stesso AS |
| TTL default | 1 (i due router devono essere directly connected) | 255 (può attraversare più hop interni) |
| AS_PATH | Aggiunge il proprio ASN al percorso | Non modifica AS_PATH |
| Next-hop | Cambia il next-hop con il proprio IP | Non modifica il next-hop (richiede IGP per risolverlo) |
| Topologia | Non richiede full mesh | Richiede full mesh o Route Reflector |
Gli Attributi BGP
BGP non usa una singola metrica come hop count o costo. Usa invece un insieme di attributi che descrivono ogni route annunciata. La selezione del percorso migliore si basa su una sequenza di regole che valutano questi attributi in ordine di priorità.
Attributi principali
| Attributo | Tipo | Descrizione |
|---|---|---|
| AS_PATH | Well-known mandatory | Lista degli AS attraversati. Path più corto (meno AS) = preferito. Usato anche per rilevare loop (se il proprio ASN è già nel path, scarta la route) |
| NEXT_HOP | Well-known mandatory | IP del prossimo router BGP da raggiungere per questa route |
| LOCAL_PREF | Well-known discretionary | Preferenza locale all’AS (solo iBGP). Valore più alto = preferito. Indica da quale exit point uscire dall’AS |
| MED (Multi-Exit Discriminator) | Optional non-transitive | Suggerimento all’AS adiacente su quale link preferire per entrare nel nostro AS. Valore più basso = preferito |
| ORIGIN | Well-known mandatory | Come è stata originata la route: IGP (i), EGP (e), incomplete (?) |
| COMMUNITY | Optional transitive | Tag applicabile a gruppi di route per applicare politiche. Es: no-export, blackhole |
Ordine di selezione del best path BGP (Cisco)
Peering, Transit e IXP
Per capire Internet bisogna capire gli accordi commerciali che stanno dietro ai link fisici.
Transit
Il cliente paga il provider per trasportare traffico verso tutta Internet. Il provider annuncia al cliente la full table BGP (tutte le rotte di Internet) e annuncia le reti del cliente al resto del mondo. È il modello classico ISP → cliente.
Peering
Due AS di dimensione simile si scambiano traffico gratuitamente e direttamente, ma solo verso le proprie reti interne (non fanno da transit per terzi). Il vantaggio è reciproco: si riduce la latenza e si abbassano i costi di transit.
Google (AS15169) e Cloudflare (AS13335) fanno peering. Se un utente di Fastweb scarica una pagina da Google, il traffico non passa da un provider di transit — va direttamente da Google a Fastweb all’IXP di Milano (MIX). Risultato: latenza minore, costo zero per entrambi.
Internet Exchange Point (IXP)
Un IXP (Internet Exchange Point) è un’infrastruttura fisica (tipicamente uno switch L2 ad alta capacità) dove decine o centinaia di AS si connettono per fare peering. È il punto di interconnessione fisica di Internet.
I principali IXP europei per volume di traffico:
| IXP | Città | Peak traffic (indicativo) |
|---|---|---|
| DE-CIX | Francoforte | > 14 Tbps |
| AMS-IX | Amsterdam | > 10 Tbps |
| LINX | Londra | > 7 Tbps |
| MIX | Milano | > 500 Gbps |
| NAMEX | Roma | > 200 Gbps |
Configurazione BGP su IOS
! Configurazione eBGP tra AS 65001 e AS 65002 ! Su Router A (AS 65001, IP 10.0.0.1) Router-A(config)# router bgp 65001 Router-A(config-router)# bgp router-id 1.1.1.1 Router-A(config-router)# neighbor 10.0.0.2 remote-as 65002 ! peer eBGP Router-A(config-router)# network 192.168.10.0 mask 255.255.255.0 ! annuncia questa rete Router-A(config-router)# network 192.168.20.0 mask 255.255.255.0 ! Verifica Router-A# show bgp summary ! stato dei peer BGP Router-A# show bgp ipv4 unicast ! tabella BGP completa Router-A# show bgp ipv4 unicast 10.0.0.0 ! dettaglio su un prefisso specifico
! Output show bgp summary (esempio) Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.0.0.2 4 65002 125 130 8 0 0 01:02:33 12
Incidenti BGP reali: quando il routing di Internet va storto
BGP è potente ma fragile: un singolo AS che annuncia route errate può deviare o bloccare traffico su scala globale. Non è teorico — succede.
Route leak
Una route leak avviene quando un AS annuncia a un provider route apprese da un altro provider — violando il principio del peering. Il traffico viene deviato attraverso l’AS “trapelante” che probabilmente non ha la banda o la capacità per gestirlo, causando congestione o blackout.
Pakistan Telecom (AS17557), cercando di bloccare YouTube localmente, annunciò per errore il prefisso di YouTube (208.65.153.0/24) a tutto Internet. Per circa 2 ore tutto il traffico mondiale verso YouTube fu dirottato verso il Pakistan, che non era in grado di gestirlo: YouTube fu irraggiungibile globalmente.
BGP hijacking
Il BGP hijacking è la versione intenzionale e malevola: un AS annuncia fraudolentemente prefissi IP di altri AS per intercettare il traffico (man-in-the-middle), causare disservizi, o reindirizzare verso infrastrutture controllate dall’attaccante.
BGP si basa sulla fiducia: chiunque abbia un ASN e una sessione BGP può teoricamente annunciare qualsiasi prefisso. Non esiste un meccanismo crittografico nativo di verifica dell’origine (BGP fu progettato negli anni ’80 quando Internet era una rete accademica di pochi router fidati). La soluzione moderna è RPKI (Resource Public Key Infrastructure): firma digitale dei prefissi da parte dei loro legittimi proprietari, con validazione da parte dei router BGP.
La gerarchia di Internet: Tier 1, 2 e 3
Gli AS non sono tutti uguali. Si distinguono in livelli (Tier) in base alla loro posizione nella gerarchia di transit:
| Livello | Descrizione | Esempi |
|---|---|---|
| Tier 1 | Provider globali con peering gratuito tra loro. Non pagano nessuno per il transit — raggiungono tutta Internet solo con accordi di peering. Hanno backbone intercontinentali propri | AT&T, NTT, Telia, Level3/Lumen, GTT |
| Tier 2 | Provider regionali o nazionali. Fanno peering con altri Tier 2 ma pagano transit ai Tier 1 per raggiungere tutto Internet | TIM, Vodafone Italia, OVH, Fastweb |
| Tier 3 | ISP locali o aziende. Pagano transit a Tier 1 o 2, raramente hanno accordi di peering. Acquistano connettività | ISP locali, aziende con proprio AS |
Come vengono assegnati gli ASN
Gli ASN vengono assegnati dai RIR (Regional Internet Registry) — le stesse organizzazioni che assegnano i blocchi di indirizzi IP pubblici:
| RIR | Regione |
|---|---|
| RIPE NCC | Europa, Medio Oriente, Asia Centrale |
| ARIN | Nord America |
| APNIC | Asia-Pacifico |
| LACNIC | America Latina e Caraibi |
| AFRINIC | Africa |
Gli ASN privati (non instradabili su Internet pubblico, usati in lab o reti interne) sono nell’intervallo 64512–65535 (2 byte) e 4200000000–4294967295 (4 byte).
- Internet è una rete di oltre 100.000 AS indipendenti, ciascuno con il proprio ASN e politica di routing. I RIR (RIPE NCC per l’Europa) assegnano ASN e blocchi IP
- IGP (OSPF, RIP) opera all’interno di un AS ottimizzando le metriche tecniche; EGP (BGP) opera tra AS implementando politiche di business
- BGP è un protocollo path-vector che usa TCP porta 179. Propaga prefissi IP con il percorso completo di AS (AS_PATH) — questo permette rilevazione di loop e controllo del percorso
- I principali attributi BGP sono: AS_PATH (percorso AS), LOCAL_PREF (uscita preferita dall’AS), MED (entrata preferita nell’AS), COMMUNITY (tag per politiche)
- Peering = scambio gratuito tra AS simili; Transit = il cliente paga il provider per raggiungere tutta Internet. Gli IXP (DE-CIX, AMS-IX, MIX) sono punti fisici di interconnessione
- BGP è vulnerabile a route leak e hijacking perché si basa sulla fiducia. RPKI (firme crittografiche sui prefissi) è la soluzione emergente per mitigare questi rischi