Cisco交换机策略路由

【转自】https://blog.csdn.net/kkfloat/article/details/39940623 html

1.概念网络

  1)策略路由(PBR)是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。路由器将经过路由图决定如何对须要路由的数据包进行处理,路由图决定了一个数据包的下一跳转发路由器。session

  在路由器转发一个数据报文时,首先根据配置的规则对报文进行过滤,匹配成功则按照必定的转发策略进行报文转发。这种规则能够是基于标准和扩展访问控制列表,也能够基于报文的长度;负载均衡

  而转发策略则是控制报文按照指定的策略路由表进行转发,也能够修改报文的IP优先字段,策略路由也能够在必定程度上实现流量工程,使不一样服务质量的流或者不一样性质的数据(语音、FTP)走不一样的路径,post

  所以,策略路由是对传统IP路由机制的有效加强。  加密

  2)应用策略路由,必需要指定策略路由使用的路由映射,而且要建立路由映射。一个路由映射由不少条策略组成,每一个策略都定义了1个或多个的匹配规则和对应操做。一个接口应用策略路由后,spa

  将对该接口接收到的全部包进行检查,不符合路由映射任何策略的数据包将按照一般的路由转发进行处理,符合路由映射中某个策略的数据包就按照该策略中定义的操做进行处理。策略路由对报文的发送接口、下一跳的配置是基于多转发表实现的。.net

  routemap和ACL很相似,它能够用于路由的再发布和策略路由,还常用在BGP中.策略路由(policyroute)其实是复杂的静态路由,静态路由是基于数据包的目标地址并转发到指定的下一跳路由器,htm

  策略路由还利用和扩展IPACL连接,这样就能够提供更多功能的过滤和分类 。对象

2.策略路由的特色:

  1)策略路由比全部路由的级别都高,其中包括直连路由。

  2)策略路由是转发层面的行为,操做的对象是数据包,匹配的是数据流,具体是指数据包中的各个字段:源IP、目标IP、协议、源端口、目标端口、802.1p优先级 、VLANID 源/目的MAC地址、IP优先级 、DSCP的优先级 、IP的协议类型字段

  3)为QoS服务。使用route-map及策略路由能够根据数据包的特征修改其相关QoS项,进行为QoS服务。

  4)负载平衡。使用策略路由能够设置数据包的行为,好比下一跳、下一接口等,这样在存在多条链路的状况下,能够根据数据包的应用不一样而使用不一样的链路,进而提供高效的负载平衡能力。

    策略路由影响的只是本地的行为,因此可能会引发“不对称路由”形式的流量。好比一个单位有两条上行链路A与B,该单位想把全部HTTP流量分担到A链路,FTP流量分担到B链路,这是没有问题的,

    但在其上行设备上,没法保证下行的HTTP流量分担到A链路,FTP流量分担到B链路。

  5)策略路由通常针对的是接口入(in)方向的数据包,但也可在启用相关配置的状况下对本地所发出的数据包也进行策略路由。

3.策略路由的种类:

  1)根据路由的目的地址来进行的策略称为:目的地址路由;

  2)根据路由源地址来进行策略实施的称为:源地址路由!

  3)智能均衡的策略方式!就是多条线路不论是光纤仍是ADSL,都能自动的识别,而且自动的采起相应的策略方式,是策略路由的发展趋势
4.CEF的两种负载均衡方式:

  1)基于每一个会话的负载均衡(per-session load sharing):基于每一个会话的负载均衡容许路由器使用多条路径分发流量。对于一个给定的源—目的主机对,即便有多条路径可用,路由器也会保证该会话的数据包走相同的路径。

  不一样的会话采用不一样的路径,使用负载均衡,基于每一个会话的负载均衡再激活CEF的时候缺省的也被激活。因为基于每一个会话的负载均衡依赖于流量的统计分发,于是在会话数增长的状况下更有效率。

  基于每一个会话的负载均衡可以确保导向给定的源—目的对的数据包按序到达,由于导向相同主机对的全部数据包都被路由到相同的链路上。

  2)基于每一个数据包的负载均衡基于每一个数据包的负载均衡使得路由器能够把连续的数据包发送到不一样的路径上,而没必要关心个别的主机或用户会话,使用轮转的方法来肯定每个数据包选择哪条路径到达目的地。

  当大量数据经过单个会话的多条并行链路时,基于每一个数据包的负载均衡显得更加有效。在这种状况下,基于每一个会话的负载均衡将会过载其中一条链路,而其余链路几乎没有什么流量。

  但基于每一个数据包的负载均衡会致使针对某一个会话来讲,数据包可能走不一样的路径,这会引发数据包的从新排序,对于某些数据流量类型来讲是不合适的,必须对于IP语音流量来讲。

  当启用基于数据包的负载均衡功能时,必须先禁用基于目的地的负载均衡功能。为了禁用基于目的地的负载均衡功能,能够在接口配置模式下,no ip load-sharing per-destination;

  使用基于数据包的负载均衡,路由器能够在路径上连续发送数据包,而不用考虑具体的主机或用户状况。这种负载均衡机制采用轮转办法来肯定每一个数据包采用哪条路径到达目的地。

  基于数据包的负载均衡能够保证在多条链路上进行负载均衡。要启用基于数据包的负载均衡功能,能够在接口配置模式下,ip load-sharing per-packet;为CEF配置网络记帐功能,

  启用收集被快速转发到某个目的地的数据包个数和字节数ip cef accounting per-prefix启用收集经过某个目的地被快速转发的数据包的个数ip cef accounting non-recursive在全局配置模式中为CEF启用网络记帐功能后,

  相应的路由处理器会收集记帐信息。当用户为CEF启用网络记帐功能后,线路卡上会收集记账信息。查看网络记账信息 show ip cef。

