Welche IPs hat Google?
Bei der Suche nach einem Problem mit dem CDN von Google war es nötig, zwischen den IPs, die Google selbst benutzt und denen der externen Cache Server zu unterscheiden. Aber welche IPs hat Google denn?
Der offensichtliche Ansatz ist, bei https://stat.ripe.net/ das Suchwort "Google" einzugeben und sich die AS Nummer auflisten zu lassen.
Klickt man dann eins der ASNs an, z.B. https://stat.ripe.net/AS15169#tabId=routing erhält man die Liste der IP Bereiche. Allerdings ist das evtl. nur auf die RIPE Region beschränkt oder wie in dem Fall keine gute Idee:
Data Warning Rendering this data completely requires a large number of visual items. This may cause your browser to freeze. How would you like to proceed?
Natürlich kann man auch direkt eine whois Abfrage über den Origin der Route-Objekte ausführen.
$ whois -h whois.ripe.net -- -ar -i origin AS15169 | egrep '^route' route: 1.0.0.0/24 route: 1.1.1.0/24 route: 1.2.3.0/24 route: 103.62.64.0/24 [6977 Zeilen ausgelassen] route6: 2a03:ace0::/32 route6: 2c0f:fb50:4002::/48 route6: 2c0f:fb50:4003::/48 route6: 2c0f:fb50::/32
Das ist ehrlich gesagt unpraktisch, und mit hoher Wahrscheinlichkeit sogar falsch für meinen Kontext. Und natürlich fehlen noch all die anderen ASNs, die Google benutzt.
Aber dann kam die Rettung aus dem DNS (ich hab's im tcpdump vorbei fliegen sehen):
google.com. TXT "v=spf1 include:_spf.google.com ~all"
Natürlich! Google listet die relevanten Bereiche selbst auf, weil sie die beim Mailversand prüfen lassen möchte.
Und so gehen dann die Details ins Detail:
_spf.google.com. TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all" _netblocks.google.com. TXT "v=spf1 ip4:64.18.0.0/20 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:207.126.144.0/20 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all" _netblocks2.google.com. TXT "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all" _netblocks3.google.com. TXT "v=spf1 ip4:172.217.0.0/19 ip4:108.177.96.0/19 ~all"
Und das deckt sich mit den Netzen, die ich aussortieren muss, ziemlich gut.