自分のASNを持つ

/ , , , ,
簡体中文日本語
要約:
個人でASNを取得し、自分のIPアドレスをインターネット全体に広告するまで。

ASNという概念をきちんと知ったのは、COMP3331の授業でした。ただ、教科書の少し難しい定義とは別に、子どもの頃からプロキシやサーバー、IPをいじってきた私には、身近なものでもありました。IPアドレスの詳細を調べると、最初に出てくるのがそのASNだからです。たとえばAS13335はCloudflare、AS15169はGoogleです。

ASNとBGP

インターネットは、独立して運営される何千ものネットワークがつながってできています。それぞれを自律システム(Autonomous System)と呼び、ASNはその識別番号です。通信事業者、大学、クラウド事業者、CDNは、それぞれ一つ以上の自律システムを運営しています。

自律システム同士はBGPで情報を交換します。私が持っているIPアドレスのブロックを上流に伝えると、上流が隣接するネットワークに伝え、そこから次々に広がっていきます。やがて世界中のルーターが、そのブロック宛ての通信をどちらへ送ればよいか分かるようになります。IPを調べたときに表示されるASNは、通常、そのブロックをBGPで広告している自律システムの番号です。

ASNはISPや大企業だけのものではありません。個人でも組織でも、適切な手順を踏めば申請できます。自分の名前でASNを持ち、IPアドレスを調べたときに自分の名前が出てくる。そんなことができるなら、やってみたくなりますよね。

AS198734のWHOIS情報と「21」を表示したASCIIアートのパソコン
自分への21歳の誕生日プレゼント

申請

ASNとIPアドレスを管理する機関は世界に五つあり、地域インターネットレジストリ(RIR)と呼ばれます。ARINは北米、RIPE NCCはヨーロッパ・中東・中央アジアの一部、APNICはアジア太平洋、LACNICはラテンアメリカ、AFRINICはアフリカを担当します。通常は自分の地域のRIRに申請し、ネットワークもその地域に拠点を持つ必要があります。

ただし、申請の条件や費用はRIRによってかなり異なります。

RIPEの正式会員はLIRと呼ばれます。いわば「プレミアム会員」で、年会費は1550ユーロ、新規加入時には1000ユーロの入会金も必要です。ただし、LIRがスポンサーとなり、会員でない個人や組織の申請を代行することも認められています。個人にはこれが最も一般的な方法です。

APNICの正式会員は初年度が約1680豪ドル、翌年からは年1180豪ドルです。新会員にはIPv4の/24、IPv6の/48とASNが割り当てられます。本人確認書類に加え、会社登記や事業運営の証明も必要で、審査には1〜2週間かかります。IPv4はすでに枯渇しているため、アドレス資源は順番待ちです。既存会員による顧客の申請代行も認められていますが、RIPEほどスポンサーが多くなく、費用面でも有利ではありません。

ARINのASNは年額課金で、北米にネットワークがあることが求められます。LACNICとAFRINICはさらに遠い存在で、基本的に検討する必要はありません。

最終的に私はRIPEを選びました。申請しやすく、最も安かったからです。APNICでも申請できますが、より多くの書類が必要で、審査期間も長くなります。また、RIPEでは多くの設定を非常に使いやすいLIR Portalから操作できますが、APNICでは多くの設定をメールやチケットでしか処理できません。

手順

個人にとっては、スポンサーを見つけてASNを申請するのが最も費用を抑えられる方法です。

RIPEのASNスポンサーを検索すると、こうしたサービスを提供する人が見つかります。多くはホスティング事業者や小規模なネットワーク事業者、ネットワーク愛好家で、自らもRIPEの会員としてLIRアカウントを持っています。そのアカウントでASNやIPアドレスの申請を手伝ってくれ、通常は少額の年会費がかかります。

私のスポンサーはSoha Jinで、申請を手伝ってもらいました。提出からASNの発行までは、わずか1〜2日でした。

スポンサーに渡すものは多くありません。本人確認書類、住所、不正利用の通報(abuse)を受け取るメールアドレス、上流二社のASN、そしてネットワークがヨーロッパに拠点を持つ証明です。上流は申請時に記入するので、事前に見つけておく必要があります。私はヨーロッパのデータセンターにあるVPSを証明に使いました。