建议使用每会话的负载均衡,由于若是每包的负载均衡会出现包的顺序出错,致使应用没法打开。同时会出现不一样IP同时登录同一个应用而遭受拒绝例如:加密、HTTPS,网银,QQ等
5.路由重分发的相关命令

  match interface {type number} […type number]:匹配指定的下一跳路由器的接口的路由

  match ip address {ACL number|name} […ACL number|name]:匹配ACL所指定的目标IP地址或网段的路由

  match ip next-hop {ACL number|name} […ACL number|name]:匹配ACL所指定的下一跳路由器地址的路由

  match ip route-source {ACL number|name} […ACL number|name]:匹配ACL所指定的路由器所宣告的路由

  match metric {metric-value}://匹配指定metric大小的路由

  match route-type {internal|external[type-1|type-2]|level-1|level-2}:匹配指定的OSPF,EIGRP或IS-IS的路由类型的路由

  match tag {tag-value} […tag-value]:匹配带有标签(tag)的路由

  set level {level-1|level-2|level-1-2|stub-area|backbone}:设置IS-IS的Level,或OSPF的区域,匹配成功的路由将被再发布到该区域

  Set metric {metric-value|bandwidth delay RELY load MTU}:为匹配成功的路由设置metric大小

  set metric-type {internal|external|type-1|type-2}:为匹配成功的路由设置metric的类型,该路由将被再发布到OSPF或IS-IS 1

  set next-hop {next-hop}:为匹配成功的路由指定下一跳地址

  set tag {tag-value}:为匹配成功的路由设置标签
6.策略路由的相关命令  

  match ip address {ACL number|name} […ACL number|name]:匹配ACL所指定的目标IP地址或网段的路由

  match length {min} {max}://匹配第3层的数据包的长度

  set default interface {type number} […type number]://先查询路由表,在找不到精确匹配的路由条目时,才转发数据包到default语句指定的下一跳接口

  set interface {type number} […type number]://首先检查策略路由,不符合策略后使用路由表进行数据包转发处理

  set ip default next-hop {ip-address} […ip-address]://先查询路由表,在找不到精确匹配的路由条目时,就转发数据包到下一跳IP

  set ip next-hop ip-address {ip-address}://首先检查策略路由,不符合策略后使用路由表进行数据包转发处理

  set ip precedence {precedence}:为匹配成功的IP数据包设置服务类型(Type of Service,ToS)的优先级

  set ip tos {tos}:为匹配成功的数据包设置服务类型的字段的TOS位

  route map是经过名字来标识的,每一个route map都包含许可或拒绝操做。关于拒绝操做,是依赖于route map是使用在路由的重发布环境仍是策略路由环境中, 若是是在策略路由中匹配失败(拒绝),那么数据包将按正常方式转发;

  若是是用于路由再发布,而且匹配失败(拒绝),那么路由将不会被再发布 若是数据包没有找到任何匹配,和ACL同样,route map末尾也有个默认的隐含拒绝全部的操做, 若是route map的陈述中没有match语句,

  那么默认的操做是匹配全部的数据包和路由;每一个 route map还有一个序列号,序列号在没有给出的状况下默认是10,序列号用于区分每个route map statement,经过这个序列号参数你能够在一个route map的特定位置插入或删除一条route map statement,

  而且能够单独的编辑它。一个route map能够包含多个route map statement,序列号参数决定了进行条件匹配的顺序。只有序列号为10的语句没有匹配,才会检查序列号为20的语句才被检查。

  route map容许有多个match和set陈述,一个match语句能够包含多个条件。在匹配的时候,从上到下,若是匹配成功,将再也不和后面的陈述进行匹配,指定操做将被执行。若是一个条件为真,则认为这个条件匹配;

  然而,必须全部的条件都匹配,才认为这个route mapstatement匹配。Set能够定义当匹配语句知足时,数据包如何经过路由器进行转发

7.配置路由策略要注意:

  配置一个路由图,在同一个接口上屡次配置路由图会相互覆盖。

  在使用策略路由时,每一个子路由图建议只配置一个ACL;

  若是配置的子路由图中只有nexthop而没有配置ACL,则等价于全部报文都匹配;

  若是子路由图中只有ACL而没有nexthop则匹配的报文普通转发; 

  若是子路由图中即没有ACL也没有nexthop,则等价全部报文普通转发。 

  若是配置了ACL号可是该ACL不存在,等价全部报文都匹配
8.实例

  1)核心交换机上联有2台防火墙,其中一台走互联网,一台专门用于接IPSec。现要实现某一内网vlan使用单独的一个公网IP。

  因为走互联网的防火墙不能实现,故使用另外一台。此时,需在核心交换机上配置PBR。

    1)定义访问控制列表    

    access-list 2000 permit ip 10.11.50.0 0.0.0.255 any    
    access-list 2001 permit ip 10.11.50.0 0.0.0.255 10.11.0.0 0.0.255.255    #50段访问内网

    2)定义route-map    

    route-map 50duan permit 10
    match ip address 2001
    #容许50段访问内网且不改变其nexthop
    route-map 50duan permit 20
    match ip address 2000
    set ip next-hop 10.11.31.1

    #50duan访问其余网络将使用10.11.31.1做为下一跳

    3)应用到50段的网关    

    interface Vlan50    ip address 10.11.50.254 255.255.255.0    ip access-group 150 out    ip helper-address 10.11.103.11    ip helper-address 10.11.103.12    ip policy route-map 50duan