通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索
查看: 1184|回复: 2
打印

[原理资料] BGP协议 [复制链接]

军衔等级:

  新兵

注册:2022-4-6
跳转到指定楼层
1#
发表于 2022-10-24 16:16:15 |只看该作者 |倒序浏览
一、BGP基本概念
BGP:边界网关路由协议
无类别的路径矢量EGP协议,是EGP类别的路由协议,用于ASAS间进行路由条目共享;
AS编号 0-65535标准编号,其中1-64511公有,64512-65535私有
32位二进制构建为扩展编号;
BGP协议为不同AS间共享路由,工作时隔离两个AS的内部网络,形成一个独立的交互空间;且同时可以实施强大的策略来干涉选路;
BGP使用TCP作为其传输层协议(监听端口为179),提高了协议的可靠性,且不需要专门的机制来确保连接的可靠性
二、名词解释
IGP(内部网关协议)追求:收敛速度快,选择路径佳(无环),占用资源少,hop-by-hop
EGP(外部网关协议)追求:可控性,可靠性,AS-BY-AS
BGP的发言者:发送BGP消息的路由器叫做BGP的发言者。
BGP对等体:相互交换BGP消息的路由器叫做BGP的对等体。
IBGP对等体:同一个自治系统内的对等体关系。
EBGP对等体:不同自治系统间的对等体关系。
三、BGP的三个特性
1.可控性——BGP协议不是路由的产生者,仅为搬运者,且AS间正常应该存在大量的链路来保障稳定性;故BGP协议传递的路由条目很难默认最佳选路;需要管理员对路由进行大量的策略来干涉选路;
2.可靠性——BGP协议虽然像距离矢量协议一样仅传递路由条目,但更新量依然很大;为了避免对设备资源的占用选择了增量更新—仅触发、无周期;故需要保障所有的路由传递到位,因此BGP协议基于TCP工作;TCP的三次握手条件使得TCP只能基于单播工作,同时BGP需要非直连建邻;BGP基于IGP之上,先IGP使BGP设备间IP可达,然后BGP才能基于TCP建立非直连邻居关系;
3.AS-BY-AS——以一个AS为一跳,将一个AS看成一个整体。
四、BGP特点
1.无类别路径矢量 -----距离矢量的升级版—ASBYAS
2.使用单播更新来发送所有信息;
3.基于TCP 179端口工作增量更新–仅触发无周期
4.具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议(BGP的核心就是它的属性)
5.可以在进项和出项对流量实施强大的策略–可控性
6.默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
7.BGP支持认证和聚合(汇总)
五、BGP数据包
基于TCP179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;
首先通过TCP的三次握手来寻找到邻居;
1.Open 仅负责邻居关系的建立,正常进收发一次即可;携带route-idhold time 默认3min
2.Keeplive 保活 周期1min查询邻居关系是否存在;实际保活TCP会话;
3.Update 携带路由条目 目标网络号+各种属性
4.Notification 出现错误数据时收发;
六、BGP的工作过程
1.管理员定义邻居的ip地址,前提要求对邻居ip可达; IGP可达
2.启动BGP协议后,先目标端口为179进行TCP的三次握手来建立TCP的会话;
3.会话建立后,收发open报文来建立邻居关系,生成邻居表;
4.邻居关系建立后,邻居间使用update 共享路由条目,在收发了路由信息后,本地生成BGP表;
5.BGP中装载本地发出及接收到的所有路由条目;
6.之后路由器将BGP表中的最优路径(不一定是最佳选路,仅为BGP参数最佳)加载于路由表中;
7.收敛完成!keeplive周期保活即可;
七、结构突变
新增网段 BGP更新源设备将使用update来告知本地所有的邻居
断开网段 BGP更新源设备将使用update来告知本地所有的邻居
无法沟通 3min hold time到时时断开邻居关系和TCP会话,之后删除从该邻居处学习到的所有信息;
BGP更新源设备并不一定直连断开或新增网段的设备,而是第一台将该路由发布到BGP协议中的路由器;
八、专业名词
EBGP 外部的BGP邻居关系,两台处于不同ASBGP路由器间建立的邻居关系。
IBGP
内部的BGP邻居关系,两台处于同一个AS内的BGP路由器间的建立的邻居关系。
九、BGP的路由黑洞
由于bgp协议可以非直连建立邻居关系,故若两台BGP邻居间存在未运行BGP协议的路由时;可能出现路由条目可以在控制层面正常单播传递,但数据层面流量经过未运行BGP协议的设备时,无法通行;控制层面可达,数据层面不可达;
解决方法:
1
物理或逻辑链路全连
2
全连的BGP邻居关系,所有设备运行bgp
3
BGP路由条目重发布到IGP协议中(LAB
4
最佳方案—MPLS 多协议标签交换
十、BGP的防环机制;–水平分割
1EBGP水平分割—防止EBGP环路
利用BGP条目中的as-path 属性,该属性将记录所有经过的AS编号;接收到的路由条目中若as-path中存在本地的AS号,将拒绝接收;
2IBGP水平分割—防止IBGP环路
基于AS-BY-AS特性,BGP的路由条目默认在一个AS内部传递时,其属性不变化;
IBGP水平分割—— 从一个IBGP邻居处学习到的路由条目不得传递给本地其他IBGP邻居;
因为BGP协议具有非直连建立邻居的能力,故在一个AS内部只要设备运行BGP协议,那么其必然存在EBGP邻居关系(一定连接了其他的AS);IBGP水平分割规则将导致在一个AS内部所有运行了BGP协议的路由器间,均需要建立IBGP邻居关系,才能正常传递路由条目—建立邻居关系的配置成指数增长;
可以使用联邦和路由反射器来解决该问题,下面会有详解。
十一、 BGP的基础配置
1 、建立邻居关系—BGP基于单播进行建邻和沟通,故需要管理员手工指定邻居的ip地址;
1
使用直连接口ip地址来建立EBGP邻居关系
[r1]bgp 1  启动时需要定义真实的AS号,没有多进程概念
[r1-bgp]router-id 1.1.1.1  建议手工配置RID--手工—环回最大值---物理接口最大值
[r1-bgp]peer 12.1.1.2 as-number 2   对端IP地址,及对端所在的AS
2)实际工程中,一个AS的内部正常具有较为复杂的网络拓扑结构,设备到设备间存在大量的备份和负载均衡;因此建立IBGP邻居关系时,建议使用双方的环回接口来作为源/IP地址;
[r3]bgp 2
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer  2.2.2.2 as-number 2
一旦使用环回接口作为目标ip地址时,也应该修改源为本地的环回接口ip地址
[r3-bgp]peer  2.2.2.2 connect-interface LoopBack 0
3 EBGP邻居间存在多条直连链路时,也建议使用环回接口来建立;
1 IP可达
[r4]ip route-static 5.5.5.0 24 45.1.1.2
[r4]ip route-static 5.5.5.0 24 54.1.1.2
2」建立BGP邻居关系
[r5]bgp 3  
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer  4.4.4.4 as-number 2  
[r5-bgp]peer  4.4.4.4 connect-interface LoopBack 0
3BGP规定EBGP邻居间默认所有的BGP数据包TTL值为1,导致环回建立邻居关系服务正常
[r4-bgp]peer  5.5.5.5 ebgp-max-hop 2
当两端邻居建立配置完成后,将进行tcp的三次握手,建立TCP的会话;
[r1]display tcp status
TCPCB             Tid/Soid Local Add:port        Foreign Add:port      VPNID          State
b4ca4bc8 164/8    12.1.1.1:179                   12.1.1.2:50042          0            Established
十二、 BGP的路由宣告
BGP协议本身不计算生成路由条目;负责转发从其他BGP邻居传递过来的路由条目;
同时可以将本地路由表中任意路由宣告到BGP协议中来;
BGP宣告配置时,只能宣告本地路由表中的路由条目,且宣告配置中网络号的掩码必须和路由表中的记录完全的一致;
[r1]bgp 1
[r1-bgp]network 1.1.1.0 24
BGP设备进行宣告配置后,本地生成BGP表:装载本地发出及接收到所有BGP路由
[r1]display bgp routing-table  
BGP Local router ID is 1.1.1.1  
Status codes: * - valid, > - best, d -damped,               
                    h - history,  i - internal, s - suppressed, S - Stale
                    Origin : i - IGP, e - EGP, ? -incomplete
