版本知识点之路由协议------OEROER------优化边缘路由协议,是一种动态策略路由,支持静态和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 masterlearnthroughputdelay(二)人工配置一个特定的流量类作为被性能路由的对象。
类型可以是一个网络前缀,也可以是一个高层应用的端口。
可以用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<port-number>|gt<port-number>|lt<port-number>|range<lower numberupper-number>][dst|src]这基于应用的情况下,只有流量满足的应用匹配要的要求,OER才会对其实施优化。
你可以同时配置多个基于应用的分类。
端口范围16384到32767和语音的端口范围是一致的。
两种方式学习到或预先定义的流量类型都会放到MTC表中去,MTC表类似路由表,OER 只有这一张表,但里面有各种参数。
其大小是有限制的,默认情况下MTC的容量为100个流,845的上限是3000条,7200是5000条,76是7500条。
如果MTC容量存满,那么将不能添加新的项目。
储存在MTC里的条目,如果MC一定时间内没再学到更多的信息,则会老化消失。
配置如下:learn模式:expire after { session <number> | time <minutes> }其中:session:当<number>次学习周期内某条前缀无更多消息,则会超时。
即:<number> * ( <periodic-interval> + <monitor-period> )Time:当前缀在<minutes>时间内无更多信息,则会超时在学习过程中OER有一个每次学习的时间间隔,默认为2小时学习一次,配置单位为分钟,你可以修改这个间隔:periodic-interval(minuters)oer还可以定义每次学习进行多少时间,默认为5分钟,你也可以修改这个时间间隔。
monitor-period<minutes>如果把学习时间配置的比休息时间还长的话,会一直学习。
注:在OER中,master只能控制border的选路,却不能在master上就对数据进行分流仅供学习参考,请勿用于商业活动~如果从MC发出的数据负载到两个BR上,如果本来想到BR1的流量到BR2,解决的方法一般是:直接在两个BR中配置一条TUNNEL,并在MC上设置OER选路。
验证:show oer master prefix learnedshow oer master prefix learned delayshow oer master prefix learned throughputshow oer border passive cache prefix第二阶段-----测量:此阶段作用:用来测量流量类的性能。
在此阶段主要完成:1.BR会被动监听流量类或主动去探测选定的对象2. BR还会监听外部链路的性能:基于链路负载和出错率3.之后BR把收集到的信息会发送到MC,4.MC将信息与相应的流量类关联起来,放入MTCOER测量这些流量类的性能度量值的前提是这个流量必须要穿过这个BR,这个过程是一个轮询的过程。
(一)状态机OER测量流量类的性能和链路的情能。
在测量之前,OER先判断流量类的状态,根据当前的状态,确定是否进行测量。
流量类或链路会在如下各状态之间穿越DEFult:是流量类的初始化状态,在这个状态下,说明目前这个前缀并没有收到OER的控制下,但当时已经开始向OER的MTC表中添加数据一个前缀,最后是否进入或离开DEFAULT取决于探测结果和策略的配置。
chosse exit:这是一个瞬间状态,debug能看得到,show很难看到,这个状态说明OER正在要据策略进行best exit 选择,OER会尽量保持现在数据路径,但可能因为性能,计时器,或者策略配置的原因需要干预数据路径,那么MC会开始选择其他的exit point,这个状态一直会持续到选择出新即选最优的出接口,或优化的出接口。
holddown:这个状态说明MC要求一个BR对一个链路进行一个主动探测,在超时之前会一直使用选出的exit point。
此时你的流量已经在被影响。
一个并不稳定状态。
相当于实施策略的监控期in-policy:是OER收敛后的一个相对稳定的状态,在这个状态下,当它在读秒时就进入稳定,否则还是在学习中。
流量的出口是根据默认策略或用户定义策略选出的,MC会继续监控这个链路,但是不会主动发送探测,直到periodic timer超时,或一个opp被定义,那么就会回退到choose exit状态。
out-of-policy(OOP):这个状态下说明:目前没有一个合适的优化策略,可以为该前缀选出一仅供学习参考,请勿用于商业活动~个出口,或现在的状态就是最优的状态。
可用backoff计时机制退出这个状态,当backoff 计时器超时以后,状态会变为in-policy,如果所有链路的状态都为oop,那么就会选择一条可达的为最优,而不再去考虑性能优化。
是一过渡性状态。
一个流量类或链路现在所在状态叫做策略决定点(PDP),在有些状态,OER不会初始化监听的(二)OER使用三种测量机制:1.Passiv模式:使用netflow功能,测量流量通过设备时的性能度量值。
BR使用passive模式收集和采集数据发给MC,这个动作是轮询的大约一分钟执行一次。
对于所有自动学习到的流量类,被动监听是默认自动开启的。
若要强制其它的类进行被动监听,则可如下配置MC模式:mode passiveoer-map中:set mode passive(此方法更为灵活,可以针对特定前缀来配置)passive模式监测以下几个参数1,Delay:测量某个前缀的TCP流的的平均延迟延迟是由RTT来定义的,而RTT是从TCP包的发送到TCP ACK包的接收之间间隔来计算的。
此参数仅TCP流量有效2,Packet loss:通过跟踪TCP包的序列号,来测量丢包率OER存储最高的序列号,然后将随后TCP包的序列与之比较,若较小,则说明对方请求重传,即说明丢包了于是OER丢包计数器相应增加。
丢包率单位是“每百万“,此参数仅TCP流量有效3,Reachability:通过跟踪重复一直发送TCP SYN消息(未收到TCP ACK消息)来测量可达性,此参数仅TCP流量有效4,Throughput:通过测量在单位时间内某流量类所有数据包的字节数,来测量吞吐量。
此参数对任意流量均有效passive模式只能测量真实的,通过BR的流量,所以不会产生任何额外的流量。
2.Active 模式:在这种模式下,MC会控制BR复制一些人造流量来尽量模拟流量类的行为,然后测量其运行的性能参数。