取得後、RIPEデータベースにはいくつかのオブジェクトが作成されます。aut-numはASNを表すオブジェクトで、ほかにmaintainer、連絡先、organisationも作成されます。後から情報を変更するときはmaintainerを使います。

ASNだけでは経路広告はできず、IPアドレスも必要です。一般に受け入れられるIPv4の広告は、最小のアドレスブロックが/24、IPv6では/48です。それより小さなアドレスブロックは、大半のネットワークでフィルタリングされます。IPv4は希少で高価なため、スポンサーは通常、IPv6のブロックを付けてくれます。私が取得したのは/44で、ASNとほぼ同時に割り当てられました。

上流プロバイダーを探す

管理機関への申請や支払いに加えて重要なのが、BGPセッションを提供する上流プロバイダーを見つけることです。ここを通じて自分のIPを広告します。私は当時、三社を見つけました。

一社目はVultrでは、クラウドサーバーでBGPセッションを無料で利用でき、相手側はVultrのプライベートASN(AS64515)です。前述のヨーロッパのVPSもここで契約し、申請時の拠点証明と最初の上流の両方に使いました。LOA以外の条件はほとんどなく、最初のIPトランジット事業者としてとても使いやすかったです。

二社目はMisaka Networkで、BGPセッションの開通には一度きりの開通費がかかり、およそ数十ドルでした。

三社目はBuyVMで、ここが最もお得でした。最も安いプランは2.5ドルだけで、無制限の通信量に無料のBGPセッションまで付いてきます。チケットを開いて申請するだけでよく、手動で追加するプレフィックスにはLOAを提出する必要があります。

BGPセッションを提供できる事業者はほかにもたくさんあり、ネット上にはbgp.servicesというリストもあります。BGPセッションを利用できるプランや、追加時の料金がまとまっているので、条件に合う事業者を探すときに参考になります。

BIRDで経路広告する

上流が決まったら、サーバーでルーティングソフトウェアを動かし、BGPセッションを確立します。このようなIPトランジットはVPS事業者から提供されることが多いので、Linux上でBIRD 2を使うのが便利です。

BASH
apt install bird2

まず、広告するアドレスをサーバー自身に設定します。サーバーが一台ならloに設定すればよく、外向きのネットワークインターフェースには設定しません。

BASH
ip addr add 2a0e:aa07:e0a0::1/128 dev lo

次に/etc/bird/bird.confです。以下はIPv6だけを広告する最小構成で、ネイバーアドレス、ASN、パスワードは上流から提供されるもので、ここではサンプル値を使っています。

TEXT
router id 203.0.113.10;

protocol device {
}

protocol static announce_v6 {
    ipv6;
    route 2a0e:aa07:e0a0::/44 reject;
}

protocol bgp upstream_v6 {
    local as 198734;
    neighbor 2001:db8:ffff::1 as 64515;
    multihop 2;
    password "your-password";

    ipv6 {
        import none;
        export where net ~ [ 2a0e:aa07:e0a0::/44+ ];
    };
}

protocol staticでは広告するプレフィックスを書き、rejectを指定すると、ルーティングテーブルにその経路を用意しつつ、実際の転送は行わないようにできます。protocol bgpでは、local asが自分のASNで、neighborが上流のアドレスとASNです。クラウドサーバーのセッションは通常multihopなので、上流が指定するパラメーターに従います。今回はプレフィックスを広告するだけで、上流の経路表を受け取る必要はないため、import noneにします。デフォルトルートやフルルートを受け取りたい場合はimportを変更し、protocol kernelを追加します。

変更後はBIRDを再読み込みし、セッションの状態を確認します。

BASH
birdc configure
birdc show protocols
birdc show route export upstream_v6

show protocolsでセッションの状態がEstablishedなら接続できています。show route exportで実際に上流へ送信されているルートを確認できます。接続できない場合は、ネイバーにpingが通るか、上流がmultihopを要求していないか、179番ポートがファイアウォールで遮断されていないかを確認してください。

上流は通常、プレフィックスに対応するIRRのroute6オブジェクトと、RPKIのROAも確認します。事前にRIPEで用意しておく必要がありますが、スポンサー提供のアドレスブロックなら、作成を依頼する必要があるかもしれません。

プレフィックスを広告した後、数時間もすればbgp.toolsで自分のASNを検索できるようになります。上流によっては伝播が遅く、数日待つ必要があることもあります。その後、これらのIPを調べると、先頭に表示されるのが自分のASNになります。

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...