SlideShare a Scribd company logo
RPSL e rpsltool
Configurazione automatica delle sessioni BGP
Marco d’Itri
<md@linux.it>
ex ITgate
Comitato Tecnico di TOP-IX - 22 novembre 2006
Programma
1 RPSL
2 rpsltool
3 I filtri in azione
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 2 / 21
RPSL
Cosa è RPSL
Routing Policy Specification Language
Permette a un operatore di descrivere le proprie politiche di routing in
modo sufficientemente dettagliato da poterne generare le
configurazioni dei router.
Definito da RFC 2622 e altri.
RPSLng lo estende per multicast e IPv6.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 3 / 21
RPSL
RPSL è complesso
Oggetti definiti:
mntner, person, role
aut-num, route, inet-rtr, filter, peering
as-set, route-set, rtr-set, filter-set,
peering-set
Alzi la mano chi ha mai visto un oggetto rtr-set.
Quasi tutti questi oggetti possono essere ignorati.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 4 / 21
RPSL
RPSL è complesso (2)
La complessità si estende anche ai singoli oggetti:
Attributi meno noti dell’oggetto route:
components
aggr-mtd
aggr-bndry
inject
holes
export-comps
Alzi la mano chi ne ha mai visto usare uno.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 5 / 21
RPSL
RPSL è complesso (3)
Descrivere completamente in un oggetto aut-num una configurazione
reale richiede molte direttive (ammesso che sia possibile):
import: { # MIX-IT peers
from AS-ANY at 217.29.66.65
accept not ({0.0.0.0/0^25-32}
or fltr-bogons-itgate-it);
action pref = 750; med = 0;
community = {12779:65002};
} refine {
from AS137 accept <AS-GARR+$>;
# ...
}
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 6 / 21
RPSL
Gli oggetti aut-num
Documentano le connessioni tra autonomous system e le route che ci
si scambiano:
aut-num: AS12779
as-name: ITGATE
import: ...
export: ...
Il loro scopo è fornire informazioni per configurare i propri router, ma
nessuno li usa in questo modo.
Per il resto della rete hanno solo valore di documentazione: o si
tengono aggiornati oppure è meglio renderli più semplici possibile.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 7 / 21
RPSL
RPSL in pratica
Il nostro scopo è generare automaticamente filtri per le route ricevute
tramite BGP da peer e clienti.
Per farlo è sufficiente usare due oggetti:
route: documenta quale AS annuncia una route.
as-set: documenta un elenco di AS.
Usando un server whois come quello di RIPE possiamo sapere quali
AS annuncia un peer e quali route sono annunciate da ogni AS.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 8 / 21
RPSL
L’oggetto as-set
Una lista di autonomous system:
as-set: AS12779:AS-CUSTOMERS-V6
members: AS12779, AS2594, AS2595, AS12637
members: AS20912, AS34695
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 9 / 21
RPSL
L’oggetto route
Una route e l’autonomous system che la annuncia:
route: 213.254.0.0/19
origin: AS12779
Per le route IPv6 esiste l’oggetto route6.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 10 / 21
rpsltool
IRRToolSet
Una suite di programmi sviluppata a partire dal 1994 con lo scopo di
generare tutte le configurazioni dei router di una rete secondo una
descrizione fatta con RPSL.
Oltre 70000 righe di C/C++, più 3500 righe di lex e yacc.
Formalmente ora è sviluppato da ISC ma non è finanziato.
È difficile da usare con sistemi operativi moderni.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 11 / 21
rpsltool
rpsltool
Una mia implementazione delle feature di IRRToolSet effettivamente
usate in pratica: generare la completa configurazione di peer e clienti,
compresi i filtri delle route.
1200 righe di perl.
Vantaggi
veloce
efficiente
funziona
Gestisce anche IPv6 e multicast.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 12 / 21
rpsltool
rpsltool: come è fatto
YAML (file di configurazione)
Net::Whois::RIPE (client whois)
rpsltool (motore RPSL)
Template::Toolkit (motore di templating)
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 13 / 21
rpsltool
rpsltool: come funziona
Input
Elenco dei peer e loro caratteristiche.
Oggetti RPSL.
Template del file di configurazione.
Output
La configurazione di un router.
È fornito solo un template per IOS, ma è facile scriverne per altre
piattaforme.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 14 / 21
rpsltool
Esempio di configurazione
- as: 137
description: GARR
import: AS-GARR
ip: 194.116.96.25
ipv4: { aslist: 37 }
- as: 33077
description: F root
import: 2001:500::/48
ip: 2001:7F8:23:FFFF::6
backupip: 2001:7F8:23:FFFF::7
bgp_commands: ’password 7 0000000000000000000000’
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 15 / 21
rpsltool
Un pezzo di template
...
[% NEXT IF NOT neigh.$afi.import_routes.size %]
no [% acltype %] prefix-list [% aclname +%]
[% FOREACH route = neigh.$afi.import_routes %]
[% acltype %] prefix-list [% aclname %] permit 
[% route.route2cisco +%]
[% END %]
...
Tramite il template è possibile controllare ogni aspetto del file di
configurazione generato.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 16 / 21
I filtri in azione
Esperienza con i filtri
TOP-IX: su 14 peer 8 sono filtrabili per prefissi e 6 per as-path.
4 peer necessitano di aggiunte agli oggetti pubblicati.
MIX: su 60 peer 42 sono filtrabili per prefissi e 18 per as-path.
17 peer necessitano di aggiunte agli oggetti pubblicati.
Grazie ai filtri mi accorgo dei leak di altri peer solo vedendo i reboot dei
router senza filtri.
rpsltool comprende anche programmi per generare un sommario delle
reti non accettate dai propri filtri e per richiedere ai peer di aggiornare i
propri oggetti RPSL.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 17 / 21
I filtri in azione
Buoni e cattivi
Filtrati per prefissi:
GARR, CSI, CSP, F root, ReteItaly, Softpeople, Sanpaolo, TOP-IX
Filtrati per as-path:
WIND, AT&T, Telecom Italia, COLT, FASTWEB, Eutelia
Hanno record incompleti:
import: [ <AS-INFOSTRADA>, <AS9035>, <AS2164>,
<AS39739>, <AS15714>, <AS21124> ]
import: [ <AS-COLT>, <AS23047>, <AS41527>, <AS41159>,
<AS16373>, <AS25327>, <AS2856>, <AS8651> ]
import: [ <AS-EUTELIA>, <AS41773> ]
import: [ AS-GARR, 195.16.92.0/22 ]
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 18 / 21
I filtri in azione
Un caso patologico
McLink riannuncia al MIX le reti di ex clienti ottenute da altri peer:
Checking 217.29.66.4 (AS5396).
Accepted 12 of 15 routes (80.00%). Not accepted:
193.108.186.0/24 5396 3313 12498
193.193.183.0/24 5396 3313 12498
82.145.160.0/19 5396 3313 31076
Morale: filtrare per prefissi le route in uscita è una cattiva idea.
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 19 / 21
I filtri in azione
Conclusione
Aggiornate sempre gli oggetti as-set.
Fate aggiornare ai vostri clienti i loro oggetti route (se ci riuscite).
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 20 / 21
I filtri in azione
Domande?
http://www.linux.it/~md/text/topix-rpsltool.pdf
(google . . . Marco d’Itri . . . I feel lucky)
Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 21 / 21

