基于源地址的策略路由

      传统的路由只能根据目的地址进行报文转发,策略路由相对来说就比较灵活了,可以根据源地址、目的地址、协议类型、报文大小等进行路由转发。在进行路由转发的时候,路由器根据已经设定的策略对数据包进行匹配,如果匹配到一条策略,就用改策略进行转发,如果没有匹配到,就根据路由表中的路由进行转发。下面是基于源地址的策略路由的基本配置。
      实验拓扑
策略路由, 基于源地址的策略路由, 策略路由的配置, 基于源地址的策略路由的配置,
      实验的要求:
      R2上做策略路由,源地址为1.1.1.1/24访问3.3.3.0/24的流量走23.23.23.0/24网段、源地址为12.12.12.1/24访问3.3.3.0/24的流量走10.1.23.0/24网段
      基于源地址的策略路由的基本配置:
R2(config)#access-list 1 permit 1.1.1.0 0.0.0.255
R2(config)#access-list 2 permit 12.12.12.0 0.0.0.255

R2(config)#route-map jackie permit 10
R2(config-route-map)#match ip address 1
R2(config-route-map)#set ip next-hop 23.23.23.3
R2(config-route-map)#match ip address 2
R2(config-route-map)#set ip next-hop 10.1.23.3

R2(config)int s1/0
R2(config-if) ip policy route-map jackie
      在配置根据源地址的策略路由的时候,首先用访问控制列表对源地址进行限制,然后配置策略,最后到接口上应用。
      配置完成之后,用扩展traceroute可以来验证策略路由。
      在R1上用源地址为1.1.1.1到3.3.3.3的路由:
  1 12.12.12.2 4 msec 52 msec 72 msec
  2 23.23.23.3 192 msec *  88 msec
      在R1上用源地址为12.12.12.1 到3.3.3.3的路由:
  1 12.12.12.2 36 msec 112 msec 92 msec
  2 10.1.23.3 136 msec *  52 msec

5 Comments

  1. 这个是错误的,优先级都是10,那么会变成这样
    match的列举出2个acl,包含的意思,只要acl包含的都可以。
    而set ip next-hop 1xx 2xx,则是从第一个满足的1xx走出去,

    那么综合看就是无论哪个acl,数据都会从1xx发出去,而不是2xx了

  1. match的时候是一条一条匹配的,当第一条匹配不了就匹配第二条。在ACL上不要有重叠的现象。

  1. 不错,兄弟。不过你这样写是错误的。正如ccc兄所言,这样写的话,都只会匹配23.23.23.2.正确写法是把另一个acl写在同一个策略路由的另一个优先级里。