AS
网络规模太大,所以把一片使用相同路由的路由器设备称为AS,就是一种代称。
AS之间通过AS号区分,有16位和32位两种。
16位下,64512-65534是私有AS号
32位下,4200000000-4295967294
IANA负责发AS号
BGP使用TCP作为传输层协议,端口号179,触发式更新
EBGP
1.AS号不同,经过TCP三次握手
默认情况下,EBGP允许的最大跳数为1(即只能物理连接)
IBGP
1.TCP三次握手
4个规则:
只发布最优且有效的路由 *表示有效 >表示最优
从EBGP收到的路由会通告给所有邻居BGP(对等体),
从IBGP收到的路由不能传给EBGP
从IBGP收到的路由不会发给IBGP(水平分割,防止环路)
从IBGP学到的BGP路由不会发给EBGP,除非又从IGP(包含静态)中学到这条路由
路由聚合
BGP支持自动和手动聚合
手动聚合命令
bgp 100 当前设备AS号
aggregate 10.1.0.0 22 detail-suppressed 将10.1.0.0以下的路由聚合
聚合路由后,bgp路由器本地路由表会多出来一条路由
后面跟的detail-suppressed
参数作用是 聚合后不告诉对等体聚合前的明细路由
peer 10.0.0.1(IP) connect-interface Loopback1(接口)
用于指定发送BGP报文的源接口,并可指定发起连接时使用的源地址
BGP路由在AS内部只传递1跳
报文
open
update
notifiction
keepalive
router-refresh
路由属性
AS PATH
AS path 越短越优 如 a: AS path:100 200(这是AS号) b: AS path 100 200 300 则a优
路由在被通告给EBGP时,会在该路由的AS_PATH追加 本地的AS号,IBGP不会
Origin
标识路由是从哪里导入的
IGP i ,EGP e ,Incomplete(其他方式,如import-route)?
这三个的顺序是 IGP ->EGP->Incomplete
通过import-route导入的路由,Orgin是?
NextHop
默认规则如下:
对端EBGP
通向EBGP的路由,则下一跳是本端与EBGP相连(建立邻居关系)的接口地址
对端IBGP
通向IBGP的路由,则下一跳是本端与IBGP相连(建立邻居关系)的接口地址
收到EBGP传来的路由,则该路由传给IBGP时,下一跳地址不变(就是这条路由从哪来,就告诉IBGP从哪来,不要改变地址)
收到BGP路由,如果该路由下一跳和EBGP同属一个网段,则下一跳不变(因为是同一网段,所有走还从EBGP那走)
peer IP地址 next-hop-local
可以在转发路由时,将下一跳修改为自己接口的ip地址
Local Preference
越大越优 默认100
只传给IBGP,不传给EBGP
bgp default local-preference
可以修改默认值
路由器向EBGP发送路由时,如果没带LocalPreference,会自动添加该属性,值为默认值
Community
给BGP出去的路由打标签,即分类操作
Internet: 默认,收到包含该属性的路由就发给任何BGP路由器
No_Advertise 收到后,不发该路由
No-Export: 不向AS外的BGP路由器发送
No-Export_Subconfed: 不向AS外发送,不向AS内的子AS发送(ip不用管)
MED
越小越优
作用:1个AS有多个BGP通向同一个AS时,即多对一,这时候通过MED来判断留那条路
med只会在 收到同一AS的不同BGP路由器发过来的目的相同地路由时候才会进行比较,否则不生效
当携带MED的路由传给EBGP,EBGP再将其传给其他EBGP就不会有该属性
导入的路由,med值为IGP的开销metric,direct 和static是0
如果携带med的路由是本地导入的则不会清除掉
IBGP间传递带有med的路由时,med值会保留
default med 值
可以修改med的值(这个只对 import导入的 和路由聚合得到的路由生效)
Atomic_Aggregate Aggregator
Atomic_Aggregate 是一种预警标识,不携带信息 用于告知接受携带该路由的路由器,路由的属性已丢失
当路由收到该路由后 转发时还携带该属性,只是这条路由不能再聚合
Aggregator
执行聚合操作的路由器可以为聚合路由添加Aggregator属性
该属性记录了本地AS号和RouteID,用以记录该路由在那台设备上进行了聚合操作
一般,这两个属性一块用,用来标识一条经过聚合的路由
只有手动聚合才会标识Atomic-aggregate
Preferred-Value
华为的 本地生效,BGP路由表中有同一目的地的路由,会优先使用Preferred-Value高的路由
值0-65535 越大越优
只在本地配置,只在本地的BGP路由生效,不会传给其他路由器
简写PrefVal
路由反射器
IBGP内部之间只能传一条,所以BGP路由器必须物理互联,这样性能不好
启用路由反射器会存在 2中角色 RR(Route Reflector) Client
RR接受路由并反射给Client,RR要配置,被指定为Client的路由器不用做任何配置(它不知道有RR)
RR收到BGP路由:
从其他路由器学到IBGP路由,反射给client们
从client学习到路由,反射给除该client外的所有IBGP
学到EBGP,发送给所有IBGP
只反射自己使用的,最优路由
反射和发送不一样,反射会携带RR插入到特殊路径属性
反射不会修改 AS-path nexthop localpreference med
反射破坏了IBGP水平分割,所以又引入两个路径属性来防止环路(修修改改,这b协议有缺陷)
Originator 携带该路由始发的RouterID RR接收后会添加该属性
当该始发路由器收到包含自己RouterID的路由会丢弃,以避免环路
如果有多个RR,则只第一个RR会添加该属性
默认是RR的RouterID
Cluster_List 标识一片区域为Cluster
当RR收到包含携带 Cluster并值为自己 区域的路由时,会丢弃该路由
路由优选
not preferred for peer type
表示该路由因为对等体类型没有被优选
负载分担
默认下,设备只会对AS-path完全相同的路由进行负载分担
load-balancingas-path-ignore 可以忽视as-path路径不一致
IBGP和EBGP之间不能负载分担
负载分担条件
maximum load-balancing ibpg 2
配置负载分担为2条ibgp
MP-BGP
MP-BGP增加了两种 可选非过度 属性
MP_REACH_NLRI 可达的目的信息
MP_UNREACH_NLRI 不可达的目的信息
新增了Path attributes字段,
NLRI()
EVPN
evpn是为了解决ethernet vpn(二层vpn) 的不足而出现的
evpn定义了一种新的BGP NLRI 用来承载EVPN路由,即EVPN NLRI
该字段包含在 MP_REACH_NLRI里,它规定了EVPN的AFI是25,SAFI是70