JPNIC Blog JPNIC

そのサーバ、インターネットから到達できますか? ~インターネットからの到達性を確認する方法~

tech_team 

重要なWebサイトやゲームなどのサーバに対するインターネットからの到達性は、常に確保しておきたいものです。しかし広域のインターネットでは動的な経路制御が行われているため、サーバを公開した直後には到達できていても、ある時、あるネットワークからは到達できなくなることがあります。

なぜ到達できなくなってしまうのでしょうか。すぐに思いつく原因として回線やネットワーク機器の物理的な故障が挙げられます。回線が切れてしまったり、回線を収容しているネットワーク機器が故障してしまったりすると、当然のことながらユーザのIPパケットはサーバに到達することはできません。しかし、これらの障害は通信事業者や担当部門から報告されることが期待できるため、状況を把握しやすく対策を講じやすい要因であるといえます。

一方、広域のインターネットについてはそういうわけにはいきません。サーバのIPアドレスが含まれた経路情報が、どこか別の回線事業者で運用されているネットワークで存在しなくなる、もしくは本来と異なっていると、いくら回線状態が良くてもユーザのIPパケットはサーバに到達できない、すなわちアクセスできないということが起こります。

経路情報がなくなる事件はどれくらい起きているのでしょうか。インターネットの経路情報を調査しているDyn ResearchやBGPmonのブログなどを見ていると、海外では高い頻度で起きていることが分かります。国内ではJPNICで観測できるものは月に10件以上あります。ただしネットワーク機器のメンテナンスに伴って経路情報が変更されるような通常のものも含まれています。

Dyn Researchのツイート https://twitter.com/DynResearch
2016年6月から8月にかけてはシリアやイラクの大規模な経路情報の喪失がツイートされている。経路情報が失われた理由は、通信設備が破壊されたような深刻な事態の他に、受験問題が漏えいするのを未然に防ぐために政府機関がインターネットを使えないようにしたといった、にわかには信じがたいものもある。
Blog | BGPmon http://www.bgpmon.net/blog/
経路情報が失われることだけでなく、他のネットワークが使っているIPアドレスを使い始めてしまう”BGP hijacking”についてのリポートもある。

自組織のサーバのIPアドレスに対する経路情報が、インターネットで存在しているのかどうかを調べるには、RIPE NCCが運営しているRIPEstatと呼ばれるWebサイトが利用できます。予めIPアドレスが分かっていれば、閲覧しているWebサイトがどの通信事業者のネットワークに収容されているのか、そしてインターネットからの到達性がどれくらいあるのかを見ることもできます。

RIPEstat https://stat.ripe.net/
IPアドレスを入力して検索し、左側の「Routing」をクリックすると、インターネットの様々な箇所で経路情報を収集しているRRCで、そのIPアドレスの経路情報が「Visible」なのかどうかを調べることができます。RRCはRIPE NCCが運営している経路情報を収集するサーバで、インターネットの様々な場所に設置されています。

下記はJPNIC Blogのサーバが含まれているIPアドレスを検索した結果です。経路情報が欠けることなく観測されていることが分かります。

Copyright (c) 1992-2016 the Réseaux IP Européens Network Coordination Centre RIPE NCC. All rights restricted

