公认必遵循
BGP必须都能识别,且必须发送报文必须包含
Origin:起源属性,I,E,?三种,I是BGP通过IGP协议学到的路由(比如ospf,isis,rip),E是从EGP协议学到的(比如BGP)?是incomplete不确定的,(比如路由引入import-route)选路时,I>E>?
AS——Path:用于表明经过的AS
分两类,一种是有序的AS_SEQENCE,一种是无序的AS_SET,表示路由通过的路径,路由聚合后会出现AS_SET,其{ }内的数据等效为一条,无顺序之分,而AS_SEQENCE在括号外从越右边表示越先到达过那个AS
Next——hop:下一跳,为目的网络指定方向
BGP中的下一跳遵循四条规则:
- 向EBGP发布路由,下一跳为本地建立peer的接口地址
- 初始发给IBGP,下一跳为本接口用于建立peer的接口地址
- IBGP间通告,不改下一跳
- 收到路由发现与自己同一网段只传不改
公认任意
BGP都能识别,但发送报文可不包含
Local——Preference:本地优先值,默认100(可通过指令修改,引入路由包括在内),越大越优,只在同一个AS里生效
Atomic——aggregate:原子聚合,用于警告此条路由做过聚合
可选过渡
BGP设备可不支持此类属性,但应当接收包含此类属性的报文并传递此类报文
Aggregator:用于描述做路由聚合的设备,包含AS号和Router-ID
Community:团体,对标tag,格式为AA:NN,大小为2B+2B,一般用AA表AS号,NN表路由编号。
通告范围:Internet(整个网络)>No Export(单个AS)>No Export Subconfed(子AS)>No dvertise(与世隔绝,收到后不再传递)
BGP联盟(Confederation):简单来说就是AS下在化AS,和子网类似,有一个主AS即联盟,其下划分多个AS,这些AS被称为联盟成员
如图,主AS23称为联邦,子AS200,AS300称为联邦成员,No Export即在主AS(联邦,AS23)间传递,而No Export Subconfed则是在子AS(单个联邦成员AS200)间传递
可选非过度
BGP设备可不支持此类属性,无法识别到此属性的识别忽略此路由信息,并且不传递给其他设备
MED:多出口鉴别器,对标cost,越小越优,import引入MED都是0(缺省为0所以是0),不跨AS区传递,仅相邻两个AS间生效,且BGP始发带MED,若学到则不带,IBGP间只传不改不丢
Cluster-List:簇列表,表路径,表通过的BGP路由器(防环)
Originator-ID:起源者ID,表示反射器的router-id(第一个反射器,防止环路)
Preferred-Value:华为华三称之为此,思科中有类似称呼为Weight越大越优,0-65535,仅本地生效,只影响本地路由决策,华为华三默认都为0
思科设备中的Weight有以下几条规则:
从其他邻居学到的,默认为0
本地网络产生的是32768
本地重发布的直连与静态路由为32768
本地汇总的路由也为32768
选路规则
- Preferred-Value/weight大者优
- Local——Preference大者优
- 手动聚合路由》自动聚合路由》network宣告的路由》import-route引入的路由》从对等体学习的路由
- AS——Path短的优({}中的长度算1)
- Origin属性(I>E>?)
- MED越小越优
- EGP>IGP>LocalCross>RemoteCross
- 优选到BGP下一跳IGP度量值(metric)最小的路由
- 存在多条来自相同相邻AS的路由,并且开销一致,且通过maximum-paths(默认为1),可进行负载分担
- 来自建立时间更久的EBGP邻居
- 优选Router ID最小的设备发布的路由
- 优选Cluster_List最短的路由
- 优选从具有最小IP Address的对等体学来的路由