应用基于应用的策略路由
网络拓扑
案例背景及需求
某公司是一家为客户提供网络系统集成和维护的高科技企业。该公司有两条上网的线路,公司所有的员工都使用这两条线路上网。
平时,该公司负责客户网络维护的人员通过这两条线路远程登录到客户的网络,为客户的网络设备提供维护服务。但是最近由于公司业务的扩展,公司新加入了很多员工,客户网络维护部门的人员开始抱怨远程登录访问到客户网络的速率越来越慢,已经开始影响到了他们的正常维护工作。
案例分析及解决
我们分析:公司员工越来越多,客户服务人员远程登录的速率也越来越慢,这很可能是员工上网流量增多,挤占了两条线路的带宽所引起的问题。
解决:我们应该在公司网络出口路由器上定义一个基于应用进行策略路由Route Map语句,并将这个语句应用于路由器的以太接口上,以对来自以太接口的数据流进行基于应用的策略路由,让所有上网浏览网页的数据包从一条线路通过,而将另一条线留给远程登录使用。
我们在应用Route Map语句实现本案例需求前,可以预先使用两台路由器搭建一个模拟的环境,对所要应用的Route Map语句进行一些测试。
案例实施:配置步骤及配置实例
1.定义Route Map语句
首先定义Route Map语句,以指定数据包的应用类型及对数据包的操作。
Router(config)#route-map map-name [permit|deny] [sequence-number]
Router(config-route-map)#match {conditions}
Router(config-route-map)#set ip next-hop next-hop-address
在基于应用的策略路由语句中,条件应指定预先定义的访问控制列表(该列表定义了应用的类型)。
2.在接口上应用Route Map语句
定义好基于源IP地址的策略路由语句后,应该在数据流的进方向接口应用该Route Map语句。
Router(config-if)#ip policy route-map map-name
在接口上应用了该命令后,所有由此接口进入路由器的数据包都会被强制比对条件,以找到需要进行策略路由的数据包。
3.路由器本身产生的数据包也接受基于源IP地址的策略路由的管理
在通常情况下,由路由器本身产生的数据包不受控于策略路由语句,为了让路由器本身产生的数据包也能够接受策略路由的管理,应在路由器的全局模式下使用如下命令:
Router(config)#ip local policy route-map map-name
以下给出了本案的配置实例,以供参考,其中黑体字为关键的配置步骤。
路由器A配置如下:
enable secret 5 $1$McUN$G2SyweoQsFjZUrGNZu/tM1 ! username lwb secret 5 $1$ZHy5$r6M1V.2Ydq9Is5Bz979Wx0 ! interface Loopback1 ip address 192.168.1.1 255.255.255.0 ! interface Ethernet0/0 ip address 150.1.1.1 255.255.255.0 ! interface Ethernet0/1 ip address 151.1.1.1 255.255.255.0 ! router rip version 2 network 150.1.0.0 network 151.1.0.0 network 192.168.1.0 no auto-summary ! line vty 0 4 login local |
路由器B配置如下:
interface Ethernet0/0 ip address 150.1.1.2 255.255.255.0 ! interface Ethernet0/1 ip address 151.1.1.2 255.255.255.0 ! interface Ethernet0/2 ip address 152.1.1.1 255.255.255.0 ip policy route-map lable1 ! router rip version 2 network 150.1.0.0 network 151.1.0.0 network 152.1.0.0 no auto-summary ! ip local policy route-map lable1 ! access-list 101 permit tcp any any eq www access-list 102 permit tcp any any eq telnet ! route-map lable1 permit 10 match ip address 101 set interface Ethernet0/0/set ip next-hop 150.1.1.1 ! route-map lable1 permit 20 match ip address 102 set interface Ethernet0/1/set ip next-hop 151.1.1.1 |
对策略路由状态进行监测
在路由器B上使用debug ip policy命令监视策略路由
在路由器B上使用telnet 192.168.1.1命令远程登录到192.168.1.1,这时路由器B会输出监视结果,观察数据包走向
RB#telnet 192.168.1.1 Trying 192.168.1.1 ... Open *Mar 1 00:14:52.687: IP: s=150.1.1.2 (local), d=192.168.1.1, len 44, policy match *Mar 1 00:14:52.687: IP: route map lable1, item 20, permit *Mar 1 00:14:52.687: IP: s=150.1.1.2 (local), d=192.168.1.1 (Ethernet0/1), len44, policy routed *Mar 1 00:14:52.691: IP: local to Ethernet0/1 151.1.1.1 User Access Verification Username: |
上表显示:“policy match”表示数据包符合一条策略路由语句的条件,“lable1,item 20”表示数据包符合的是Route Map lable1中的第二条语句的条件,“policy routed”表示数据包按照策略路由的规定被发送,远程登录应用的数据包经过E0/1接口传输。
在路由器B上使用telnet 192.168.1.1 www命令,该命令会发出目标端口是HTTP端口的数据包。这时路由器B会输出监视结果,观察数据包走向
RB#telnet 192.168.1.1 www Trying 192.168.1.1, 80 ... Open *Mar 1 00:21:24.931: IP: s=150.1.1.2 (local), d=192.168.1.1, len 44, policy match *Mar 1 00:21:24.931: IP: route map lable1, item 10, permit *Mar 1 00:21:24.935: IP: s=150.1.1.2 (local), d=192.168.1.1 (Ethernet0/0), len44, policy routed *Mar 1 00:21:24.935: IP: local to Ethernet0/0 150.1.1.1 |
上表显示:“policy match”表示数据包符合一条策略路由语句的条件,“lable1,item 10”表示数据包符合的是Route Map lable1中的第二条语句的条件,“policy routed”表示数据包按照策略路由的规定被发送,网页访问应用的数据包经过E0/0接口传输。
在路由器B上使用telnet 192.168.1.1 ftp命令,该命令会发出目标端口是HTTP端口的数据包。这时路由器B会输出监视结果,观察数据包走向
RB#telnet 192.168.1.1 ftp Trying 192.168.1.1, 21 ... % Connection refused by remote host *Mar 1 00:25:43.135: IP: s=150.1.1.2 (local), d=192.168.1.1, len 44, policy rejected -- normal forwarding RB# |
上表显示:policy rejected -- normal forwarding表示该数据包不符合任何的策略路由语句的条件,则按照路由表中的的路由来处理该数据包。
总结:我介绍了基于策略的路由的原理,由于实现基于策略的路由的方法有很多种,我们这里只着重介绍了最灵活应用最广泛的一种——Route Map。同时我也讲解了Route Map的工作方式及其与访问控制列表的区别,并给出了Route Map的基本命令格式。我们给出了三个案例仅供参考,当遇到问题时灵活运用。
转载于:https://blog.51cto.com/liuwenbing/691494