経路情報がなくなったり、おかしな経路情報がインターネットに流れたりした時に気づくためにはどういう方法があるのでしょうか。海外のものにはBGPmonのサービスがあります。ユーザを登録すると限られた数の経路情報を監視することができます。国内で利用できるものとして、JPNICでは二つの方法を提供しています。

  • 経路奉行 ― JPIRRのroute objectにメールアドレスを記述しておく方法
    JPNICでおかしな経路情報が観測された時には登録されているメールアドレスに通知が送られます。
    (詳細:https://www.nic.ad.jp/doc/jpnic-01077.html#3
  • ROA ― 本来の経路情報をROAとして登録しておく方法
    対応したBGPルータなどで経路情報をチェックするために利用できます。国際的に普及が始まっている方式で、国内外の多くの箇所で経路情報をチェックするために使うことができます。
    (詳細:https://www.nic.ad.jp/ja/rpki/howto-usepubcache.html

ROAが登録されているかどうかを確認できるように、下記のWebサイトを公開しています。

RPKI Validator (日本語版) http://roa2.nic.ad.jp:8080/bgp-preview
RPKI ValidatorはRIPE NCCで開発されたソフトウェアです。RIPE NCCの了承のもとJPNICで試験的に日本語版を作成しました。※URLは今後変更することがあります。

IPアドレスを入力するとROAと経路情報を比較した結果が表示されます。具体的には、ROAに対応したBGPルータにおいてどのように見えるかについてRRCを使って再現しています。

RPKI Validatorでは、ROAに記載されている本来の経路情報とRRCによって収集された経路情報を比較しています。ROAに記載された通りの経路情報があれば「Valid」、ROAの記載と違う経路情報があれば「Invalid」、ROAの記載はあっても該当する経路情報が見つからない場合には「Unknown」となります。

RPKI ValidatorはRRCによって蓄積された経路情報を、定期的にダウンロードしているため、最終更新日が画面に表示されます。またピア先(接続先)が多いほど、インターネットの主要な箇所であることがわかります。その地点からのVisibilityは、より広範囲からの到達性に影響することになります。

210.173.160.0/19や203.178.128.0/17と入力すると「Valid」と表示されます。これはROAが登録済で、しかもインターネットで観測されている経路情報と一致していることを意味しています。「5より多くのピア先」の観測ですので、インターネットの狭い範囲からではなく、比較的広域のインターネットから到達性があると考えられます。

2001:7fb:ff03::/48(RPKI Validatorの例)を入力すると、ROAに対応した経路情報がないため「Unknown」と表示されます。ROAは登録されていても、実際には経路情報が存在しないケースです。将来的に現れる経路情報を予めROAとして登録されたものである可能性もあるため、静観しておいても問題ありません。

93.175.147.0/25(RPKI Validatorの例)と入力すると「INVALID ASN」と表示されます。これは本来とは異なるネットワークでIPアドレスが使われていることを示しています。この例は、ネットワーク機器を不適切に操作してIPアドレスを勝手に使い、本来のネットワークへの到達性を奪っているようなケースではなく、RPKI Validatorでこの表示が出ることを見込んであえて設けられたアドレスです。

IPアドレスを入力しても、「No matching records found」と表示される場合にはROAが存在していないことを示しています。ROAがないと本来の経路情報が分からないため、インターネットで存在すべき経路情報があるかどうかの判定を行うことができません。

アクセスしているWebサーバが、ROAとして登録されているIPアドレスの範囲に入っているかを簡単に確認できるFirefoxのAdd-onがあります。

RPKI Validator :: Add-ons for Firefox https://addons.mozilla.org/ja/firefox/addon/rpki-validator/

下記を設定するとJPNICで発行されたROAにも対応できます。

Validation server URL:http://roa2.nic.ad.jp:8080/api/v1/validity/

Cache server hostname: 192.41.192.218

WebサーバのIPアドレスがROAとして登録されていると下記のように地球のマークが緑になります。経路情報がおかしい場合には赤、ROA登録がされていない場合にはオレンジになります。

ROAを登録するにはどうすればいいでしょうか。JPNICのIPアドレスの申請で使われている電子証明書の発行を受けていて、インストールされている場合は、そのWebブラウザで下記のWebサイトにアクセスするとROAの登録ができます。電子証明書がインストールされていない場合や、入手方法をお知りになりたい場合、またROAの詳細などにつきましては下記までお問い合わせください。

JPNIC RPKIシステム 図:ケーロちゃん
https://rpki.nic.ad.jp/

お問い合わせ先 JPNIC RPKI担当
rpki-query at nic.ad.jp

インターネットからサーバへの到達性が失われる要因は色々と考えられますが、インターネット上に正しい経路情報がなければIPパケットが転送されてくることはありません。この機会に、経路奉行やROAの登録をご検討いただければと思います。