Bir müşteriden alınan rotalar için bir RTBH filtresi uygulamak için en zarif yolu bulmaya çalışıyorum .
Filtre:
- Müşterilerin yalnızca önek listesinden kendi öneklerini kabul et
- Yalnızca kabul et / 32 önek
- Yalnızca kara delik topluluğuna sahip önekler
- Sonraki sekmeyi RTBH sonraki sekmesine ayarla (192.0.2.1)
Başlamak için Juniper'ın " Yönlendirme Politikası Şartlarında Eşleşme Koşullarını Yapılandırma " belgesine baktım .
İlk olarak prefix-list-filter
, yalnızca önek listesinden gelen yolları eşleştirmek route-filter
için ve kabul edilen önekleri / 32 ile sınırlamak için birleştirmeyi düşündüm :
from {
as-path customer;
community blackhole;
prefix-list-filter customer-prefixes orlonger;
route-filter 0.0.0.0/0 prefix-length-range /32-/32;
}
Ama sonra belgede bu bilgiler hakkında tökezledim:
Rota filtrelerinin, önek listelerinin ve kaynak adres filtrelerinin bazı birleşimlerini içeren bir ilke yapılandırırsanız, bunlar mantıksal bir OR işlemine veya en uzun yol eşlemesi aramasına göre değerlendirilir.
Ben bunu anlamak (ve belirsiz biraz bulmak) Ben kullanırsanız olarak prefix-list-filter
, route-filter
ve / veya source-address-filter
aynı dönemde bir en uzun maçı ile VEYA bu yaklaşım yapar hepsi arasında değerlendirilecektir kullanılamaz .
Ne geldi bu şu filtre. Bu hostroutes-only
terim, / 32'den kısa olan tüm önekleri bir sonraki politikaya yönlendirir. Bundan sonra prefixes
, / 32 müşteri aralığındaysa , terim kendi yoluyla eşleşir ve kara delik topluluğuna sahipse terim eşleşir:
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;
}
}
Peki, bununla başa çıkmanın en zarif yolu mu? Başka çözüm var mı?