本篇文章着重介绍了策略路由配置,我们以Catalyst 3550交换机为例,虽然3550是交换机,该交换机有3层路由功能,且我们在这里主要是参考策略路由的配置,因此假定3550是一台路由设备。

网络拓扑见图:


我 们的策略路由在Cat3550上实施,假如3550交换机有三个出口,分别隶属于VLAN 1, VLAN 2, VLAN3。在我们的例子里,我们在VLAN 2所连接的以太口上实施策略路由。由于策略路由是针对进入路由器的数据包,因此,凡是从VLAN 2进入路由器的数据包,都会被路由器所配置的策略路由所检查,凡是有匹配的,则根据策略进行相应的转发;如果最终没有匹配,则数据包会进行正常的路由处 理。

下面是3550上的配置:
CAT3550 (Cisco Catalyst 3550)
CAT3550# show running-config
Building configuration...
.
.
!
interface Vlan1
ip address 10.10.10.1 255.255.255.0
!
interface Vlan2
ip address 20.20.20.1 255.255.255.0
ip policy route-map pbr
!
interface Vlan3
ip address 30.30.30.1 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.10.10.2
ip classless
ip http server
!
!
access-list 10 permit 20.20.20.0 0.0.0.255
route-map pbr permit 10
match ip address 10
set ip next-hop 30.30.30.2
!
.
!
end

可以看出,3550有3个逻辑3层接口:interface Vlan1, Vlan2, Vlan3,分别连接到3个不同的网段:10.10.10.0/24, 20.20.20.0/24, 30.30.30.0/24
另外,还有一条默认路由,指向10.10.10.2,即图中3550上方的路由器。
就是说,通常情况下,从VLAN2进入3550的数据包在没有明确路由指定的情况下都会送到VLAN1上。
再来看看策略路由的配置,我们知道,策略路由是针对进入设备的数据包,在这里,策略路由应用在interface Vlan2上:
interface Vlan2
ip address 20.20.20.1 255.255.255.0
ip policy route-map pbr
!
所有从Vlan2进入设备的数据包都会被策略路由所处理,而策略路由是通过route-map实现的。
这是route-map pbr的配置:
route-map pbr permit 10
match ip address 10
set ip next-hop 30.30.30.2
!
route-map可以写很多条,每条需要用不同的序号标识,数据包会按照序号进行逐条匹配,在这里序号为10。
另外,每条可以使用permit参数,如果匹配,则对匹配的数据进行策略路由操作。如果数据被标识为deny的route-map项匹配了,则该数据包不 参与策略路由,该数据包被传统的基于目的地的路由方式路由。如果数据包经过每条entry都不匹配,也会被送到正常的路由方式进行处理。
这里数据进入策略路由过滤器后,先匹配序号为10的项,过滤数据包的标准是访问控制列表10:
access-list 10 permit 20.20.20.0 0.0.0.255
这是一个标准的访问控制列表,即凡是从20.20.20.0/24的源IP都满足要求;对于满足要求的数据包都会转发到下一跳为30.30.30.2路由 器上。而那些源IP不20.20.20.0/24的进入Vlan2接口的数据包,会按照路由表转发,默认会送到10.10.10.2路由器上。