Ⅰ、什么是BGP
BGP(Border Gateway Protocol,边界网关路由协议),为无类别路径矢量路由协议,主要作用是在AS之间传递路由信息。BGP的自治系统通过AS号区分,AS号取值范围0-65535,其中1-64511为公有AS号,64512-65535是私有AS号。目前BGP有4个版本:V1、V2、V4、V4+(即MBGP)。
Ⅱ、BGP的特点
①无类别路径矢量(距离矢量的升级版,AS-BY-AS),路径矢量信息中包含一个BGP自治系统号列表,BGP路由器不接受路径列表中包含其AS号的路由更新,是无环路的,BGP支持对BGP自治系统路径应用路由策略,BGP路由器只能将其使用的路由通告给邻接自治系统中的对等体。
②使用单播更新来发送路由信息,基于TCP179端口工作
③增量更新–仅触发无周期(因为其携带的是一个AS的路由,更新量庞大)
④具有丰富的属性来代替IGP中的度量来进行选路
⑤可以进行强大的策略
⑥默认不被用于负载均衡,通过各种选路规则仅产生一条最佳路径
⑦支持认证和聚合
Ⅲ、BGP的TCP传输
tcp–三次握手–单播–非直连建邻–前提可以ping通
EGP协议承载于igp协议之上:
1,非直连建邻时,需要设备间IP可达,通过igp来完成;
2,bgp传输的实际是igp计算所得路由
BGP使用TCP为传输层协议, TCP端口号179。BGP路由器之间建立TCP连接,这些路由器称为BGP对等体也叫BGP邻居:EBGP、 IBGP。邻居之间交换整个BGP路由表, BGP路由器只进行增量更新。BGP通告成千上万的路由,可采用TCP滑动窗口的机制。
Ⅳ,bgp的工作过程:
①igp–ip可达,建邻设备间可以通讯
②通过三次握手建立tcp会话
③收发open报文,建立邻居关系,生成邻居表
④使用update包共享本地路由信息给邻居,生成bgp表------所有本地接收以及发送的路由信息
⑤默认将bgp表中最优路径装载于路由表中;收敛完成,仅keeplive包周期保活
注:所谓的最优路径,是指bgp所认为接收到的路由,参数相比之下较好的路径,不一定是真正意义上的最优路径
Ⅴ、BGP的三张表
(1)邻居表: 邻居列表 show ip bgp summary。
(2)BGP表: show ip bgp 包含了从邻居学习所有路由,以及到达目的网段的多个路径和属性。
(3)路由表: 列出了到达目的网段的最佳优路径。 路由器将BGP表中最佳路由提供给IP路由表
Ⅵ,EBGP和IBGP
EBGP: BGP位于不同自治系统的路由器之间,称为EBGP(不同AS设备建立的邻居关系,通过ebgp邻居学习的路由管理距离为20)。建立EBGP邻居关系,必须满足三个条件 (1)EBGP之间自治系统号不同;(2)neighbor中指定的IP地址要可达;(3)定义邻居建立TCP会话。
IBGP:BGP位于同一个自治系统的路由器之间运行,用于同一个AS中交换BGP信息(同一AS设备建立的邻居关系,通过ibgp邻居学习的路由管理距离为200)。建立IBGP邻接关系,满足的条件:(1)自治系统号相同;(2)定义邻居建立TCP会话;(3)IBGP邻居可达。
区别:
(1)EBGP—外部边界网关协议主要作用是在不同的自治系统间交换路由信息。
IBGP—内部边界网关协议主要作用是在一个自治系统内部交互路由信息。
(2)EBGP一般情况下都要求EBGP邻居之间存在物理连接,
IBGP不需要IBGP邻居之间必须有物理连接(非直连建邻),只需要逻辑连接即可(IGP通告路由)。
(3)从EBGP邻居学到的路由通告给IBGP和EBGP;
从IBGP邻居学到的路由,是否通告给自己EBGP邻居,要根据AS内的BGP和IGP路由表是否同步而定,但不会再通告给IBGP邻居(水平分割,防止环路
(4)EBGP防止环路通过AS_PATH属性来实现。
IBGP和EBGP使用的BGP属性不同,例如IBGP可以传递LOCAL_PREF(本地优先级属性),而EBGP不行。
Ⅶ、BGP防环–水平分割
【1】EBGP水平分割----防止EBGP邻居间的环路;
在BGP协议的属性中存在一个AS-pash属性—记录经过的每一个AS号;
接收到的路由条目中,若存在本地的AS号将拒绝接收