策略路由和路由策略的区别是什么?
一、路由策略
路由策略,是路由发布和接收的策略。其实,选择路由协议本身也是一种路由策略,因为相同的网络结构,不同的路由协议因为实现的机制不同、开销计算规则不同、优先级定义不同等可能会产生不同的路由表,这些是最基本的。 通常我们所说的路由策略指的是,在正常的路由协议之上,我们根据某种规则、通过改变某些参数或者设置某种控制方式来改变路由产生、发布、选择的结果,注意,改变的是结果(即路由表),规则并没有改变,而是应用这些规则。
下面给出一些事例来说明。
改变参数的例子:例如,A路由器和B路由器之间是双链路(分别为AB1和AB2)且带宽相同,运行是OSPF路由协议,但是两条链路的稳定性不一...全部
一、路由策略
路由策略,是路由发布和接收的策略。其实,选择路由协议本身也是一种路由策略,因为相同的网络结构,不同的路由协议因为实现的机制不同、开销计算规则不同、优先级定义不同等可能会产生不同的路由表,这些是最基本的。
通常我们所说的路由策略指的是,在正常的路由协议之上,我们根据某种规则、通过改变某些参数或者设置某种控制方式来改变路由产生、发布、选择的结果,注意,改变的是结果(即路由表),规则并没有改变,而是应用这些规则。
下面给出一些事例来说明。
改变参数的例子:例如,A路由器和B路由器之间是双链路(分别为AB1和AB2)且带宽相同,运行是OSPF路由协议,但是两条链路的稳定性不一样,公司想设置AB1为主用电路,当主用电路(AB1)出现故障的时候才采用备用电路(AB2),如果采取默认设置,则两条电路为负载均衡,这时就可以采取分别设置AB1和AB2电路的COST(开销)值,将AB1电路的COST值改小或将AB2电路的COST值设大,OSPF会产生两条开销不一样的路由,COST(开销)越小路由代价越低,所以优先级越高,路由器会优先采用AB1的电路。
还可以不改COST值,而将两条电路的带宽(BandWidth)设置为不一致,将AB1的带宽设置的比AB2的大,根据OSPF路由产生和发现规则,AB1的开销(COST)会比AB2低,路由器同样会优先采用AB1的电路。
改变控制方式的例子,基本就是使用路由过滤策略,通过路由策略对符合一点规则的路由进行一些操作,例如最普通操作的是拒绝(deny)和允许(Permit),其次是在允许的基础上调整这些路由的一些参数,例如COST值等等,通常使用的策略有ACL(Acess Control List访问控制列表)、ip-prefix、AS-PATH、route-policy等等。
大部分的路由策略都和BGP协议配合使用中,属于路由接收和通告原则。
例如,AS1不向AS2发布19。1。1。1/32这个网段,可以设置ACL列表,在RTB上设置(以华为的路由器为例):
[RTB]acl number 1 match-order auto
[RTB-acl-basic-1]rule deny source 19。
1。1。1 0
[RTB-acl-basic-1]rule permit source any
[RTB]bgp 1
[RTB-bgp]peer 2。2。2。2 as-number 2
[RTB-bgp] import-route ospf
[RTB-bgp] peer 2。
2。2。2 filter-policy 1 export
如果B向C发布了这条路由,但是C不想接收这条路由,则C可以设置:
[RTC]acl number 1 match-order auto
[RTC-acl-basic-1]rule deny source 19。
1。1。1 0
[RTC-acl-basic-1]rule permit source any
[RTC]bgp 2
[RTC-bgp]peer 2。2。2。1 as-number 1
[RTC-bgp] peer 2。
2。2。1 filter-policy 1 import
再举个ip-prefix的例子:
例如RTB不向RTC发布19。1。1。0/24这个网段的路由,则可以设置
[RTB]ip ip-prefix test index 10 deny 19。
1。1。0 24
[RTB]ip ip-prefix test index 20 permit any
[RTB]bgp 1
[RTB-bgp]peer 2。2。2。2 as-number 2
[RTB-bgp] import-route ospf
[RTB-bgp] import-route direct
[RTB-bgp]peer 2。
2。2。2 ip-prefix test export
ip-prefix是精确匹配的,如果想实现模糊匹配,可以通过后面的参数less-equal或greater-equal来实现,例如ip ip-prefix test index 10 deny 19。
1。1。0 24 less-equal 31就表示从19。1。1。0/2
4、19。1。1。0/2
5、19。1。1。0/26一直到19。1。1。0/31都能匹配上,否则这仅仅表示只匹配目的网络是19。
1。1。0/24这一条路由,而19。1。1。0/25不满足该条件,具体可以参考命令手册,这里不详细解释了。
上面讲的都是路由的运行和禁止,下面讲更灵活的路由策略设置方式:route-policy中if-match和apply的匹配,这里不仅能设置允许或禁止某些路由,还能对允许的路由设置其属性。
RTB与RTC之间跑的是IBGP协议,RTA与RTB、RTC之间跑的是EBGP协议。Router_ID按A、B、C、D从小到大排序。正常情况下,RTA到RTD之间的通信会选择RTB做中转,RTD到RTA的通信也会选择RTB,在默认情况下,所有参数都相同,BGP会选择router_ID较小的一条路径。
现在想让RTD到RTA之间的通信都走RTB,而RTA到RTD之间的通信都通过RTC,即两台路由器中RTB专门负责自治域内路由器与域外路由器之间的出口通信,而RTC专门做自治域外路由器与域内路由器的进口通信,我们可以用route-policy中的as-path来实现,在RTB上做:
[rtb]route-policy test permit node 10
[rtb-route-policy]apply as-path 300 400 //添加虚假的路径,使as-path增长
[rtb-bgp]peer 1。
1。1。1 route-policy test export //向RTA发布路由信息的时候使用策略
这样B在向A发布BGP路由的时候,加大路由的AS-Path值,根据BGP路由选择规则,优先选用AS-Path较短的路由,这样RTA向RTD通信的时候,优先选用AS-Path短的RTC这条路由,而RTD在选择到RTA路由的时候仍然选择的是RTB,因为对RTD来说,影响路由的参数什么都没有任何变化。
其实也可以使用改变Med值来设定,这里用路由策略来举例。
这种方法特别灵活在apply语句中能设置多种参数,除了as-path,还有ip next hop(设置下一跳)、local-preference(本地出口优先级)、cost(开销)、origin(起源,来自igp、egp还是incomplete)、tag(标记)。收起