特点
BGP是一种外部网关协议(EGP),不擅长路由计算,擅长路由控制
OSPF、ISIS等内部网关协议(IGP),擅长路由计算,不擅长路由控制
BGP属于距离矢量路由协议:邻居间交互路由信息
OSPF/ISIS属于链路状态路由协议:邻居间交互链路状态信息
BGP使用TCP传输层179端口,提高协议可靠性
BGP支持无类别域间CIDR
报文
open 创建邻居关系 TCP建立BGP连接时,发送OPEN消息
keeplive 维护邻居关系 邻居关系稳定后定时发送keeplive消息保持BGP连接有效性
notifcation 邻居关系报错 运行中发现错误通过NOTIFACTION消息通告BGP对等体,刷新路由表
update 邻居间交互路由 路由变化发送UPDATE通知对方路由信息,也可以撤销不可达路由
邻居关系建立状态机
Idle:
在空闲状态,拒绝邻居连接请求,只有在收到本设备的 Start (由操作者配置BGP过程)事件后,BGP初始化资源,复位连接重试计时器,BGP 才开始尝试和其它 BGP 对等体进行 TCP 连接,并转至 Connect 状态。
connect:
BGP启动连接重传定时器,等待 TCP 完成连接。如果TCP连接成功,则BGP发送open报文,专至open sent状态。如果TCP建立失败,则BGP转至active状态。如果定时器超时,BGP继续尝试和其他对等体TCP连接,停留在connect状态。
open-sent:
在 OpenSent 状态下,BGP 等待对等体的 Open 报文,并对收到的 Open 报文中的
AS 号、版本号、认证码等进行检查。如果收到错误的报文,系统会发送一条notification通知消息并退会到idle状态。如果没有错误,BGP开始发送keeplive报文,并复位keeplive计时器,开始计时。同时转入openconfirm状态。
open-confirm:
在OpenConfirm状态,BGP等待一个Keepalive报文,同时复位保持计时器,如果收到keeplive报文,就转入established状态
established:
在 Established 状态下,说明BGP邻居关系已经建立,这时,BGP和邻居交互update报文,同时复位保持计时器。
在除Idle状态以外的其它五个状态出现任何Error的时候,BGP状态机就会退回到Idle状态
工作原理
1 创建邻居关系,区分邻居类型
EBGP外部邻居,创建连接用物理接口
IBGP内部邻居,创建连接用Loopback接口
可以远程建立邻居关系,但是必须手动创建
2 手动注入BGP路由信息
network注入,一条一条注入更精准,现网多使用。
import-route注入,把外部路由引入BGP,批量注入,可能会引起环路
3 邻居间交互路由信息,形成路由表
自己注入产生BGP路由,发送EBGP和IBGP,没有任何限制
从EBGP获得BGP路由,发送EBGP和IBGP,没有任何限制(外部发送路由需要修改下一跳,内部发送默认不修改下一跳,强制netx-hop-local修改下一跳)
从IBGP获得BGP路由,发送EBGP不发送IBGP,防止路由环路
OSPF和ISIS可以根据COST控制路由
BGP没有COST
属性
公认必遵属性:所有BGP路由器都可以识别,且必须存在于Update消息中。如果缺少这种属性,路由器信息就会报错。包含origin 、AS-path、next hop
公认任意:所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况选择。包含local-pref
可选过度:在AS间具有可传递的属性。BGP路由器可以不支持此属性,但仍然接受带有此属性的路由,并通告给其他对等体。
可选非过度:如果BGP路由器不支持此属性,则相应的属性会被忽略,且不会通告给其他对等体。包含 med
1 origin:记录路由起源,描述这条BGP路由信息的起源由network还是import-router注入
network i(IGP)优先选择
import-router ?(incpmplete) 可以强制修改优先级
起点属性三个值的优先顺序为IGP>EGP>incomplete
2 AS-pateh:路径 记录BGP路由信息沿途所经过的编号,越短越优先,同时可以防止AS间的环路
3 next Hop :下一跳 (任何一条路由都必须具备下一跳和目的网络)EBGP传递路由下一跳变, IBGP传递路由下一跳不变
4 local-pref:越大越优 用于判断流量离开AS时的最佳路由,用于一个AS内部,默认是100
5 Med:越小越优 等同于COST,用于判断流量进入AS时的最佳路由,用于相邻两个AS间
6 conmmunity :团体属性 为路由分类打标记,简化路由策略的应用和降低维护管理的难度。例如可以分为视频类、语音类等等。
公认团体属性:
internet:缺省情况下,所有路由都属于internet团体,可通告所有BGP对等体
no_export :不能发布到本地AS外部。
no_advertise:不被通告给任何其他BGP对等体
no_export_subconfed:不被发布到本地AS之外,也不能发布到其他AS间。
BGP最优路径选择过程
多重属性有限制LAO-MAN顺序:
local-pref > AS-path > origin > med > EBGP
1 首先丢弃下一条next-hop不可达的路由
2优选协议首选值(prefval)最大路由
prefval:是华为特有的属性,指定对等体的首选值,数值越高越好。当BGP路由器从不同的邻居接收到到达同一目的的路由时,将比较本路由器设置的对这些邻居的preferred-value,数值越高,表明越优。(参考命令 peer 1.1.1.1 preferred-value 300)
3 优先选择本地优先级(local-pref)最高的路由
4 优选聚合路由(聚合路由优先级高于非聚合路由)
5 优选AS-PATH路径最短的路由
6 比较origin属性类型为IGP>EGP>incomplete
7 优选MED值最低的路由
8优选从EBGP学到的路由(外部邻居发送优于内部邻居)