IRR
インターネット上をやり取りされている経路情報を格納するデータベース IRR (Internet Routing Registry) を使い倒そう。
IRR (Internet Routing Registry) とは
- インターネット10分講座 IRR - JPNIC : IRR とは, IRR で扱うオブジェクト, を扱う IRR の超入門
IRR の色々なオブジェクト
- Maintainer object
- Route object
- Route6 object?
- AS object
- AS-Set object
- Role object (maintainer object の tech-c や admin-c に関連付けられる担当グループ情報)
- Person object (maintainer object の tech-c や admin-c に関連付けられる担当者情報)
IRR のオブジェクトへの登録方法
- JPIRRでのオブジェクト登録について - JPNIC : IRR で扱うオブジェクトの登録方法、登録内容、
- 各オブジェクトの目的の解説
- メールで登録
- パスワード発行されたあとの decrypt の方法がやばい。 http サイトを案内されエチル && https は証明書切れ…
便利ツール
JPIRR 登録者・利用者向けページ - JPNIC : JPIRR にクエリ発行できる
IP Address Aggregator - TehnoBlog.org : 冗長な CIDR を aggregate できる Web App.
RADb Query Help - RADb : IRR DB に Whois コマンドでアクセスするときのオプションを調べるのに役立つ
# 例 -M <cidr block> #=> 全ての more specific な経路が出てくる # 例: whois -h jpirr.nic.ad.jp -- '-M 217.178.0.0/16' -m <cidr block> #=> 1段階 more specific な経路が出てくる # 例: whois -h jpirr.nic.ad.jp -- '-m 217.178.0.0/16' -L <cidr block> #=> 全ての less specific な経路が出てくる -l <cidr block> #=> 1段階 less specific な経路が出てくる
JPIRR - JPNIC : JPIRR や IRR について勉強する日本語の入り口として
irrtoolset/irrtoolset: The Internet Routing Registry Toolset: C-lang ベースのユーティリティ
peval: Low level evaluation tool for writing router config generators ということで、 irrtoolset に入っている。
- 使い方: peval - manned.org に man が掲載されている。 https://github.com/irrtoolset/irrtoolset/blob/6b385e9e5d96670451f76b8204e8ec90b85e1cf0/src/peval/peval.1 も同じ情報が乗っている
- 例
# AS-Set から AS-Num への展開は動く root@docker-desktop:/irrtoolset# peval -no-as AS-TRANSIX-E ((AS4697 AS7521 AS2511 AS55817 AS20940 AS55391 AS38644 AS173 AS16625 AS59091 AS131079 )) # 他、セグって動かねぇ… root@docker-desktop:/irrtoolset# peval 'AS55391 AND AS55392' Segmentation fault
- 結構いろんなコマンドが Segmentation Fault で動かねぇ…メモリの使い方がひどいっぽい (https://github.com/irrtoolset/irrtoolset/issues/46)
irrtoolset の docker コンテナ化にトライ
結構いろんなコマンドが Segmentation Fault で動かねぇ…メモリの使い方がひどいっぽい (https://github.com/irrtoolset/irrtoolset/issues/46)
- 例
# AS-Set から AS-Num への展開は動く root@docker-desktop:/irrtoolset# peval -no-as AS-TRANSIX-E ((AS4697 AS7521 AS2511 AS55817 AS20940 AS55391 AS38644 AS173 AS16625 AS59091 AS131079 )) # 他、セグって動かねぇ… root@docker-desktop:/irrtoolset# peval 'AS55391 AND AS55392' Segmentation fault
諦めて irrtoolset を mac にインストール
インストールはあら簡単、 homebrew だけ
$ brew install irrtoolset
動くねぇ。
$ peval -no-as AS-TRANSIX-E ((AS4697 AS7521 AS2511 AS55817 AS20940 AS55391 AS38644 AS173 AS16625 AS59091 AS131079 )) $ peval 'AS55391 AND AS55392' NOT ANY $ peval 'AS7521 OR AS4713' ({223.216.0.0/14, 222.144.0.0/13, 221.184.0.0/13, 221.113.128.0/17, 220.220.0.0/15, 220.111.128.0/17, 220.111.64.0/18, 220.111.32.0/20, 220.111.48.0/20, 220.111.0.0/19, 略 $ peval 'AS55391' ({217.178.0.0/16, 217.178.128.0/17, 217.178.128.0/18, 217.178.0.0/18, 115.69.232.0/22, 115.69.232.0/23, 115.69.234.0/23, 115.69.232.0/24, 115.69.233.0/24, 115.69.234.0/24, 115.69.235.0/24, 103.2.248.0/22, 103.2.248.0/23, 103.2.250.0/23, 103.2.248.0/24, 103.2.249.0/24, 103.2.250.0/24, 103.2.251.0/24, 14.0.8.0/22})
memo
AS-Set に登録できる名称は 大文字アルファベット、数字、ハイフン、コロンなどありそう
IRR によって登録情報のルールが違ったりする?
複数 IRR 参照するべき?
AS-Set から route object を一括取得する方法は?
AS-Num から route object ならこう
$ whois -h jpirr.nic.ad.jp '!gAS55391' A293 217.178.128.0/18 217.178.0.0/16 103.2.249.0/24 115.69.232.0/22 115.69.233.0/24 103.2.250.0/23 115.69.232.0/23 14.0.8.0/22 103.2.251.0/24 103.2.248.0/22 103.2.248.0/24 103.2.250.0/24 115.69.235.0/24 115.69.234.0/23 103.2.248.0/23 217.178.0.0/18 115.69.232.0/24 217.178.128.0/17 115.69.234.0/24 C
APNIC も参考になりそう。 https://www.apnic.net/manage-ip/using-whois/guide/as-set/ AS-Set は hierarchical だと
AS1:AS-CUSTOMERS
みたいな表記ができるよ、などの情報