Vyattaで経路制御①(Prefix-listで経路フィルタ)
network Vyatta
Published: 2011-07-04

IHAnet関連で、Vyattaの経路制御を試しているので少しずつメモ書きします。多分あってるんじゃないかなー。BGPでの経路制御は一つの目的でも色々なやり方があるので、これが正しいとは限りません。

フィルタしたい経路用のPrefix-listを作成する

PeerとのBGPがestablishになると、ルーティングテーブル上にPeerが広告した経路が載ってきます。なんでも載せられてしまうと自身のルーティングテーブルがおかしくなってしまうので、広告されるはずのない経路は受け取らないようにします。

まずは、受け取りたくない経路をdenyする為のprefix-listを作成し、ルール番号をずらしながら登録していきます。Prefix-listは暗黙のDenyが存在するので、Rule999のようにpermitしたい物を明示します。Ciscoと比べると縦長で一覧性が悪いです。。。

  • Rule10:デフォルトルート
  • Rule20:ループバック、未指定、予約等を一括指定
  • Rule30:リンクローカル
  • Rule40:元サイトローカル
  • Rule50:ユニークローカル
  • Rule60:マルチキャスト
  • Rule70:文章用空間
  • Rule80:自ASが広告している経路
  • Rule999:上記Ruleにmatchしなかった経路

作成したprefix-listをPeerに関連付ける

下記の様に各Peerごとにprefix-listを関連付けてもいいのですが、Peerが増えるたびに同じ設定しなければなりません。今はinのprefix-listだけなので簡単ですが、一つのpeerに対して、outのprefix-listやas-path-list、route-mapなど様々な経路制御を設定するようになると、設定作業が煩雑になります。

これは運用的にイマイチなので、peer-groupの設定を利用します。peer-groupを利用すると、フィルタが設定されたpeer-groupにpeerを追加だけで、そのpeerに全経路フィルタが適応されるようになります。下記の例は、IHAnetというpeer-groupを作り、先程作成した「Special-Use-prefix」を関連づけています。line25の部分です。

このpeer-groupに、各Peerを追加すれば設定終了なのですが、どうもうちのVyattaでは設定出来ないらしい。下記の通り、Peerの設定項目にPeer-groupが出てこない。

下記のコマンドでpeerとpeer-groupを関連づけると、IPv4のBGPにpeer-groupの設定が反映されてしまって意味がありませんでした。

仕方がないので、Vyatta経由ではなくQuaggaで直接peerを追加します。Ciscoのままなので簡単です。

動作確認

こうする事で、IPv6でpeer-groupが利用可能になります。実際にSpecial-Use-prefixが適応されている事がline11で確認できます。試しにSpecial-Use-prefixのrule90に、peerが広告するprefixを追加してみた所、peerから経路を受け取れなくなりましたので、ちゃんと動いているようです。