Saya mencoba menemukan cara paling elegan untuk menerapkan filter RTBH untuk rute yang diterima dari pelanggan.
Filter harus:
- Hanya terima awalan yang dimiliki pelanggan dari daftar awalan
- Hanya menerima / 32 awalan
- Hanya awalan dengan komunitas lubang hitam
- Setel hop berikutnya ke RTBH hop berikutnya (192.0.2.1)
Untuk memulai, saya melihat dokumen " Mengkonfigurasi Kondisi Kecocokan dalam Ketentuan Kebijakan Perutean " dari Juniper.
Pertama saya berpikir tentang menggabungkan prefix-list-filter
hanya untuk mencocokkan rute dari daftar awalan pelanggan dan route-filter
untuk membatasi awalan yang diterima ke / 32, seperti:
from {
as-path customer;
community blackhole;
prefix-list-filter customer-prefixes orlonger;
route-filter 0.0.0.0/0 prefix-length-range /32-/32;
}
Tapi kemudian saya tersandung tentang informasi ini di dokumen:
Jika Anda mengonfigurasi kebijakan yang menyertakan beberapa kombinasi filter rute, daftar awalan, dan filter alamat sumber, mereka dievaluasi sesuai dengan operasi OR logis atau pencarian pertandingan rute terpanjang.
Seperti yang saya pahami ini (dan saya merasa agak tidak jelas), jika saya menggunakan prefix-list-filter
, route-filter
dan / atau source-address-filter
dalam istilah yang sama itu akan dievaluasi dengan pertandingan terpanjang OR antara mereka semua, yang membuat pendekatan ini tidak dapat digunakan .
Yang saya temukan adalah ini filter berikut. The hostroutes-only
jangka mengalihkan semua prefiks lebih pendek dari / 32 dengan kebijakan berikutnya. Setelah itu prefixes
istilah tersebut cocok jika / 32 dalam jangkauan pelanggan, cocok dengan as-path-nya dan memiliki komunitas blackhole yang ditetapkan:
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;
}
}
Jadi, apakah ini cara paling elegan untuk menangani ini? Ada solusi lain?