Existe-t-il un moyen simple de découvrir toutes les adresses IP utilisées par Facebook, Myspace, Snapchat, etc.?
En utilisant Facebook comme exemple ... Nous contrôlons leur bande passante à une petite fraction de notre total directement sur notre ASA (car un autre groupe de l'entreprise possède le proxy Web).
Je recherche normalement l'ASN de l'entreprise (Facebook est 32934), puis je vais http://as.robtex.com/as32934.html#bgp
chercher leurs préfixes.
À partir de cette liste, je crée un groupe d'objets Cisco ASA, que je peux utiliser pour classer le trafic ... C'est ce que j'utilise maintenant ... Facebook est limité à une petite quantité de bande passante ... Cela fonctionne très bien.
De temps en temps, vous devrez revenir en arrière et vérifier robtex AS-info pour voir s'ils ont ajouté ou supprimé des préfixes. J'essaie généralement de prendre le plus grand bloc d'agrégats qu'ils ont, même s'ils n'annoncent que des blocs plus petits à partir de ce plus grand agrégat.
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
Le code python que j'utilise pour générer la liste est 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)
Le code suppose que vous mettez tous leurs préfixes dans un fichier texte appelé "facebook_nets.txt", avec un préfixe par ligne ...
(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 ~]$
En fait, mon script gratte automatiquement les informations chaque semaine, mais il s'agit d'une version simplifiée.