ジュニパーネットワークス向けのBGPリモートトリガーブラックホール(RTBH)フィルター


9

私は、顧客から受け取ったルートにRTBHフィルターを実装する最もエレガントな方法を見つけようとしています。

フィルターは:

  1. 接頭辞リストから顧客自身の接頭辞のみを受け入れる
  2. / 32プレフィックスのみを受け入れる
  3. ブラックホールコミュニティのプレフィックスのみ
  4. ネクストホップを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-filterroute-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;
    }
}

それで、これはこれを処理する最もエレガントな方法ですか?他の解決策はありますか?

回答:


8

お客様をブラックホール/ 32のみに制限する理由はありません。お客様からのブラックホールをすべてブラックホールに許可します。

このようなもの:

policy-statement AS42-IN {
    term blackhole {
        from {
            community BLACKHOLE;
            prefix-list-filter AS42 orlonger;
        }
        then {
            community add NO-EXPORT;
            next-hop 192.0.2.1;
            accept;
        }
    }
    term advertise {
        from {
            prefix-list AS42;
        }
        then {
            community add ADVERTISE;
            next-hop peer-address;
            accept;
        }
    }
    term reject {
        then reject;
    }
}

BGP設定で 'accept-remote-nexthop'を設定して、ネクストホップをリンクアドレス以外に変更できるようにしてください。

また、プロバイダーが「完全なブラックホール」以外のさまざまなブラックホールコミュニティのサポートを開始することを強く支持します。特に、複数の国で運用している場合、通常、攻撃はトランジットによるものであり、顧客は実際にはほとんど国内のピアリングにアクセスすることを望んでいるため、いくつかのレベルのブラックホールを実装すると便利です。

  1. フル
  2. 現地国外(現地IXP、自社全体のAS +顧客が見られる)
  3. ローカルエリア外(私の場合、「Nordics」のように該当する場合)
  4. ブラックホールに特定のピアリングルーターを含める/除外する

ピアリングルーターがJNPRである場合、JNPR DCU / SCUでこのようなものを実装する方法の例を紹介できてうれしいですが、コミュニティだけでも可能で、少し厄介です。


顧客のオプションを絶対に制限したい場合は、これを追加できます。

policy-statement /32 {
    term /32 {
        from {
            route-filter 0.0.0.0/0 prefix-length-range /32-/32;
        }
        then accept;
    }
    term reject {
        then reject;
    }
}

policy-statement AS42-IN {
    term blackhole {
        from {
            community BLACKHOLE;
            policy /32;
            prefix-list-filter AS42 orlonger;
        }
..
}

このように、それは論理ANDでなければなりません。しかし、構成の表現力を減らすために複雑さを作成することの価値は、実際にはわかりません。


お返事ありがとうございます。顧客が自分のスペースの大部分をブラックホール化してほしくないのは、主に彼らが足で自分自身を撃っているからです。'accept-remote-nexthop'については、ポリシーフィルターでネクストホップを私たちの側で変更したので、セッションでそれを有効にする必要はありません。
Sebastian Wiesinger 2013年

私たちは誰も「罰せない」わけではありません。より大きなプレフィックスをブラックリストに登録したい場合は、確かにそれを要求できます。ここ数年、誰もそれを要求しませんでした。
Sebastian Wiesinger 2013年

表現力を低下させるために、追加の問題が発生し、複雑さが増しています。これを提供したことがない場合、顧客が/ 32より大きなネットに誤ってブラックホールコミュニティを追加することをどのようにして知っていますか?偶然にも、私たちがベンダーに機能を要求すると、彼らは「誰もそれを要求したことはありません」と答え、コミュニティと話すと、そのような機能を求めている人がたくさんいます。とにかく、この制限を実装する方法についての提案を追加しました。
ytti、2013年

あなたの例では、ブラックホールなしではプレフィックスをまったく受け入れないことに気づきました。つまり、通常のトラフィック用とブラックホール化用の2つのピアリングがあり、ブラックホール化はおそらくマルチホップです。マルチホップでは、ネクストホップチェックはすでにオフになっているため、「accept-remote」は必要ありません。 -nexthop '。私の例は、同じ構成の両方のBGPピアリングをカバーしています。これはマルチホップのない直接PE <-> CEなので、「accept-remote-nexthop」が必要です。
ytti 2013年

はい、そうです。ダイレクトセッションで必要です。フィルターは両方の状況で機能するはずです。PE<-> CEシナリオでは、フィルターを背後にある他のフィルターポリシーと連鎖させます。
Sebastian Wiesinger 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.