個人でもBGPのASNが持てる時代

雑記
$ whois -h whois.nic.ad.jp "AS 38651" | nkf -w
ネットワークの世界じゃ、有名(だと思う)な、ともちゃさんが個人でBGPのASNを取得したようです。

Foundary機器を利用してBGP4を利用していた経験からすると、個人でASN取得したり、運用しようと思うこと自体がすごいなぁ。

そもそも、BGP(Border Gateway Protocol)ってなに?

ほとんどの場合は、BGP4というルーティングプロトコルのことを指しています。で、このプロトコルはなにかというと、実質的に今のインターネットすべてのネットワークを支えているといっても過言ではないプロトコルなのです。

インターネットの世界はIPアドレスでホストの居場所を探すわけですが、このIPアドレスは基本的にはネットワーク帯ごとに事業者などに割り当てられます。この事業者は割り当てられたネットワークをインターネットのどの場所からも、いつでもアクセスできる状態にします。

このいつでもアクセスできる状態にするためにAS(Autonomous System)を利用して、AS同士を相互に接続し、経路情報をやりとりすることによって、複数の経路からネットワークに接続できることを実現します。IPアドレスよりもさらに上位層の概念です。

ASNとはASに対してユニークに割り当てられる番号のことです。

基本的にASは複数のISP回線を利用して、複数のASと経路情報をやりとりすることによって、1つの経路(ISP回線やAS)が障害などにより通信することができなくなっても、経路情報を伝達することによって、別の経路からネットワークへの接続をさせることができます。

例えば、HIROKI-NETというASを取得したとして、HIROKI-NETにはxxx.yyy.zzz.hhh/24のネットワークが所属するとした場合、xxx.yyy.zzz.hhh/24のネットワークを全世界からいつでも接続できる状態にするために、NTTとKDDIの2回線を契約して、NTTのASとKDDIのASにxxx.yyy.zzz.hhh/24のネットワークはココにありますよ。という経路情報を伝達します。

この経路情報はASを介して全世界に伝達されていきます。仮にNTTの回線が障害が発生した場合、即座に経路情報の優先度をKDDI側に設定し、KDDIのASへ経路情報を伝達することによって、経路情報を受け取ったASからはKDDIを経由した経路を使ってxxx.yyy.zzz.hhh/24のネットワークにアクセスしてきます。

と、このようにASが持っているネットワーク(xxx.yyy.zzz.hhh/24)などへの経路を伝達するためのプロトコルがBGP4なのです。

複数のISP回線を利用して複数のASと接続(ピアを張る)ことによって、NTTの回線は障害が多いからKDDIをメインで利用するなんてこともできます。ネットワークに入ってくるのはNTTからで、ネットワークから出ていくのはKDDIからなんてこともできる。

ぶっちゃけ、個人ではほぼ使わない規模のお話しだし、WEBコンテンツをやっている大規模な会社やISP事業者やデータセンターをやっているところぐらいしか使わない。

上記の例は一例に過ぎないので、詳しくは下記のようなサイトで学んで欲しい。(ここに出している例であれば、プライベートASだけでも構築できる)

AS番号からの情報取得

$ whois -h whois.nic.ad.jp "AS 38651" | nkf -w

$ whois -h whois.nic.ad.jp "AS 38651" | nkf -w

ミクシィってAS持ってんだぁ。

いろいろ調べたこと

MacのTerminalでwhois使うと文字化けするので、nkfをインストール。

Before

$ whois -h whois.jprs.jp mixi.jp

$ whois -h whois.jprs.jp mixi.jp

[bash]

 $ sudo port install nkf

[/bash]

After

$ whois -h whois.jprs.jp mixi.jp | nkf -w

$ whois -h whois.jprs.jp mixi.jp | nkf -w

AS番号の申請自体は10,500円と意外と安い。

IPアドレス指定事業者以外でもAS番号は取得できる。(AS番号の申請について)

  1. 自律ネットワークがBGP(Border Gateway Protocol)を利用して他の自律ネットワークとの間で外部経路制御情報を交換すること。
  2. 自 律ネットワークの外部経路制御ポリシが、他のいかなる自律ネットワークに委ねても実現が困難な、固有のものであること。典型的には、他の一つの自律ネット ワークのみと接続するのではなく、複数の自律ネットワークとの間でBGPにより接続し、外部経路制御情報の交換を行うこと。
  3. 上記の条件 1) 2) を、割り当てから3ヶ月以内に満たす予定であること。

JPNICはAS番号公開してた。

ASの経路情報などを記録して公開しているところは多い。

whoisだとASNからは探せるけどASの名前から探せない。仕方ないからAS番号から一通り名前を取得するスクリプトを書いた。

[ruby]

(40000..49999).each do |i|

 cmd = "/Users/hirocaster/src/aslookup-beta0.13d/aslookup " + i.to_s

 IO.popen(cmd, 'r+') do |pipe|

 print pipe.read

 end

end

[/ruby]

Kuniaki’s Softwareあたりのツールが便利そうなので使ってみた。

タイトルとURLをコピーしました