版本知识点之路由协议------OER
OER------优化边缘路由协议,是一种动态策略路由,支持静态和BGP路由,可以根据延迟,吞吐量,链路代价值等来定义相应的策略,从而实现链路的负载均衡。OER最初设计只是为不同的流量选择不同的出口,控制入方向流量的能力是在12.4T才被加入进来。在IOS15.1以后OER又称为PRF技术。
典型的OER应用:
1. 一个企业网承载了大量的应用,如V oIP系统、视频广播服务器、文件服务器等等
2. 企业购买了多个上行链路,分别通往不通的ISP,希望以最优化的方式将不同的流量路由向不同的上行链路。
一、基本概念:
OER由两个组件构成分别是:
1,MC主控制器------是OER功能核心即策略制定者
负责处理从BR收集过来的信息(统计数据),并上传策略到BR(注入前缀到IGP)2,BR边界路由器-------策略的实际实施者
BR连接着网络的边界,控制着通过外部链路离开的流量
BR使用newflow自动收集吞吐量和TCP性能信息,或使用ip sla进行主动的应用性能监控。然后BR将流量的测量结果报告给MC。激活了OER就会自动开启了netflow并无法关掉
仅供学习参考,请勿用于商业活动~
MC根据测量结果判断流量类的性能是否满足策略并决定策略变化。然后将策略变化的指示发送给BR。指示BR控制流量类使用原来的路由还是进行动态的策略路由导入。
MC负责维护MC与BR间的会话。MC与BR的通信必须配置key-chain论证保护。
一个OER中必须要有一个MC和一个或多个BR,两者都不可以单独存在。MC和BR可以在同一台路由器上,也可以在单独的路由器上。可以用一台性能不太好的设备做MC,让它只做数据采集后的处理工作。
MC和BR之间的拓扑主要有以下几种:
根据作用不同OER中共有三种接口:
1.Intrnal interfaces内部接口
仅用于使用netfolw进行被动的性能监控。是BR上的活路接口,该接口连接内部网络。在MC路由器对BR的内部接口进行声明。一台BR至少配置一个内部接口。内部接口离MC越近越好
2.local interface 控制接口
为MC和BR的通信接口,仅被用于MC和Br路由器通信,跑控制流量。在每一台BR路由器必须配置,可以与Intrnal接口共用一个接口。如果MC和BR为同一路由器,LOCAL 必须是环回口。
3.extrnal interfaces外部接口(运行商接口)
是转发流量的出口链路,物理的外部接口在BR路由器启用,在MC路由器被配置。MC路由器主动监控外部接口的路由前缀和出站链路的性能。一个BR路由器至少有一个外部接口。整个架构至少有2个外部接口。
二、运行的五个阶段:
第一阶段-----分类:
分类即是为了发现或定义流量类。分类可以基于外部的。例如从其他AS学来的。也可以是内部的,例如起源于本地BGP的network学到的。
OER使用两种方法对流量进行分类:
仅供学习参考,请勿用于商业活动~
(一)由设备自动学习和选择那些具有最高的延迟或最大的吞吐量的流量,对这些流量应用性能路由。
自动学习的分类是基于netflow top-talkers特性的进行。BR所收集数据的吞吐量的单位为bytes,延迟的参考数据为:RTT(平均回程时间)
用以下命令来开启自动学习前缀的功能
oer master
learn
throughput
delay
(二)人工配置一个特定的流量类作为被性能路由的对象。
类型可以是一个网络前缀,也可以是一个高层应用的端口。可以用oer-map手动定义一组前缀,其用法和rout-map的用法是类似的,但和route-map不同的是oer-map 只能使用一个match而route-map可以match多个条件。
并且oer-map中match的acl条件语名里面不能含有deny
如果你想在oer-map里面包含一些并且排除一些的话prefix-list是你唯一的选择。
如果全局的策略即master和map的策略相冲突时,map的策略优先。
IOS12.4后OER还可以进行基于应用的分类。即根据协议,端口,或协议+端口的方式进行。可以使用下面的命令进行定义:
protocol{number|tcp|udp}[port
这基于应用的情况下,只有流量满足的应用匹配要的要求,OER才会对其实施优化。
你可以同时配置多个基于应用的分类。端口范围16384到32767和语音的端口范围是一致的。
两种方式学习到或预先定义的流量类型都会放到MTC表中去,MTC表类似路由表,OER 只有这一张表,但里面有各种参数。其大小是有限制的,默认情况下MTC的容量为100个流,845的上限是3000条,7200是5000条,76是7500条。如果MTC容量存满,那么将不能添加新的项目。
储存在MTC里的条目,如果MC一定时间内没再学到更多的信息,则会老化消失。配置如下:
learn模式:
expire after { session
其中:session:当
Time:当前缀在
在学习过程中OER有一个每次学习的时间间隔,默认为2小时学习一次,配置单位为分钟,你可以修改这个间隔:periodic-interval(minuters)
oer还可以定义每次学习进行多少时间,默认为5分钟,你也可以修改这个时间间隔。monitor-period
如果把学习时间配置的比休息时间还长的话,会一直学习。
注:在OER中,master只能控制border的选路,却不能在master上就对数据进行分流
仅供学习参考,请勿用于商业活动~
如果从MC发出的数据负载到两个BR上,如果本来想到BR1的流量到BR2,解决的方法一般是:直接在两个BR中配置一条TUNNEL,并在MC上设置OER选路。
验证:show oer master prefix learned
show oer master prefix learned delay
show oer master prefix learned throughput
show oer border passive cache prefix
第二阶段-----测量:
此阶段作用:用来测量流量类的性能。在此阶段主要完成:
1.BR会被动监听流量类或主动去探测选定的对象
2. BR还会监听外部链路的性能:基于链路负载和出错率
3.之后BR把收集到的信息会发送到MC,
4.MC将信息与相应的流量类关联起来,放入MTC
OER测量这些流量类的性能度量值的前提是这个流量必须要穿过这个BR,这个过程是一个轮询的过程。
(一)状态机
OER测量流量类的性能和链路的情能。在测量之前,OER先判断流量类的状态,根据当前的状态,确定是否进行测量。流量类或链路会在如下各状态之间穿越