8月25日の通信障害を受け、あらためて「経路制御の精神」を見直してみた
tech_team インターネットの技術2017年8月25日に起きたネットワーク障害はインターネット経路制御の仕組みの性質を再認識させられる出来事でした。 これをきっかけとしてインターネット経路制御について、 あらためて考えてみました。
インターネットが繋がる仕組み
インターネットでは、 その構成が変わっても通信経路を動的に変更し通信路が維持される仕組みであるBorder Gateway Protocol (BGP)が使われています。 BGPは、通信事業者を含めた、 さまざまなネットワークのネットワーク機器同士が経路情報(IPアドレスを含むネットワークの情報)を相互に交換するプロトコルです。 パケットをどこに転送するのかを決めるための処理である経路制御が行われています1。
BGPを使った経路制御の仕組みには、 常に経路情報を送りあうことでネットワークの一部に問題が起きても自動的に迂回路ができるという機能があります。 それと同時に、 誤った経路情報が伝搬していくことを自動的に止める事が難しいという側面もあります。 ネットワーク機器は、2017年9月現在、 65万行前後となっている経路情報に対して、 どの経路情報が運用者の意図通りの正しい経路情報で、 どの経路情報が運用者の意図と異なるものであるかを判断する事が難しいためです。
相互信頼で支えられる経路制御
インターネット経路制御における問題への対処の考え方には、 グローバルなネットワークであるがゆえに特有のものがあります。 まず、世界中のネットワーク機器が誤った経路情報を出さないようにするというのは、 世界中の運用者の人が、 IPアドレスの打ち間違いのような単純なものを含めて間違いをしないようにするというのと同様に、 現実的ではありません。 もちろん経路制御が意図通りに行われるように留意はするとして、 「特定の事業者で間違いが起きないようにしよう」という考え方ではなく、 「問題は起きたけれども影響を少なくできた、 そうでない問題については新たな対策を導入しよう」といった考え方なのです。
インターネット経路制御は、経路情報のフィルタリングなどを通じて、 ネットワーク同士が適切に経路情報を交換する事で成り立っています。 平常時には、障害になりそうな経路情報をネットワーク機器で受け取らない、 もしくは利用しないようにしておくという予防策を中心に対策が取られています。 問題が起きたときには、 その原因となる経路情報をいち早く見つけると共に情報共有し、 それぞれのネットワークで影響を最小化する、という考え方で対処されます。
インターネット経路制御の運用は、 各ネットワークが自律的にかつ相互に予防策を取って、 助け合うことで成り立っています。 障害が起きたときの対策活動のみならず、平常時の予防策も、 特定のネットワーク機器で行われればいいものではなく、 経路フィルターや後述するROA (Route Origin Authorization)の利用についても、 多くのネットワークで利用されるほど、大きな効果を発揮すると言えます。
トラブルを見つける仕組みも用意
インターネット経路制御に起きた問題を知る方法には、いくつかあります。 まずBGPによるネットワークを運用している方は、 ネットワーク機器の経路表を定期的に観測し、 異常があれば通知する事が考えられます。 観測の対象は、経路数の増減、特定のネットワークの経路(ASパス)の変化、 経路広告元のAS番号が正しいかどうか、IPプリフィクスの変化などです。
各ネットワークにおける観測を自動化する仕組みもあります。 IPアドレスが他のネットワークで誤って使われてしまう問題については、 経路奉行2や、ROA (Route Origination Authorization)3を使って検知する事ができます。 特定のネットワークに到達するまでのASパスの変化の異常を発見するには、 BGPsec4におけるASパス検証を応用する事が考えられますが、 こちらはまだ実用の段階にはなっていません。
ネットワーク機器の運用をしていない方でも経路情報の観測を行うさまざまなサービスを使う事で問題の発生を知ることができます5 6 7。 他に通信事業者の中には経路情報の観測サービスを行っているところがあります。
解決は人のネットワークで
インターネット経路制御において起こる問題にはさまざまなものがあります。 問題が起きたときの影響を小さくするためには、 ルータの性能も重要になってきます。 経路情報の変化量が大きい時に処理が追い付かないと、 復旧までに時間がかかる事になります。 これを避けるためには経路情報の変化に対して十分な性能を持つルータを導入する事も予防策であると言えます。
予防策を取っていても別の問題が発生する事があるため、 発生したときに連携して情報交換し対策を取るというやり方になります。 一般的にはネットワーク運用者同士の情報交換と対策が解決に結びつきます。 ネットワークオペレーターのミーティングに参加して、 顔見知りになっておく事も重要です。
「グローバルにつながる」ことが意味することは ~インターネット利用の心構え~
インターネット経路制御における問題は、 特定のオンラインサービスの障害とは異なり、 問題の性質や解決の仕方が特有です。 グローバルなネットワークであるため、 特定の事業者が対策を取ればいいというものではありません。 多くのネットワークにおいて対策を取ることで、 インターネット全体の耐障害性を大きく向上させることができます。 インターネットの利用者をはじめ、多くの方がこの事を理解し、 問題に素早く対処できるように技術面と運用面の整備を図っていく事が重要であると考えられます。
- 1 インターネット10分講座:BGP
- https://www.nic.ad.jp/ja/newsletter/No35/0800.html
- 2 一般社団法人ICT-ISACが開発・運用し、JPNICが協力しているJPNICが運営する経路奉行について
- https://www.nic.ad.jp/ja/ip/irr/jpnic-keirobugyou.html
- 3 ROAの作成と管理の方法
- https://www.nic.ad.jp/ja/rpki/howto-create-roa.html
- 4 BGPsecとは
- https://www.nic.ad.jp/ja/basics/terms/bgpsec.html
- 5 Dyn – Monitoring & Analytics
- https://dyn.com/monitoring-analytics/
- 6 BGPMON – Route Monitoring
- https://bgpmon.net/services/route-monitoring/
- 7 RIPE stat
- https://stat.ripe.net/