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-filterhanya untuk mencocokkan rute dari daftar awalan pelanggan dan route-filteruntuk 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-filterdan / atau source-address-filterdalam 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-onlyjangka mengalihkan semua prefiks lebih pendek dari / 32 dengan kebijakan berikutnya. Setelah itu prefixesistilah 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?