PBR 策略路由 (路由器 控制平面(路由表) 数据平面 )
通过流量策略来执行选路的一个转发手。
传统的路由表转发只能通过数据的目标地址做决策提供路由策略。
策略路由可以根据 源地址 目标地址 源端口 目标端口 协议 TOS等流量特征来做决策提供路由,灵活性高。
缺点:不能自动实施,需要手动配置,所以不能在大型网络中使用 (SDN了解一下 转发平面靠流表)
路由表与策略路由的关系
策略路由是先与路由表执行的,策略路由没有捕获的流量依然会执行路由表。
配置:
1、接口下配置
只能捕获该接口入接口流量做策略(不能处理本路由器产生的流量)
2、全局配置
能够捕获所有接口入接口以及本路由产生的流量(源地址时本路由器地址)
3、策略路由的冗余设置
4、default语句
在route-map的set ip default 这个位置输入,定义为被捕获的流量的先查路由表如果能精确匹配(如果抓的10.5.5.5 /32 则叫精确匹配)就执行路由表,如果不能则执行策略路由
策略在转发层面不如路由表,原因是匹配的东西过多,底层芯片处理支持有限。使用原则能不用就不用,如果出现非目的地址的转发策略果断用。
(cef是什么查)
策略路由的其他功能—为流量打上tos
route-map PBR premit 10
match ip address 1
set ip precedence priority(设置队列优先级(优先出接口)
前置列表
解决了反码匹配的缺点(能用就用前置列表)
BGP
是靠人管理
概述:
BGP是EGP协议管理as之间路由传递
BGP距离矢量型 分布式计算
BGP用TCP传递路由信息(端口179)只能单播建邻(OSPF?eigrp?rip?)保证可靠性丧失邻居自动发现,只能手动建邻。
BGP设计用来处理AS之间的路由所以该协议重点处理的AS之间路由,AS之内的路由不作为重点。
BGP使用AS号作为识别不同AS路由的标识,该AS号需要具有唯一性 1-65535 , 可以使用扩展32位 65536-4294967295(解决as不够用的情况)
BGP的最小使用单位是一个路由器,所以每个路由器只能使用一个BGP的进程
由于BGP管理的路由信息非常庞大,不能使用周期更新,只能触发更新。并且BGP会认为一条路由时间越久越稳定
在这种情况下BGP必然不会使用复杂的算法来处理BGP收到的路由信息,又由于每个AS情况都不一致,管理范围也有限。他必然需要丰富的管理参数(不能只依赖metric)综上所述bgp必然需要多种参数共同来决定路由的选择,并且不能依赖某种特定的全局算法,只能单独去计算某一条路由,不能全盘考虑,并且需要依赖所属as管理员手动设置。
BGP路径优先协议通过给每一个路由设置大量的属性参数来进行灵活的管理或者选路。并且这些属性参数大量的都需要人为来操控。(像手动挡的汽车)
#邻居建立
)
1、open包(类似于hello包)
2、keeplive
3、update
4、notification(出错报文)
5、reflush(刷新BGP路由)
(状态机就是想要达到结果必须走的过程
状态机:
1、down 没有
2、idle state :配置了邻居 ,初始化所有的资源 ,TCP三次握手。connectRetry计时器,防止建邻不成功。
3、connect state :三次握手完成后,成功后重连计时器清零,,如果失败,BGP继续监听邻居发出的连接,重置计时器并转移到active状态,如果计时器超时,计时器重新开始,在试图与邻居建立tcp连接,bgp保持connect状态,,出现其他事件转入idle状态。
4、open send
在此状态,已经发送了open消息,BGP等待邻居发送的open消息
1、收到open消息,如果发现差错,将会给邻居发送 一个notification消息并置为idle
2、收到的open消息没有错,将发送keeplive给邻居 ,并建立IBGP或者EBGP状态置为open confire state
3、如果收到TCP断开消息则断开BGP连接连接重置计 时器,状态为active
比较 版本(版本不同,则高版本降一个版本) as号
5、active state:。
6、open confire
在此状态下BGP会等待一个keeplive消息或者notification消息
1.如果收到keeplive则状态置为establish
2.如果收到notification则状态为idle,tcp断开连接
3.如果hold时间超时,监测到一个差错或者stop事件,bgp将给邻居发送一个notification并断开连接 ,状态为idle
7、Establish00
此状态,BGP对等体间的连接已经完全建立,可以交换uodate,keeplive,和notification,如果收到notification状态置为idle
bgp建邻失败的场景
参数与配置:
1、neighbor 10.1.1.1 //代表向该地址发送TCP端口为179的数据,并且自己也需要在发出地址上打开TCP179的监听。该配置可以指定源地址也可以不指定源地址,不指定就是出接口地址,(意味着得打开该出接口关于TCP179的监听)
本端指的地址需要时对方的源地址,对方指的地址需要时本段端的源地址。
2、neighbor 10.1.1.1 remote-as xx
对端建立邻居的as号必须和本端remote-as xx 号一致
3、建立双方保障tcp 179 能够发送,不丢失,不被拦截
重头戏:
邻居之间路由传递规则
BGP两种邻居关系
IBGP //相同AS的路由器建立的邻居关系
EBGP邻居关系 //不同AS的路由器建立的邻居关系
1、BGP不管什么邻居关系只传递最优路径(不优不穿,优先的标志是>,也就是不带>的路由不被传递)、
2、EBGP邻居关系路由传递:只要不违背环路原则EBGP邻居传递无限制(前提必须优)EBGP之间传递路由会更新next-hop为自己的更新源地址
3、IBGP邻居关系路由传递:IBGP邻居之间不会中转(不能借由第三方传)路由。IBGP自己产生的路由(自己宣告的,自己重发布进来的)和EBGP邻居传递的都可以传递给他的IBGP邻居。但不可以在IBGP之间中转,(也就是不能传递到邻居的邻居)IBGP之间传递路由不会更新next-hop。只有next-hop为0的情况才会更新。或者建立邻居的时候输neighborx.x.x.x next-hop-self 更新为自己的更新源地址。
这个设定的好处:IBGP之间拥有了水平分割从而避免了IBGP环路的产生,BGP也不必设置防环算法。
这个设定的坏处:使得IBGP之间路由传递必须直接建立邻居,导致IBGP邻居关系是一种全互联状态
11条属性
as-path 可以防环
1、公认必尊
就是离不开的,所有的BGP路由器必须识别遵守的原则有 origin,as-path,next-hop。
2、公认可尊
所有路由器都可以识别但不一定要遵守 ,local-pref,atomic-aggregate
3、可选传递
不是所有的路由器都能识别,但是所有的bgp都能传递
aggregator和community
4、可选非传递
不是所有路由器都被识别,不能识别的BGP路由丢弃它,MED,orginator-id和cluster,weight