はじめに
ASの中でどんなアドレスブロック(≒サブネット)が使われているのかを確認する方法を紹介します。bgpq4コマンドで,IRRを参照します。
予備知識
-
BGPとは
BGPは、インターネット上で異なるネットワーク(自律システム、AS)同士が経路情報を交換するためのプロトコルです。 -
IRRとは
IRR(Internet Routing Registry)は,インターネット上の経路情報を管理・公開するためのデータベースです。 -
bgpq4とは
IRRの情報を参照して,ルータのBGPの経路フィルタ設定を生成するツールです。以前はirrtoolsetコマンドが使われていたようですが,メンテナンスが止まっています。
準備
ubuntu(今回は2204)で,bgpq4コマンドをインストールしておきます。
$ sudo apt install bgpq4
bgpq4の簡単な使い方
- IPv4を調べる
$ bgpq4 ASXXXX
# XXXXにAS番号を入れる
オプションを指定しない場合,Cisco IOSに対応したprefix-listの許可リストが出力されます。
- IPv6を調べる
-6オプションを使います。
$ bgpq4 -6 ASXXXX
# XXXXにAS番号を入れる
- JSONで出力する
-jオプションを使います。
$ bgpq4 -j ASXXXX
- その他
JuniperやOpenBGPDに対応したオプションもあります。詳しくはman bgpq4
で。
出力結果を検証
では,取得結果を検証します。
AS番号はあらかじめJPNICのサイトで調査しておきます。
https://www.nic.ad.jp/ja/ip/as-numbers.txt
自宅のOCNのIPv4アドレス153.181.XX.XXとIPv6アドレス2400:415X:....はAS4713(OCN)の中に存在しました。
$ bgpq4 AS4713
no ip prefix-list NN
ip prefix-list NN permit 27.114.0.0/17
...
ip prefix-list NN permit 153.128.0.0/10
...
$ bgpq4 -6 AS4713
no ipv6 prefix-list NN
...
ipv6 prefix-list NN permit 2400:4000::/22
...
モバイルで利用しているIIJmioのIPv4アドレス133.159.XX.XXとIPv6アドレス2001:24::...はAS2497(IIJ)の中に存在しました。
$ bgpq4 AS2497
no ip prefix-list NN
ip prefix-list NN permit 45.95.66.0/24
...
ip prefix-list NN permit 133.159.0.0/16
...
$ bgpq4 -6 AS2497
no ipv6 prefix-list NN
ipv6 prefix-list NN permit 2001:240::/32
...
4件ほどのサンプル調査ですが,参照できる情報は正しかったです。
まとめ
- ASの中の人でなくても,IRRを使えばAS番号からアドレスブロックの情報を参照できます。
- bgpq4コマンドを使うと,AS番号からアドレスブロックを検索できます。
- IRRというデータベースで,AS番号とアドレスブロックが管理されています。
- IRRに問合せするためのbgpq4コマンドが,apt installで使えます。
参考情報