华为3Com培训中心瑞琪国际认证培训中心所有,未经允许不得传播补充:使用路由策略2课程内容路由策略综述使用路由策略控制路由引入基于策略的路由选择3路由策略综述©2004richeduTECH4什么是路由策略路由策略和访问控制列表非常相似,它们都运行“if……then”的程序语句:声明标准,用来判断某个特定的数据包是否被允许或者禁止。它们的区别是:路由策略可以改变实体——假如一个数据包匹配了路由策略中给定的标准,就会执行一些操作改变数据包。在一个访问控制列表中,由testcondition来匹配数据包,并根据匹配结果决定permit或者deny。在一个路由策略中,由if-match语句后的testcondition匹配数据包,并根据匹配结果决定是否执行apply语句后的动作。5路由策略的特点路由策略具有一系列标准,用if-match语句声明。路由策略可以用apply语句改变匹配的数据包或者路由。有着相同路由策略名称的路由策略语句集被认为是同一个路由策略。在同一个路由策略中,每一个路由映射语句都用数字顺序地标注,所以可以进行单独编辑。路由策略中的一个语句对应着访问列表中的一行,在一个路由策略中指明匹配条件就像在一个访问列表中指明源地址、目标地址和掩码一样。在路由策略中的语句用来和路由进行比较,以判断是否存在一个匹配。检验语句的顺序就像在访问控制列表中一样,从顶端开始,依次向下。6路由策略的特点(cont)应用第一个被发现的匹配路由,并且路由策略不会进一步检验。If-match语句用来定义检验的条件。Apply语句用来定义假如存在一个匹配,将采取何种行动。单一的if-match语句可以包含多个条件,在if-match语句中至少存在一个为“真”的条件,这是一个逻辑“或”。一个路由策略语句可以包含多个if-match语句,路由策略中的所有if-mtach语句,对于认为是匹配的路由策略语句,必须认为是“真”,这是一个逻辑“与”。序列号用于指明检验条件的顺序。在路由策略末尾有一个隐含的“denyany”声明,这个deny的后继操作取决于这个路由策略是如何使用的。7使用路由策略控制路由引入©2004richeduTECH8路由策略配置任务定义路由策略(routingpolicy)定义路由策略的if-match子句定义路由策略的apply子句9定义路由策略policy-name:这是路由策略的名称,在使用import-route命令时,该名称用于调用路由策略。seq-number:节点号,指明一个具有相同名称的新路由策略在路由策略语句系列中的位置。不同seq-number各个部分之间的关系是“或”的关系。每个节点下可以有多个if-match和apply子句,if-match子句之间是“与”的关系。操作命令定义路由策略节点route-policypolicy-name{permit|deny}{seq-number}删除路由策略节点undoroute-policypolicy-name[permit|deny][seq-number]10定义路由策略(cont)permit|deny:假如满足了匹配条件,并指定了permit参数,那么路由就将按照集合行为所定义的那样重分布。假如匹配标准没有满足,并且指定了permit参数,那么接着检验下一个节点。如果路由没有通过任何一个节点的匹配标准,那么这个路由不会被重分布,因为它遇上了隐含的denyany。如果一个路由策略的匹配标准满足了,并且指定了deny参数,那么路由将不会重分布,也不会进入下一个节点进行检验。操作命令定义路由策略节点route-policypolicy-name{permit|deny}{seq-number}删除路由策略节点undoroute-policypolicy-name[permit|deny][seq-number]11定义路由策略的if-match子句操作命令指定Routingpolicy中匹配路由信息的原AS路径前的AS序号if-matchas-pathaspath-list-number指定Routingpolicy中匹配的路由信息BGP团体的属性if-matchcommunity{standard-community-list-number[exact-match]|extended-community-list-number}指定Routingpolicy中匹配的路由信息访问控制列表和前缀列表if-matchipaddress{acl-number|ip-prefixprefix-list-name}指定Routingpolicy中匹配的接口if-matchinterface[typenumber]指定Routingpolicy中匹配的路由信息的下一跳if-matchipnext-hop{acl-number|ip-prefixprefix-list-name}指定Routingpolicy中匹配的OSPF路由信息的花费if-matchcostcost指定Routingpolicy中匹配的OSPF路由信息的标记域的值if-matchtagtag-value指定Routingpolicy中匹配的路由信息的路由类型if-matchroute-type{internal|external}12定义路由策略的apply子句操作命令指定Routingpolicy中原AS路径前的AS序号applyas-pathaspath-list-number指定Routingpolicy中设置BGP团体的属性applycommunity{{[aa:nn][no-export-subconfed][no-advertise][no-export]}[additive]|none|additive}设置BGP路由信息的下一跳地址applyipnext-hopip-address设置BGP路由信息的本地优先级applylocal-preferencelocal-preference设置路由信息的路由花费applycostcost设置BGP路由信息的路由源applyorigin{igp|egpas-number|incomplete}设置OSPF路由信息的标记域applytagtag-value指定Routingpolicy中原AS路径前的AS序号applyas-pathaspath-list-number13实例1:配置路由策略192.1.0.0/24128.2..0.0/16128.1.0.1128.1.0.0/16校园网地区性网络路由器连接了一所大学的校园网和一个地区性网络。校园网使用RIP作为其内部路由协议,地区性网络使用OSPF路由协议,路由器需要将校园网中的某些路由信息在地区性网络中发布。为实现这一功能,路由器上的OSPF协议在引入RIP协议路由信息时通过对一个路由策略的引用实现路由过滤的功能。该路由策略由两个节点组成,实现192.1.0.0/24和128.2.0.0/16的路由信息以不同的路由权值被OSPF协议发布。14实例1:配置路由策略#定义地址前缀列表[Quidway]ipip-prefixp1permit192.1.1.0/24[Quidway]ipip-prefixp2permit128.2.0.0/16#配置路由策略[Quidway]route-policyr1permit10[Quidway-route-policy]if-matchipaddressip-prefixp1[Quidway-route-policy]route-policyr1permit20[Quidway-route-policy]if-matchipaddressip-prefixp2[Quidway-route-policy]quit#配置OSPF协议[Quidway]ospfenable[Quidway-ospf]import-routeriproute-policyr1[Quidway-ospf]interfaceethernet0[Quidway-Ethernet0]ipaddress128.1.0.1255.255.255.0[Quidway-Ethernet0]ospfenablearea015CASE路由策略各个节点中至少应该有一个节点定义了permit语句。当一个路由策略用于路由信息过滤时,若某路由信息没有通过任一节点的过滤,则认为该路由信息没有通过该路由策略的过滤。当路由策略的所有节点都是deny语句时,所有路由信息都将不会通过该路由策略的过滤。地址前缀列表的各个表项中至少应该有一条permit语句。可先定义deny语句,以便过先过滤掉那些不符合条件的路由信息。但若所有语句都是deny,则任何路由都不会通过该地址前缀列表的过滤。16基于策略的路由选择policy-basedrouting,PBR©2004richeduTECH17策略路由综述策略路由是一种不经过路由表,根据策略发送、转发报文的机制,它是比根据数据包的目的地址进行路由更为灵活。路由器通过策略路由转发一个数据包时,先通过一个routingpolicy进行过滤,由该routingpolicy决定哪些包将被转发和转发的下一跳路由器。有两种策略路由:接口策略路由和本地策略路由。前者在接口视图下配置,对来自该接口的报文进行策略路由;后者在系统视图下配置,对本机产生的报文进行策略路由。18IP策略路由配置任务策略IP策略路由配置包括:创建策略定义策略路由的if-match子句定义策略路由的apply子句使能/禁止本地策略路由使能/禁用接口策略路由19IP策略路由配置策略路由是由用户配置的,由一组if-match子句和一组apply子句组成,只有IP报文满足策略路由器中的全部if-match子句时,才按一定顺序执行策略中的apply子句,以达到影响报文转发的效果。目前提供两种的if-match子句为if-matchlength和if-matchipaddress。apply子句定义策略的动作。目前有5种apply子句:applyipprecedence,applyinterface,applyipnext-hop,applydefaultinterface,applyipdefaultnext-hop;五个子句按优先顺序执行,直到不能继续为止。20IP策略路由决策进程基于策略的路由选择应用于到来的数据包,当启用基于策略的路由选择的接口上接收到一个数据包的时候,这个数据包就要使用这个进程。假如存在一个匹配,并且其允许这个路由,那么这个路由按照apply命令进行策略路由。假如存在一个匹配,并且禁止这个路由,那么这个路由就不基于路由策略,而是送回动态路由选择的转发引擎。假如没有匹配,并且没有为这个时间配置相应的行动,那么默认行为就是禁止该数据包,数据包将退回到路由选择进程中。如果想把不符合匹配原则的包丢弃而非按正常情况处理的话,就要在routepolicy的最后加上1行apply语句:把那些包路由到黑洞接口。21实例1:配置基于源地址的策略路由E0S1S0Internet10.110.0.0/16定义策略aaa,该策略包括两个节点,使所有TCP报文通过串口1转发,其它报文通过串口0转发。10号节点,表示匹配accesslist102的报文将被发往串口serial0。20号节点,表示所有其它报文将被发往串口serial1。来自Ethernet0的报文将依次试图匹配10、20号节点的if-match子句。若匹配permit定义的节点,就执行相应的apply子句;若匹配deny定义的节点,就退出策略路由处理。22定义访问控制列表[Quidway]acl101[Quidway-acl-101]ruledenytcpsourceanydestinationany[Quidway