不涉及
1.
BGP是一种增强的路径矢量路由协议,同时BGP是拥有丰富的策略控制技术的外部网关协议。多运行于AS与AS之间。
BGP主要功能是在AS之间选择最佳路由和控制路由的传播。
(1)
(2)
(3)
2.
(1)
(2)
IBGP:运行于同一AS内部的BGP称为IBGP。
EBGP:运行于不同AS之间的BGP称为EBGP。
(3)BGP报文交互中的角色
Speaker:发送BGP消息的路由器称为BGP发言者,它接收或产生新的路由信息,并发布给其它BGP Speaker。
Peer:相互交换消息的BGP Speaker之间互称对等体(Peer),若干相关的对等体可以构成对等体组(Peer Group)。
1.
(1)BGP报文
BGP报文有5种消息类型
Open消息:是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。对等体在接收到Open消息并协商成功后,将发送Keepalive消息确认并保持连接的有效性。确认后,对等体间可以进行Update、Notification、Keepalive和Route-Refresh消息的交换。
Update消息:用于在对等体之间交换路由信息。Update消息可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。
Keepalive消息:BGP会周期性的向对等体发出Keepalive消息,用来保持连接的有效性。
Notification消息:当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。
Route-Refresh消息:通过OPEN消息告知BGP peer本地支持路由刷新能力(Route-Refresh capability)。
这5种消息的应用:
通过TCP建立BGP连接时,发送OPEN消息
连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端
稳定后要定时发送KEEPALIVE消息以保持BGP连接的有效性
当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对等体ROUTE-REFRESH消息用来通知对等体自己支持路由刷新
(2)BGP对等体之间交互原则
从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体(这样的水平分割是为了防止IBGP内部环路)(前提条件是需要BGP与IGP同步)
从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体(即发给所有BGP对等体)
当存在多条到达同一目的地址的有效路由时,BGP设备会选择最优路由给自己使用,即用来发给邻居,同时上送给路由表路由更新时,BGP设备只发送更新的BGP路由
(1)
network命令
逐条引入
通过Network命令注入到BGP路由表里的路由信息必须存在于IP路由表中。
import命令
按协议类型引入,也可以引入静态或直连路由
4.BGP属性
BGP路由属性分为4类:
(1)
Origin:起点属性。定义路由信息的来源,标记一条路由是怎样成为BGP路由的。(属于公认必遵)
有3种类型:
①IGP(标识为 i):具有最高的优先级。通过路由始发AS的IGP得到的路由信息,比如通过network命令注入到BGP路由表的路由,其Origin属性为IGP。
②EGP(标识为 e):优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。
③Incomplete(标识为 ?):优先级最低。通过其他方式学习到的路由信息。比如BGP通过import-route命令引入的路由,其Origin属性为Incomplete。
As_PATH:AS路径属性。是路由经过的AS的序列,即列出此路由在传递过程中经过了哪些AS。它可以防止路由循环,并用于路由的过滤和选择。(公认必遵)
Next hop:下一跳属性。包含到达更新消息所列网络的下一跳边界路由器的IP地址。(公认必遵)
(2)
Local-Preference:本地优先级属性。用于在AS内优选到达某一目的地的路由。反映了BGP Speaker对每条BGP路由的偏好程度。属性值越大越优。(公认任意)
如下图,R1通过有限选择红线路径到底10.0.0.0/24网段
(3)
(4)可选非传递(Optional non-transitive):BGP路由器可以选择是否在Update消息中携带这种属性。如果接受的BGP路由器不支持此属性,则相应的这类属性会被忽略,且不会传递给其他对等体
MED属性:当某个AS有多个入口时,可以用MED属性来帮助其外部的AS选择一个较好的入口路径。一条路由的MED值越小,其优先级越高。
如下图,R3有限选择红线到达10.0.0.0/24网段
1.
当到达同一目的地存在多条路由时,BGP采取如下策略进行路由选择:
如果此路由的下一跳不可达,忽略此路由
优选协议首选值(PrefVal)最高的路由 (华为设备特有属性)
优选本地优先级(Local_Pref)最高的路由
优选本地生成的路由
优选AS路径(AS_Path)最短的路由
比较Origin属性,依次优选Origin类型为IGP、EGP、Incomplete的路由
优选MED值最低的路由
优选从EBGP邻居学来的路由
优选到BGP下一跳IGP Metric较小的路由
2.
BGP有限状态机共有六种状态,分别是Idle、Connect、Active、OpenSent、OpenConfirm和Established。
①Idle状态是BGP初始状态。在Idle状态下,BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。
Start事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。
任何状态中收到Notification报文或TCP拆除链路通知等Error事件后,BGP都会转至Idle状态。
②在Connect状态下,BGP启动连接重传定时器(Connect Retry,缺省为32秒),等待TCP完成连接。
如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态;
如果TCP连接失败,那么BGP转至Active状态;
如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
如果发生其他事件(由系统或者操作人员启动的),则退回到Idle状态。
③在Active状态下,BGP总是在试图建立TCP连接。
如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态;
如果TCP连接失败,那么BGP停留在Active状态;
如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。
④在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态;
如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。
⑤在OpenConfirm状态下,BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。
⑥在Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。
如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。
如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
Route-refresh报文不会改变BGP状态。 如果收到Notification报文,那么BGP转至Idle状态。
如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。
不涉及
一些BGP的经典案例
comwareV7设备通过BGP来控制替换AS号
https://zhiliao.h3c.com/theme/details/180433
某局点使用BGP的graceful-restart功能切换丢包1秒钟
https://zhiliao.h3c.com/theme/details/188509
某局点BGP跨VPN等价路由的引入学习不完整
https://zhiliao.h3c.com/theme/details/188536
某局点F1000 BGP路由反射两条等价路由只反射一条
https://zhiliao.h3c.com/theme/details/188748
某局点通过路由策略过滤BGP路由信息不成功
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作