AS_PATHプリペンド

読み:えーえすぱすぷりぺんど / 英語表記:AS_PATH prepending

BGPで経路を広告するときに、AS_PATH属性に自分のAS番号をわざと複数回付け加えて、経路を長く見せる手法。相手のASに、その経路を選ばれにくくし、通信の入口を制御する。

イマシルちゃんの解説

BGPのルータは、道を選ぶとき、「通ってきた国(AS)の数が少ない道」を優先するんだ。

そこで、使ってほしくない道のほうには、自分の国の名前を何回も書いて、「この道は遠いよ」って見せかけるんだよ。
すると、相手はもう一方の近く見える道を選んでくれる。
本当は同じ距離なのに、ちょっとした演出で、通ってほしい道をお願いできるんだ!

より深い解説

定義

AS_PATHは、BGPの経路情報に含まれるパス属性の1つで、その経路が通ってきたASの番号の並びを表す。BGPのルータは、ほかの条件が同じなら、AS_PATHの短い経路を優先する。AS_PATHプリペンドは、経路を広告するときにAS_PATHの先頭に自分のAS番号を余分に追加して、AS_PATHを長くする設定である。

例

AS 65001 が、2本の回線(ルータR1、R2)で、相手のASと接続している場合

広告するルータ広告するAS_PATH長さ
R1(主回線)650011
R2(副回線)65001 65001 650013

相手のASは、AS_PATHが短いR1からの経路を選ぶ。R1との接続が切れると、R2からの経路だけが残るため、R2が使われる。このように、副回線として使いたいルータからの広告のAS_PATHを、主回線より長くすることで、主・副の関係を作れる。

「出口」と「入口」の制御

制御したいもの主な方法
自分のASから出ていく通信の経路LOCAL_PREF(自AS内で、どの出口を優先するかを決める)
相手のASから自分のASに入ってくる通信の経路AS_PATHプリペンド、MED

AS_PATHプリペンドは、自分では直接決められない「相手からの通信がどちらの回線を通るか」に影響を与えるための手段である。ただし、最終的にどの経路を選ぶかは相手のASのポリシー次第であり、相手がLOCAL_PREFなどで別の判断をすれば、意図どおりにならないこともある。

経路選択の主な順序(一般的な実装)

  1. LOCAL_PREF が大きい
  2. AS_PATH が短い
  3. ORIGIN の種類
  4. MED が小さい
  5. eBGP の経路を iBGP より優先
  6. ネクストホップまでのIGPのコストが小さい

AS_PATHの長さは、LOCAL_PREFの次に比べられる、影響の大きい属性である。

午後での問われ方

「通常は一方のルータで通信し、使えないときはもう一方を使う」という冗長構成で、副系のルータが広告するAS_PATH長を、主系と比べてどうするかが問われる。答えは、副系のほうを長くする、である。

実際の試験ではここに出る!

この用語が出てくる記事

↑