在部署边缘路由器的时候会做一些路由的过滤,比如具体的IP地址,不同的community值等等。借助下面这个最简单的拓扑,我们来做两个路由过滤的实验:

1.给一个静态路由打上tag标签,基于这个标签添加community属性。

2.根据特定的community属性,对端设备将其放入黑洞。


BGP路由过滤_JUNIPER

    首先我们在本地创建两条静态路由,10.10.8.0/24这条路由添加tag 666的属性。discard和reject的区别在于对于icmp包的处理方式不同,前者静默丢弃,后者会返回一个ICMP destination host UNreachable的消息。为了脚本能够少写一行,我们这里采用discard。BGP路由过滤_路由过滤_02


JUNOS里面我们使用路由策略来更改协议的默认行为。新建一个路由策略有两个主要步骤:

1:配置策略:策略过程+终结动作

2:应用策略

首先我们先编辑term 008:

策略过程(匹配条件): 来自“tag 666”

终结动作:community add 005(005需要单独自定义)

BGP路由过滤_BGP_03

BGP路由过滤_BGP_04


同理,编辑term 005:

匹配条件:这里使用了路由过滤来精确匹配10.10.5.0/24网段

动作:community add 005

BGP路由过滤_路由过滤_05


同一个路由策略下面会有多个匹配项,我们就可以定义多个term,执行顺序依次由上往下。我们可以使用insert命令来进行不同term的顺序调整。


R1上OUTPUT方向的策略制定完毕,接下来我们配置在R2的INPUT方向的策略,将带有community 100:5属性的路由拒绝掉。

BGP路由过滤_VMX_06


然后将这两个路由策略分别应用到BGP里面。


检查下应用前的R2上的BGP路由:

BGP路由过滤_VMX_07

应用后的R2路由:

BGP路由过滤_VMX_08


有两条路由被隐藏了。查看下隐藏的路由的detail:

BGP路由过滤_路由过滤_09

BGP路由过滤_VMX_10

BGP路由过滤_路由过滤_11

显然import policy的限制导致了路由的被隐藏。