BGP基础理论详解
BGP概述
- 边界网关协议BGP(Border Gateway Protocol)
- 是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的
距离矢量
路由协议 - BGP使用
TCP
作为其传输层协议(端口号为179
),并支持BGP与BFD联动、BGP Tracking和BGP GR和NSR,提高了网络的可靠性。
优点:
- 保证了网络的安全性:
认证
和GTSM
的方式 - 灵活性: 丰富的路由策略,能够灵活选录
- 稳定性:防止路由振荡–路由聚合和路由衰减
- 可靠性:使用TCP作为其传输层协议
- 高效性:采用按组打包技术分发–邻居数目多、路由量大且具有相同出口,
基本概念
-
自治系统AS(Autonomous System):
- AS是指在一个实体管辖下的拥有相同选路策略的IP网络。
- AS号:
- 共有:1-64511
- 私有:64512-65534
- 记忆办法:
- 2^16-1=65535,私有AS有1024个,65535-1024=64511,因此为公1-64511有AS
-
BGP分类
- IBGP:运行于不同AS之间
- 当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。–防环
- EBGP:运行于同一AS内部
- BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体
- 注意:
- 如果在AS内一台BGP设备收到EBGP邻居发送的路由后,需要通过另一台BGP设备将该路由传输给其他AS,此时推荐使用IBGP。
- IBGP:运行于不同AS之间
-
BGP报文交互中的角色:
- Speaker:发言者—发送BGP报文的设备
- •Peer:对等体或邻居
-
BGP的路由器号(Router ID)
- 唯一的
- 手动配置
- 设备自动选取
- 缺省情况下,lookback 接口作为 id
- 没有配置lookback,最大ipv4 接口地址
- 一旦配置,不会被抢,除非删除接口地址
BGP 工作原理
-
BGP的报文:5种报文进行交互
- Open报文:用于建立BGP对等体连接。
- Update报文:用于在对等体之间交换路由信息
- Notification报文:用于中断BGP连接。
- Keepalive报文:用于保持BGP连接
- •Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新
-
图
ljl -
初始化idle,如果开启,首先进入发起Connect连接,如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。
-
如果TCP连接失败,那么BGP停留在Active状态。超时,返回,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报文。
BGP对等体之间的交互原则
- 从IBGP学到的,只发给它的EBGP
- 从EBGP学到的,发给所有EBGP、IEBGP
- 只发最优的给对等体
- 只发送部分更新的路由
BGP 与IGP路由的引入
- BGP引入路由时支持Import和Network两种方式:
-
import:将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中,直连,静态也行
-
network:将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确
-
BGP 属性:
-
公认必须遵循:可以识别,必须存在更新报文中
- origin
- 标记路由来源 :
- network—igp、egp
- import ---->incomplete
- 标记路由来源 :
- as_path
- 不接受带有本地as号的路由
- next_hop
- origin
-
公认任意:可以识别,不要求存在更新报文中
- local fref
- 于判断流量离开AS时的最佳路由。
- 本地有效,不发给其它AS域
- 缺省 100
- local fref
-
可选过度:不识别此类属性,它任会接受,发送
- 团体属性
- 用于标识具有相同特征的BGP路由
- 定义团体属性
- 公认团体属性
- internet 属性号 0 ,向任何对等体发送该路由
- no_advertise 属性号:0xFFFFFF02 不向任何对等体发送该路由
- no_port 0xFFFFFF01 将不向AS外发送该路由。
- No_Export_Subconfed (0xFFFFFF03 将不向AS外发送该路由,也不向AS内其他子AS发布此路由。
- internet 属性号 0 ,向任何对等体发送该路由
- 用于标识具有相同特征的BGP路由
- 团体属性
-
可选非过度:忽略属性,不发送给对等体
- med 值
- 用于判断流量进入AS时的最佳路由
- 将优先选择MED值较小者作为最佳路由
- 缺省 0
- originator-id
- cluster_list
- 用于解决路由反射器场景中的环路问题
- med 值
BGP选择路由的策略
-
优选协议
首选值
(PrefVal)最高的路由。 -
优选
本地优先级
(Local_Pref)最高的路由 -
优选 汇总、引入(手动、自动、network、inport)
-
优选
AS path
(AS_Path)最短的路由 -
优选 IGP 、EGP 、Incomplete的路由
-
对于来自同一AS的路由 优选
MED值
MED值最低的路由。 -
依次优选EBGP路由、IBGP路由、LocalCross路由、RemoteCross路由。
-
优选到BGP下一跳IGP度量值
metric
最小的路由 -
优选Cluster_List最短的路由
-
优选Router ID最小的设备发布的路由
-
选从具有最小IP Address的对等体学来的路由\
-
总结:
- 首选值 比大
- 本地优先级 比大
- 汇总 手动>自动
- AS-PATH 最短的
- 起源 IGP > EGP >引入的
- MED 比小
- 路由 EBGP IBGP 、隧道实例路由
- 下一跳 IGP 度量值 metric 最小的
- Cluster_List最短的路由
- Router ID 最小的
- 最小ip 地址学路由
-
顺口溜:
- 首选 本地 汇总 AS 起源
- MED 路由 下一跳度量
- Cluster_List Router ID 最小ip
-
需要熟悉的是 起源 AS-PATH next-hop MED local-preference Community
路由反射器
-
为啥使用BGP反射器?
- 为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。–不能同步,防止黑洞
- 当设备数目很多时,设备配置将十分复杂
- 网络资源和CPU资源的消耗都很大
-
路由反射器相关角色
- 路由反射器RR(Route Reflector)
- 客户机(Client)
- 非客户机(Non-Client)
- 集群(Cluster)–用于表示RR的域
-
对等体之间的关系
- Client 只需要维护与RR之间的IBGP会话
- 如果有多个RR ,RR之间需要建立IBGP全互联
- 非客户端和非客户单也需要建立IBGP全互联
- RR 域 非客户端需要建立IBGP
全互联
-
路由反射宣告原则:
- 从非客户端学到的路由会发给RR的所有客户端
- 从EBGP 收到的路由会发给所有客户端和非客户端
-
图
- 配置很简单
- 防环:
- 同过一个Cluster ID 标识一个Cluster
- Originator ID ,RR传来的路由,打上 originator id (默人就是始发者router id)
BGP联盟
-
联盟(RFC3065)
- 将大的AS分成若干大小的AS ,而小AS之间建立EBGP对等体关系
-
联盟术语
- 联盟AS—原来大的as
- 成员as—小的as
-
回顾as -path
- AS 分类
- AS_SET:由一系列as 号无序组成,包含在updata消息里面
- AS_SEQUENCE:有一系列as号顺序组成,包含在U盘data包里面
- AS_CONFED_SEQUENCE:顺序组成,本地联盟内传递
- AS_CONFEO_SET:无序组成,本地联盟内传递
- AS 分类
文章来源: rivers.blog.csdn.net,作者:宝山的博客,版权归原作者所有,如需转载,请联系作者。
原文链接:rivers.blog.csdn.net/article/details/104698674
- 点赞
- 收藏
- 关注作者
评论(0)