Welche Prefixe liefert welches AS – Teil 3

In den Teilen 1 und 2 habe ich per whois und per IRRToolset nach Prefixen eines AS oder eines AS-Sets gesucht. Ich will diese Information nutzen, um automatische Filterlisten für einen bird Routeserver zu bauen. Ein Kollege hat mich mit der Nase auf bgpq3 gestupst. Man muss es zwar auch selbst kompilieren, aber ./configure; make; make install funktionierte anstandslos auf meinem Debian.

Das Programm wird weiter aktiv entwickelt, im Gegensatz zu dem IRRToolset, und es ist deutlich schneller. Hinter meiner DSL-Leitung braucht das IRRToolset für das Zusammensammeln aller Prefixe von dem befreundeten Provider TNG (AS-TNG) geschlagene 1 Minute und 8 Sekunden und das bgpq3 nur 2 Sekunden. Wir haben also einen Gewinner.

Der Routeserver läuft mit der Software bird. Auch wenn es nicht schwer ist, selbst aus einer Liste an Prefixen eine Access-Liste zusammenzubauen, so bietet bgpq3 doch die Möglichkeit neben IOS, Junos und sogar JSON eben auch bird Access-Listen direkt auszugeben. Das spart Arbeit. Und so sieht es dann aus:

# bgpq3 -b -l allnet  AS-LWL
allnet = [
    31.24.144.0/21,
    31.209.80.0/20,
    37.72.144.0/21,
    37.72.144.0/22,
    37.72.144.0/24,
    37.72.145.0/24,
    37.72.146.0/24,
    37.72.147.0/24,
    37.72.148.0/22,
    37.72.148.0/24,
    37.72.149.0/24,
    37.72.150.0/24,
    37.72.151.0/24,
    46.19.88.0/21,
    46.19.88.0/22,
    46.19.88.0/24,
    46.19.89.0/24,
    46.19.90.0/24,
    46.19.91.0/24,
    46.19.92.0/22,
    46.19.92.0/24,
    46.19.93.0/24,
    46.19.94.0/24,
    46.19.95.0/24,
    87.253.189.0/24,
    91.202.40.0/22,
    95.47.96.0/24,
    109.69.64.0/21,
    152.143.0.0/16,
    185.52.160.0/22,
    185.55.116.0/22,
    185.55.116.0/23,
    185.55.116.0/24,
    185.55.117.0/24,
    185.55.118.0/24,
    185.76.188.0/22,
    185.76.188.0/23,
    193.47.147.0/24,
    195.191.196.0/23
];
Welche Prefixe liefert welches AS – Teil 3

Welche Prefixe liefert welches AS – Teil 2

Mit der -i origin Abfrage vom letzten Post gibt es zu viele Einschränkungen. Das funktioniert nur mit der RIPE und andere IRR haben eine andere whois-Syntax und um ein ganzes AS-set rekursiv aufzulösen, muss ich unter Umständen viele, viele Male den Befehl anwenden. Das zu automatisieren, hat natürlich schon mal jemand gemacht. Das ISC hat mit dem IRRToolset ein eben solches herausgebracht. Ich habe es mir heruntergeladen und unter Debian 7 kompiliert. Dafür müssen ein paar Pakete installiert werden:

apt-get install make g++ bison flex

Danach kann man es wie üblich mit ./configure; make; make install kompilieren und installieren. Drei Programme werden installiert: peval, rpslcheck, rtconfig

Mit peval kann man rekursiv AS-Sets durchsuchen. Hier wieder ein Beispiel mit dem AS meines Arbeitgebers:

% peval 'afi ipv4, ipv6 AS-LWL'

({195.191.196.0/23, 193.47.147.0/24, 185.76.188.0/22, 185.76.188.0/23, 185.55.116.0/22, 185.55.118.0/24, 185.55.116.0/23, 185.55.116.0/24, 185.55.117.0/24, 185.52.160.0/22, 152.143.0.0/16, 109.69.64.0/21, 95.47.96.0/24, 91.202.40.0/22, 87.253.189.0/24, 46.19.88.0/21, 46.19.88.0/22, 46.19.92.0/22, 46.19.88.0/24, 46.19.89.0/24, 46.19.90.0/24, 46.19.91.0/24, 46.19.92.0/24, 46.19.93.0/24, 46.19.94.0/24, 46.19.95.0/24, 37.72.144.0/21, 37.72.144.0/22, 37.72.148.0/22, 37.72.144.0/24, 37.72.145.0/24, 37.72.146.0/24, 37.72.147.0/24, 37.72.148.0/24, 37.72.149.0/24, 37.72.150.0/24, 37.72.151.0/24, 31.209.80.0/20, 31.24.144.0/21}) OR ({2a04:ec40:ff28::/48, 2a04:ec40:ff29::/48, 2a04:ec40:ff20::/48, 2a04:ec40:ff21::/48, 2a04:ec40:ff22::/48, 2a04:ec40:ff23::/48, 2a04:ec40:ff24::/48, 2a04:ec40:ff25::/48, 2a04:ec40:ff26::/48, 2a04:ec40:ff27::/48, 2a04:ec40:ff18::/48, 2a04:ec40:ff19::/48, 2a04:ec40:ff14::/48, 2a04:ec40:ff15::/48, 2a04:ec40:ff16::/48, 2a04:ec40:ff17::/48, 2a04:ec40:ff12::/48, 2a04:ec40:ff13::/48, 2a04:ec40:ff10::/48, 2a04:ec40:ff09::/48, 2a04:ec40:ff04::/48, 2a04:ec40:ff05::/48, 2a04:ec40:ff06::/48, 2a04:ec40:ff07::/48, 2a04:ec40:ff02::/48, 2a04:ec40:ff03::/48, 2a04:ec40:ff01::/48, 2a02:2918::/32, 2a02:2918:adad::/48, 2a02:16d0::/32, 2a00:c380::/32, 2001:67c:1b43::/48})

Wie man sieht, ist das Ergebnis deutlich länger als eine einfache whois-Abfrage nach dem AS. Das liegt daran, dass nun rekursiv alle Prefixe von allen im AS-set definierten AS mit ausgegeben werden.

Mit rpslcheck hat man einen erweiterten whois-client, einfach mal ausprobieren. Das Programm rtconfig wiederum ist sehr spannend. Es kann Konfigurationen für Cisco und Juniper-Geräte generieren. Ich muss mir das mal genauer anschauen. Aber ehrlich gesagt, bei so wichtigen Geräten im Netz will ich lieber selbst die Konfig schreiben und das nicht einem Script überlassen.

Welche Prefixe liefert welches AS – Teil 2