Gibt es eine einfache Möglichkeit, alle IP-Adressen herauszufinden, die Facebook, Myspace, Snapchat usw. verwenden?
Am Beispiel von Facebook ... Wir überwachen ihre Bandbreite zu einem kleinen Teil unserer Gesamtmenge direkt auf unserem ASA (weil eine andere Gruppe im Unternehmen den Web-Proxy besitzt).
Normalerweise suche ich den ASN der Firma (Facebook ist 32934), dann gehe ich zu http://as.robtex.com/as32934.html#bgp
und finde deren Präfixe.
Aus dieser Liste baue ich eine Cisco ASA-Objektgruppe auf, mit der ich den Datenverkehr klassifizieren kann ... Das verwende ich jetzt ... Facebook wird auf eine geringe Bandbreite gedrosselt ... Das funktioniert sehr gut.
Von Zeit zu Zeit müssen Sie die robtex AS-info überprüfen, um festzustellen, ob Präfixe hinzugefügt oder entfernt wurden. Ich versuche normalerweise, den größten Aggregatblock zu nehmen, den sie haben, selbst wenn sie nur kleinere Blöcke von diesem größeren Aggregat ankündigen.
object-group AS32934_Facebook
network-object 31.13.24.0 255.255.248.0
network-object 31.13.64.0 255.255.192.0
network-object 66.220.144.0 255.255.240.0
network-object 69.63.176.0 255.255.240.0
network-object 69.171.224.0 255.255.224.0
network-object 74.119.76.0 255.255.252.0
network-object 103.4.96.0 255.255.252.0
network-object 173.252.64.0 255.255.192.0
network-object 204.15.20.0 255.255.252.0
Der Python-Code, mit dem ich die Liste erstelle, ist trivial ...
from ipaddr import IPv4Network, CollapseAddrList
fb_nets = list()
with open('facebook_nets.txt') as fh:
for line in fh:
net = IPv4Network(line.strip())
fb_nets.append(net)
print "object-group AS32934_Facebook"
for net in sorted(CollapseAddrList(fb_nets)):
print " network-object %s %s" % (net.network, net.netmask)
Der Code geht davon aus, dass Sie alle Präfixe in eine Textdatei mit dem Namen "facebook_nets.txt" mit einem Präfix pro Zeile einfügen ...
(py26_dfl)[mpenning@Bucksnort ~]$ head facebook_nets.txt
31.13.24.0/21
31.13.64.0/18
31.13.64.0/19
31.13.64.0/24
31.13.65.0/24
31.13.66.0/24
31.13.67.0/24
31.13.68.0/24
31.13.69.0/24
31.13.70.0/24
(py26_dfl)[mpenning@Bucksnort ~]$
Eigentlich kratzt mein Skript die Informationen jede Woche automatisch im Internet, aber dies ist eine vereinfachte Version.