ฉันกำลังพยายามหาวิธีที่หรูหราที่สุดในการใช้ตัวกรองRTBHสำหรับเส้นทางที่ได้รับจากลูกค้า
ตัวกรองควร:
- ยอมรับเฉพาะคำนำหน้าของลูกค้าจากรายการนำหน้าเท่านั้น
- ยอมรับคำนำหน้า / 32 เท่านั้น
- เฉพาะคำนำหน้ากับชุมชน blackhole
- ตั้งค่า next-hop เป็น RTBH next-hop (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;
}
แต่แล้วฉันก็สะดุดเกี่ยวกับข้อมูลนี้ในเอกสาร:
หากคุณกำหนดค่านโยบายที่มีการรวมกันของตัวกรองเส้นทางรายการคำนำหน้าและตัวกรองที่อยู่ต้นทางนโยบายเหล่านั้นจะถูกประเมินตามการดำเนินการทางตรรกะหรือการค้นหาเส้นทางที่ยาวที่สุด
ตามที่ผมเข้าใจ (และฉันคิดว่ามันเป็นบิตชัดเจน) ถ้าผมใช้prefix-list-filter
, route-filter
และ / หรือsource-address-filter
ในระยะเวลาเดียวกันก็จะได้รับการประเมินที่มีความยาวที่สุดในการแข่งขันหรือระหว่างทั้งหมดของพวกเขาซึ่งทำให้วิธีนี้ใช้ไม่ได้
สิ่งที่ฉันคิดไว้คือตัวกรองต่อไปนี้ hostroutes-only
ระยะธารคำนำหน้าทั้งหมดที่สั้นกว่า / 32 นโยบายต่อไป หลังจากนั้นprefixes
คำนั้นตรงกันหาก / 32 อยู่ในช่วงของลูกค้าตรงกับ as-path ของเขาและมีชุมชน blackhole ตั้ง:
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;
}
}
ดังนั้นนี่เป็นวิธีที่ดีที่สุดในการจัดการกับสิ่งนี้หรือไม่? ทางออกอื่น ๆ