Googleの使ってそうなCIDR

なんか国際経路がトラブっているのかGoogleの到達性に問題が発生しているらしいので、BGPとか触っている人間では初歩的なtipsなんだけど、ウェブでは全然みかけないので敢えてCIDRブロックを調べる方法など書いてみる。
まずは普通にDNSを引く

$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 209.85.175.104
www.l.google.com has address 209.85.175.147
www.l.google.com has address 209.85.175.99

で、そのうち一つをピックアップ。例えば、209.85.175.104。で、これがインターネット上でどのASに所属するかを調べる。
方法は2つ。
Internet Routing Registryl(IRR)で索く方法。

$ whois -h jpirr.nic.ad.jp 209.85.175.104
route:        209.85.175.0/24
descr:        Google
origin:       AS15169
notify:       noc@google.com
mnt-by:       MAINT-AS15169
changed:      noc@google.com 20060607
source:       RADB

で、AS15169に所属していることがわかる。
あるいは、公開されているroute serverで索く。こちらの方が実際に動いている経路を直接索くことになるので、確実である。

route-views.wide.routeviews.org> show ip bgp 209.85.175.104
BGP routing table entry for 209.85.174.0/23
Paths: (3 available, best #2, table Default-IP-Routing-Table)
  Not advertised to any peer
  7500 2497 15169
    202.249.2.169 from 202.249.2.86 (203.178.133.115)
      Origin IGP, localpref 100, valid, external
      Last update: Sun Feb 24 21:31:50 2008

  2497 15169
    202.249.2.169 from 202.249.2.169 (58.138.96.143)
      Origin IGP, localpref 100, valid, external, best
      Last update: Sun Feb 24 21:22:56 2008

  4777 2497 15169
    202.249.2.169 from 202.249.2.20 (210.171.224.6)
      Origin IGP, localpref 100, valid, external
      Last update: Sun Feb 24 21:23:51 2008

見るべきは、各経路のAS_PATHの一番右にある番号。これが問い合わせたIPアドレスを含むCIDRを広告しているORIGIN ASということになる。もちろん結果は同じでAS15169。
次のステップはこのASから広告されている経路を調べる。
IRRで索くこともできるが、route serverから索いてみる。
具体的なコマンドとしては

show ip bgp regexp 15169$

意味としてはAS_PATHを"15169$"という正規表現で検索するというもの。わざわざ"$"で行末とマッチさせているのは、当該ASを経由する(トランジット)するだけの経路を排除するため。ただし、今回のケースでは恐らくGoogleが他ASに対してトランジットを提供しているとは思えないから結果の大勢には影響ないと思われるが。
で、以下がその結果。

route-views.wide.routeviews.org> terminal length 0
route-views.wide.routeviews.org> show ip bgp regexp 15169$
BGP table version is 0, local router ID is 202.249.2.166
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*p2*  64.233.160.0/19  202.249.2.169                          0 7500 2497 15169 i
*p3*>                  202.249.2.169                          0 2497 15169 i
*p4*                   202.249.2.169                          0 4777 2497 15169 i
*p5*  64.233.160.0/23  202.249.2.169                          0 7500 2497 15169 i
*p6*>                  202.249.2.169                          0 2497 15169 i
(snip)
Total number of prefixes 131

ということで、合計131経路だと判明する。
あとは適当にスクリプトとかで集計すればOK。
前回を書きましたが、route serverはスクリプトなどの自動取得は禁止されていることが多いので、使用条件を事前にチェックすること。