IRR をwhoisで引いたり pevalする

インストール

IRRToolsetを入れます。aptなどはありません。

IRRを使うために。

sourceはちゃんと指定しましょう。

  • RADB: whois.radb.net
  • NTTCOM: rr.ntt.net
  • JPIRR: jpirr.nic.ad.jp

source指定の重要さ:こんなことになる

あるIRRサーバは他のIRRサーバのエントリをミラーしていることが多いです。(上記のIRRサーバは相互をミラーします) ただし、この同期は非同期です。このため、見に行くIRRサーバとSOURCEにより状態が異なることがあります。

peval -h rr.ntt.net -s NTTCOM AS290
({202.17.220.0/23, 130.128.0.0/15, 45.0.0.0/16})
peval -h rr.ntt.net -s RADB AS290
({192.16.170.0/24})

whoisでのクエリの仕方

AS-SHOWNETのASMembers = AS-SETを確認したい

whois -h whois.radb.net AS-SHOWNET
# or whois -h rr.ntt.net AS-SHOWNET
> as-set: AS-SHOWNET
> members: AS290, AS131154

などで、AS-SHOWNETという名前で2つのAS-SETが含まれていることがわかります。 このシナリオはSHOWNETという団体が、ASを2つ持っているケースです。

あるAS-SETに含まれる経路を確認したい

whois -h rr.ntt.net \!oMAINT-AS290
 ...
route: 202.17.220.0/23
 ...
route6:2001:3e8:0::/32

など。Route-Objectが見えます。適当にgrep route:などしてパースするとエントリだけを抜き出せます。

あるAS-SETに含まれる経路を確認したい(IPv4とIPv6)

と上記のように頑張りましたが、実は、”!g”でクエリするともう少し楽です。

whois -h rr.ntt.net \!gAS290
A86
202.17.220.0/23 45.0.0.0/15 130.129.0.0/16 130.128.0.0/15 45.0.0.0/16 192.16.170.0/24
whois -h rr.ntt.net \!6AS290
A66
2001:df8::/32 2001:418:1c05::/48 2620:102:f000::/46 2001:3e8::/32

とある経路はどのAS-SETに含まれているの?

whois -h rr.ntt.net 2001:0418:1c05::/48 | egrep '(^route|origin)'
route6:         2001:418::/32
origin:         AS2914
route6:         2001:418::/32
origin:         AS2914
route6:         2001:418::/32
origin:         AS2914
route6:         2001:418:1c00::/38
origin:         AS2914
route6:         2001:418:1c05::/48
origin:         AS290

peval

ある子のAS-memberの経路をIPv4,IPv6全部取る

peval -h rr.ntt.net -s NTTCOM 'afi ipv6,ipv4 AS-SHOWNET'
({202.17.220.0/23, 130.128.0.0/15, 45.0.0.0/16}) OR ({2001:418:1c05::/48, 2001:3e8::/32})

あるAS-SETの経路を見る(IPv4のみ)

標準ではIPv4の経路しかQueryされません。

peval -h rr.ntt.net AS290
({202.17.220.0/23, 130.128.0.0/15, 130.129.0.0/16, 45.0.0.0/15})
peval -h rr.ntt.net AS131154
NOT ANY

SOURCEの指定

IRRはmirrorしあっているため、RADBにSource: NTTCOMのIRRもmirrorされています。

peval -h whois.radb.net -s NTTCOM AS290  

などします。