WLLAOMNI

 「だぶりゅーえるえるえーおむに」、と私が勝手に読むことにしている、「WLLAOMNI」ですが、これはBGPタイブレーク条件の頭文字を上から並べただけの文字列です。全く覚えやすさのかけらもないのですが、私はこれで強引に暗記しました。一番上の「W」は一部メーカー特有の一番強いタイブレーク条件なので、使用する機器メーカーによっては考慮しなくて良くなります。

 複数のルーターでWAN側をeBGPで冗長して、そのルーター間も直接接続するかLAN側のL2接続でiBGPで結んで、WANやLANの一系断に耐えうるようにしてある、運用中のネットワークを引き継いで設計し直す時や、そのトラブル相談などを受けたりすると、ルートの優劣の決定に主としてMEDを使用するようにつくられた設計をよく目にします。

 私自身はMEDをBGPルートの優劣を付けるのに使うことは避けるようにしています。何故ならタイブレークの6番目とかなり下位条件での比較になるので、その手前に5つものタイブレークが破られないと、比較されない(もちろん、ASを越えられないとか、異なるASから受信した同一ルートについて、優劣比較にMEDは考慮されませんので、常にMEDを評価する、という設定を入れておかないといけない、とかもありますが)ということから、想定外の、設計した意図と異なるベストパス選択が起こってしまう可能性は高いからです(あくまで個人の経験上。いわゆる当社比較)。

 実際、運用中にトラブっていたり、LAN側にFWを挟んだら、非対称ルーティングが許されなくなったことで、長時間の通信断を発生させてしまったり、という設計相談に巻き込まれてみると、多くの場合、1番目の「W」Weightと、3番目の「L」Loal Originate、後は稀にですがなくはない、5番目の「O」Origin Codeのタイブレークに引っかかってしまい、MEDの比較をする前にタイブレークされてしまっていて、設計者が意図した冗長設計になっていない(運用担当者が引き継いだ冗長設計にならない)、LAN側にFWなどを挟んで非対称ルーティングが許容されなくなってから、ある箇所の故障時、ある故障からの復旧時に、そもそも想定していたものとは異なるルーティングになってしまって、大きな障害になってしまっている、そんなことに、こちらもよく遭遇します。

 BGPのルートについて、優劣の操作が必要なネットワークの設計をする場合は、極力MEDを使用するのは避けた方が良い、というのが個人的な意見、個人的な経験則から得た推奨です(これもいわゆる当社比ですが)。まして、閉域網といっても、最近は一つのASのみで構成されている閉域網の方が珍しいので、そもそもMEDが閉域網全体に伝播するとは限りません。BGPでルートの優劣を操作する場合は、基本的に出来るだけ上のタイブレークで優劣を決めるような設計にする、具体的には、2番目の「L」Local Preferenceを受信ルートに使用、4番目の「A」AS-PATH Lengthを広告ルートに使用し、それらのみで操作する方が良いと思っています(トラブルシューティングもシンプルになりますし)。

 1番目の「W」Weightは、特定のメーカーで使用される、BGPタイブレークであることと、おそらくは一番市場に出回っているルーターのメーカーで、この値は、3番目の「L」Local OrignateがTrueの場合に32768というかなり高い値が付与されてしまう仕様になっており、むしろ逆に、これを0にするような対策を施して、基本的に使用しないようにすらした方が良いと思っています(もちろん、こちらもいわゆる当社比)。

 どうやってもそのBGPルートは優先されないのだけれど、どうしても優先したい、という時に、Weightが急に、それこそ必殺技的に、役に立ったりするので、最後の最後まで使わずに取っておくのがお勧め、というのもあります。