More Related Content

PPT
Prot09 Rtp Rtcp Rtsp Tognana Denis
PPTX
Introduzione al livello di rete e Dijkstra algorithm
PDF
Il tuo router è sicuro?
ODP
Il tuo router è sicuro?!
ODP
Progetto Netkit
PDF
Introduzione alla sicurezza di BGP
PDF
MPLS nelle (grandi) reti Enterprise
PDF
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
Prot09 Rtp Rtcp Rtsp Tognana Denis
Introduzione al livello di rete e Dijkstra algorithm
Il tuo router è sicuro?
Il tuo router è sicuro?!
Progetto Netkit
Introduzione alla sicurezza di BGP
MPLS nelle (grandi) reti Enterprise
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...

More from Marco d'Itri (20)

PDF
Exploring the Huawei HG8010H GPON ONT
PDF
BGP security at internet exchanges
PDF
The Internet of (other people's) Things
PDF
Introduzione al peering
PDF
The Internet of (other people's) Things
PDF
State-encouraged BGP hijacking
PDF
Sicurezza di BGP
PDF
Un mistero di censura all'italiana
PDF
Interconnessioni tra le reti Italiane
PDF
An introduction to peering in Italy
PDF
Peering e depeering
PDF
Introduzione al peering
PDF
Depeering di Telecom Italia
PDF
RPSL and rpsltool
PDF
Piano di indirizzamento di una rete IPv6
PDF
Il nuovo Bryar.pm
PDF
Transizione a IPv6: come la vedo io
PDF
Networking in ambienti cloud
PDF
DNSSEC - una breve introduzione
PDF
PBL e SBL DROP
Exploring the Huawei HG8010H GPON ONT
BGP security at internet exchanges
The Internet of (other people's) Things
Introduzione al peering
The Internet of (other people's) Things
State-encouraged BGP hijacking
Sicurezza di BGP
Un mistero di censura all'italiana
Interconnessioni tra le reti Italiane
An introduction to peering in Italy
Peering e depeering
Introduzione al peering
Depeering di Telecom Italia
RPSL and rpsltool
Piano di indirizzamento di una rete IPv6
Il nuovo Bryar.pm
Transizione a IPv6: come la vedo io
Networking in ambienti cloud
DNSSEC - una breve introduzione
PBL e SBL DROP
Ad

RPSL e rpsltool

  • 1. RPSL e rpsltool Configurazione automatica delle sessioni BGP Marco d’Itri <md@linux.it> ex ITgate Comitato Tecnico di TOP-IX - 22 novembre 2006
  • 2. Programma 1 RPSL 2 rpsltool 3 I filtri in azione Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 2 / 21
  • 3. RPSL Cosa è RPSL Routing Policy Specification Language Permette a un operatore di descrivere le proprie politiche di routing in modo sufficientemente dettagliato da poterne generare le configurazioni dei router. Definito da RFC 2622 e altri. RPSLng lo estende per multicast e IPv6. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 3 / 21
  • 4. RPSL RPSL è complesso Oggetti definiti: mntner, person, role aut-num, route, inet-rtr, filter, peering as-set, route-set, rtr-set, filter-set, peering-set Alzi la mano chi ha mai visto un oggetto rtr-set. Quasi tutti questi oggetti possono essere ignorati. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 4 / 21
  • 5. RPSL RPSL è complesso (2) La complessità si estende anche ai singoli oggetti: Attributi meno noti dell’oggetto route: components aggr-mtd aggr-bndry inject holes export-comps Alzi la mano chi ne ha mai visto usare uno. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 5 / 21
  • 6. RPSL RPSL è complesso (3) Descrivere completamente in un oggetto aut-num una configurazione reale richiede molte direttive (ammesso che sia possibile): import: { # MIX-IT peers from AS-ANY at 217.29.66.65 accept not ({0.0.0.0/0^25-32} or fltr-bogons-itgate-it); action pref = 750; med = 0; community = {12779:65002}; } refine { from AS137 accept <AS-GARR+$>; # ... } Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 6 / 21
  • 7. RPSL Gli oggetti aut-num Documentano le connessioni tra autonomous system e le route che ci si scambiano: aut-num: AS12779 as-name: ITGATE import: ... export: ... Il loro scopo è fornire informazioni per configurare i propri router, ma nessuno li usa in questo modo. Per il resto della rete hanno solo valore di documentazione: o si tengono aggiornati oppure è meglio renderli più semplici possibile. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 7 / 21
  • 8. RPSL RPSL in pratica Il nostro scopo è generare automaticamente filtri per le route ricevute tramite BGP da peer e clienti. Per farlo è sufficiente usare due oggetti: route: documenta quale AS annuncia una route. as-set: documenta un elenco di AS. Usando un server whois come quello di RIPE possiamo sapere quali AS annuncia un peer e quali route sono annunciate da ogni AS. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 8 / 21
  • 9. RPSL L’oggetto as-set Una lista di autonomous system: as-set: AS12779:AS-CUSTOMERS-V6 members: AS12779, AS2594, AS2595, AS12637 members: AS20912, AS34695 Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 9 / 21
  • 10. RPSL L’oggetto route Una route e l’autonomous system che la annuncia: route: 213.254.0.0/19 origin: AS12779 Per le route IPv6 esiste l’oggetto route6. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 10 / 21
  • 11. rpsltool IRRToolSet Una suite di programmi sviluppata a partire dal 1994 con lo scopo di generare tutte le configurazioni dei router di una rete secondo una descrizione fatta con RPSL. Oltre 70000 righe di C/C++, più 3500 righe di lex e yacc. Formalmente ora è sviluppato da ISC ma non è finanziato. È difficile da usare con sistemi operativi moderni. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 11 / 21
  • 12. rpsltool rpsltool Una mia implementazione delle feature di IRRToolSet effettivamente usate in pratica: generare la completa configurazione di peer e clienti, compresi i filtri delle route. 1200 righe di perl. Vantaggi veloce efficiente funziona Gestisce anche IPv6 e multicast. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 12 / 21
  • 13. rpsltool rpsltool: come è fatto YAML (file di configurazione) Net::Whois::RIPE (client whois) rpsltool (motore RPSL) Template::Toolkit (motore di templating) Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 13 / 21
  • 14. rpsltool rpsltool: come funziona Input Elenco dei peer e loro caratteristiche. Oggetti RPSL. Template del file di configurazione. Output La configurazione di un router. È fornito solo un template per IOS, ma è facile scriverne per altre piattaforme. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 14 / 21
  • 15. rpsltool Esempio di configurazione - as: 137 description: GARR import: AS-GARR ip: 194.116.96.25 ipv4: { aslist: 37 } - as: 33077 description: F root import: 2001:500::/48 ip: 2001:7F8:23:FFFF::6 backupip: 2001:7F8:23:FFFF::7 bgp_commands: ’password 7 0000000000000000000000’ Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 15 / 21
  • 16. rpsltool Un pezzo di template ... [% NEXT IF NOT neigh.$afi.import_routes.size %] no [% acltype %] prefix-list [% aclname +%] [% FOREACH route = neigh.$afi.import_routes %] [% acltype %] prefix-list [% aclname %] permit [% route.route2cisco +%] [% END %] ... Tramite il template è possibile controllare ogni aspetto del file di configurazione generato. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 16 / 21
  • 17. I filtri in azione Esperienza con i filtri TOP-IX: su 14 peer 8 sono filtrabili per prefissi e 6 per as-path. 4 peer necessitano di aggiunte agli oggetti pubblicati. MIX: su 60 peer 42 sono filtrabili per prefissi e 18 per as-path. 17 peer necessitano di aggiunte agli oggetti pubblicati. Grazie ai filtri mi accorgo dei leak di altri peer solo vedendo i reboot dei router senza filtri. rpsltool comprende anche programmi per generare un sommario delle reti non accettate dai propri filtri e per richiedere ai peer di aggiornare i propri oggetti RPSL. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 17 / 21
  • 18. I filtri in azione Buoni e cattivi Filtrati per prefissi: GARR, CSI, CSP, F root, ReteItaly, Softpeople, Sanpaolo, TOP-IX Filtrati per as-path: WIND, AT&T, Telecom Italia, COLT, FASTWEB, Eutelia Hanno record incompleti: import: [ <AS-INFOSTRADA>, <AS9035>, <AS2164>, <AS39739>, <AS15714>, <AS21124> ] import: [ <AS-COLT>, <AS23047>, <AS41527>, <AS41159>, <AS16373>, <AS25327>, <AS2856>, <AS8651> ] import: [ <AS-EUTELIA>, <AS41773> ] import: [ AS-GARR, 195.16.92.0/22 ] Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 18 / 21
  • 19. I filtri in azione Un caso patologico McLink riannuncia al MIX le reti di ex clienti ottenute da altri peer: Checking 217.29.66.4 (AS5396). Accepted 12 of 15 routes (80.00%). Not accepted: 193.108.186.0/24 5396 3313 12498 193.193.183.0/24 5396 3313 12498 82.145.160.0/19 5396 3313 31076 Morale: filtrare per prefissi le route in uscita è una cattiva idea. Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 19 / 21
  • 20. I filtri in azione Conclusione Aggiornate sempre gli oggetti as-set. Fate aggiornare ai vostri clienti i loro oggetti route (se ci riuscite). Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 20 / 21
  • 21. I filtri in azione Domande? http://www.linux.it/~md/text/topix-rpsltool.pdf (google . . . Marco d’Itri . . . I feel lucky) Marco d’Itri (ex ITgate) RPSL e rpsltool TOP-IX 21 / 21