私は、顧客から受け取ったルートにRTBHフィルターを実装する最もエレガントな方法を見つけようとしています。
フィルターは:
- 接頭辞リストから顧客自身の接頭辞のみを受け入れる
- / 32プレフィックスのみを受け入れる
- ブラックホールコミュニティのプレフィックスのみ
- ネクストホップをRTBHネクストホップに設定する(192.0.2.1)
はじめに、ジュニパーの「ルーティングポリシー条件の一致条件の構成」ドキュメントを確認しました。
まず、次のように、a prefix-list-filter
を組み合わせて、顧客のプレフィックスリストからのルートのみを一致させ、a route-filter
を受け入れてプレフィックスを/ 32に制限することを検討しました。
from {
as-path customer;
community blackhole;
prefix-list-filter customer-prefixes orlonger;
route-filter 0.0.0.0/0 prefix-length-range /32-/32;
}
しかし、それから私はこの文書でこの情報につまずきました:
ルートフィルター、プレフィックスリスト、および送信元アドレスフィルターのいくつかの組み合わせを含むポリシーを構成する場合、それらは論理OR演算または最長ルート一致検索に従って評価されます。
私がこれを理解している(そしてそれが少し不明確であると思う)場合、を使用するとprefix-list-filter
、route-filter
および/またはsource-address-filter
同じ用語で、それらすべての最長一致ORで評価されるため、このアプローチは使用できなくなります。
私が思いついたのはこれが次のフィルターです。このhostroutes-only
用語は、/ 32より短いすべてのプレフィックスを次のポリシーに転送します。その後prefixes
、/ 32が顧客の範囲内にある場合、用語は一致し、彼のas-pathに一致し、ブラックホールコミュニティが設定されます。
term hostroutes-only {
from {
route-filter 0.0.0.0/0 prefix-length-range /0-/31;
}
then next policy;
}
term prefixes {
from {
as-path customer;
community blackhole;
prefix-list-filter customer-prefixes orlonger;
}
then {
next-hop 192.0.2.1;
accept;
}
}
それで、これはこれを処理する最もエレガントな方法ですか?他の解決策はありますか?