在对BGP进行路由控制之前,我们先复习复习路由控制的几种选路工具
acl 2000 //创建ACL编号2000
rule 0 permit source 1.1.0.0 0.0.255.255 //匹配规则permit(通过)/deny(拒绝),通过1.1.0.0/16
ip ip-prefix name permit 192.168.1.0 24 greater-equal 25 less-equal 32
通过全互联将AR1上的11.1.1.1和11.1.1.2宣告,使得AR3上的路由如下图所示:
通过将AR1上11.1.1.1到AR3上的路由修改MED值为1000,观察AR3上路由和上图会发生何种差异
[AR1]ip ip-prefix 11.1 permit 11.1.1.1 32
[AR1]route-policy MED permit node 10
[AR1-route-policy]if-match ip-prefix 11.1
[AR1-route-policy]apply cost 1000
[AR1-bgp]peer 13.1.1.3 route-policy MED export
先通过前缀列表抓住11.1.1.1,然后通过路由策略调用该前缀列表,最后在bgp中调用该路由策略,并指明路由的方向为出方向。
PS:通过查看BGP路由表可知,MED属性越小越优,那么11.1.1.1的路由最优则为下一跳为2.1.1.1的,表中现象正常,但是11.1.1.2的下一跳13.1.1.1为何没有了呢
ACL、IP-Prefix、Route-Policy末尾都是拒绝所有,所以在抓取某些特定前缀时,末尾加上允许其他即可
正确写法:
[AR1]ip ip-prefix 11.1 permit 11.1.1.1 32
[AR1]route-policy MED permit node 10
[AR1-route-policy]if-match ip-prefix 11.1
[AR1-route-policy]apply cost 1000
[AR1]route-policy MED permit node 1000
[AR1-bgp]peer 13.1.1.3 route-policy MED export
查看11.1.1.1的详细描述,查看路由不优的原因为MED
AR3上未修改LP时的路由信息
我们通过更改AR3上的LP值来查看AR2上的路由情况
[AR3-bgp]default local-preference 200
AR1上创建环回口 2 3 5 6 地址分别为1.1.2.1 1.1.3.2 5.5.5.5 6.6.6.6并宣告
AR1和AR2建立邻居
[AR2]route-policy rp permit node 20
[AR2-route-policy]if-match ip-prefix pref2
[AR2]ip ip-prefix pref2 deny 6.6.6.6 32
查看AR2上的BGP路由表,未将6.6.6.6干掉
PS:原因在于,ACL和IP前缀列表的permit和deny仅为匹配和为【匹配,并非允许和通过,这样,在当前环境中IP-prefix未匹配6.6.6.6,也就不会将6.6.6.6路由干掉,如下图:
我们在AR2上将策略路由import
[AR2-bgp]peer 12.1.1.1 route-policy rp import
末尾隐含拒绝所有,BGP路由表为空
我们在末尾加上permit
[AR2]route-policy rp permit node 50
AR1上抓起6.6.6.6并打上community100:1标记
[AR1]route-policy comm permit node 10
[AR1-route-policy]if-match ip-prefix 6.6
[AR1-route-policy]apply community 100:1
[AR1]route-policy comm permit node 1000
[AR1]ip ip-prefix 6.6 permit 6.6.6.6 32
[AR1-bgp]peer 12.1.1.2 route-policy comm export
AR2上查看并没有打上100:1的标记,原因在于COMM默认是不传递的,可选传递属性,必须针对peer x.x.x.x advertise-community
[AR1-bgp]peer 12.1.1.2 advertise-community
AR2上有这个标记后,就可以通过community-filter 将这条带有标记的路由匹配
[AR2]ip community-filter 1 permit 100:1
[AR2]route-policy pre-val permit node 10
[AR2-route-policy]if-match community-filter 1
[AR2-route-policy]apply preferred-value 100
[AR2-route-policy]route-policy pre-val permit node 100
[AR2-bgp]peer 12.1.1.1 route-policy pre-val import
[AR1]ip ip-prefix 5.5 permit 5.5.5.5 32
[AR1]route-policy no-adv permit node 10
[AR1-route-policy]if-match ip-prefix 5.5
[AR1-route-policy]apply community no-advertise
[AR1-route-policy]route-policy no-adv permit node 100
[AR1-bgp]peer 12.1.1.2 route-policy no-adv export
[AR1-bgp]peer 12.1.1.2 advertise-community
no-advertise属性,AR3和AR4上应该没有5.5.5.5的路由
AR2发送ORF报文到AR1,告诉AR1,我只需要10.1.1.1,其余都不需要
[AR2]ip ip-prefix 1.1 permit 10.1.1.1 32
[AR2-bgp]peer 12.1.1.1 ip-prefix 1.1 import
[AR2-bgp]peer 12.1.1.1 capability-advertise orf ip-prefix send
[AR1-bgp]peer 12.1.1.2 capability-advertise orf ip-prefix receive
宣告10.1.1.1 2.1 3.1路由
路由刷新:
发送route-refesh报文