Total Number of Routes: 1      
         Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
*>  1.1.1.0/24           0.0.0.0          0                        0       i
状态   目标网络号           下一跳                       属性
表示可用 >表示条目优秀可以加表,可以传递(共享给本地的其他邻居)
状态处的i表示该条目通过IBGP邻居关系学习
不优的原因:1、下一跳不可达(因为AS-BY-AS
[r2]bgp 2
[r2-bgp]peer  3.3.3.3 next-hop-local  BGP路由传输给邻居3.3.3.3时修改下一跳属性为本地(2.2.2.2
条目传递给本地的ebgp邻居,自动修改属性,包括下一跳为本地;
十三、有条件的打破IBGP的水平分割
IBGP水平分割——避免IBGP环路,从一个IBGP邻居处学习到的路由条目不能传递给本地的其他IBGP邻居;
因为BGP可以非直连建邻,故正常一台运行了BGP协议的路由器,均存在EBGP邻居,需要从其他AS学习路由条目,再共享到内部AS时,由于水平分割的现在,需要和本地AS内所有的BGP设备建立IBGP邻居关系;IBGP邻居关系的数量成指数上升;
有条件打破IBGP水平分割的有条件——在管理员确定网络无环的前提下,人为的打破水平分割限制建设邻居关系的数量;
无环的核心思想为AS-BY-AS规则;一条条目在AS内部传递时其属性默认不变化;
1路由反射器
3种角色,RR(反射器) 客户端 非客户端
3者构建一个簇;可以理解为RR为中心站点,客户端或非客户端是分支站点
要求所有分支与中心必须是IBGP邻居关系;在一个簇中至少存在一台客户端;
规则:
1RR从一台EBGP邻居处学习到的路由可以传输给本地的客户端、非客户端、其他EBGP邻居
2RR从一台客户端邻居处学习到的路由,可以传输给本地的其他客户端、非客户端、其他EBGP邻居
3RR从一台非客户端邻居处学习到的路由条目,可以传输给本地的客户端,其他EBGP邻居;不得传输给本地的其他非客户端;
注意:若路由条目不优,不具有传递性;反射器也无法反射路由;
[r3-bgp]peer 2.2.2.2 reflect-client
2.2.2.2成为本地的客户端,同时本地成为路由反射器;
2 联邦
将一个真实的大AS,逻辑的分为多个小AS
AS的编号建议为私有编号;
AS间构建联邦内的EBGP邻居关系,可以向真实EBGP关系一样传递路由条目,但不修改属性; 对于该大AS外的其他AS,是不知道内部的小AS情况;
1.     所有配置全部基于小as号进行
[r3]bgp 64512
[r3-bgp]router-id 3.3.3.3
[r3-bgp]pe 2.2.2.2 as-number 64512
[r3-bgp]pe 2.2.2.2 connect-interfaceLoopBack 0
[r3-bgp]pe 4.4.4.4 as-number 64513
[r3-bgp]pe 4.4.4.4 connect-interfaceLoopBack 0
[r3-bgp]peer 4.4.4.4 ebgp-max-hop 2
2)联邦内所有运行BGP协议的设备均声明自己所在的大AS
[r2]bgp 64512
[r2-bgp]confederation id  2
3)小AS间互指peer;在联邦内的ebgp邻居关系间的两台设备,互相定义对端的小AS号;
[r4-bgp]confederation peer-as 64512
切记:华为设备,必须先定义联邦的id,和互相小AS号后再配置邻居关系建立的命令;
在实际的工程案例中,联邦和反射器是同时被使用,降低配置量;


举报本楼

本帖有 2 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-5-9 10:57 , Processed in 0.608875 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部