我正在尝试找到最优雅的方法来为从客户收到的路由实施RTBH过滤器。
过滤器应:
- 只接受客户自己的前缀列表中的前缀
- 仅接受/ 32前缀
- 仅黑洞社区的前缀
- 将下一跳设置为RTBH下一跳(192.0.2.1)
首先,我查看了瞻博网络的“ 在路由策略术语中配置匹配条件 ”文档。
首先,我考虑过组合一个prefix-list-filter
仅匹配来自客户前缀列表的路由和一个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并设置了黑洞社区:
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;
}
}
那么,这是处理此问题的最优雅的方式吗?还有其他解决方案吗?