浅谈BGP原理

BGP

思维导图
·概念及术语
·BGP特性
·BGP邻居关系的建立及BGP消息类型
·BGP表
·BGP基础部署
·BGP属性
·BGP路径选择
·BGP高级属性(团体等)

一.BGP的基本概念
1.BGP所解决的问题
BGP是为了解决不同路由域之间的消息交互而产生的,其作用是提供路由域间的路由系统,保证在各个自治系统之间交换无环的路由信息

2.自治系统的概念
自治系统内的路由器使用同一路由协议,自治系统号为16位的数字范围(1~65535),私有自治系统号64512 ~ 65535

3.BGP和IGP之间的关系
ISP和他的客户通常会使用一种IGP来进行他们的网络内部路由消息。客户与同一ISP下的另一客户,客户与Internet,ISP与ISP之间进行路由交换时会使用到BGP

二.BGP特性
1.BGP的路由通告选择
BGP只把自己使用的路由(最优)通告给邻居AS(自治系统)的对等设备,即只有BGP表中带>标识的最佳路由才会被通告。标有>的不一定会被添加到路由表中(管理距离),但是会被转发

2.BGP的路径选择
下文将会进行详细的介绍

3.BGP与TCP
BGP将TCP作为他的传输协议,TCP为BGP提供了面向连接的可靠传输。所有BGP任务他的所有通信都是可靠的,不存在在控制差错和错误重传机制。BGP使用179号端口,数据封存在TCP分段中,然后将这些数据封装进IP数据包

三.BGP的邻居关系
1.邻居建立过程概述
(1)建立TCP连接
(2)BGP开始发送OPEN消息
(3)交换了一对BGP OPEN消息之后,邻居就会进入established状态,即两个活跃BGP对等体之间的稳定状态,此时就可以交换BGP消息了

2.BGP邻居的特性
(1)BGP使用的是TCP179号端口
(2)设置保持激活间隔和保持时间
(3)当BGP邻居在同一AS内为ibgp邻居
当BGP邻居在不同AS内时为eBGP邻居
(4)BGP通过Route-ID来标识对等体身份,选举RID方式与OSPF类似
(5)邻居需要手动指定
(6)BGP邻居认证仅支持MD5认证

3.BGP的消息类型
·初始(OPEN)
·存活(Keepalive)
·更新(Update)
·通知(Notification)

(1)初始消息和存活消息
建立TCP连接后,发送的第一个消息就是初始消息,收到初始消息的BGP路由器发送一个存活消息,来确认这个初始消息,确认初始消息之后,TCP连接正式建立
初始消息中包含的主要内容
·本地AS号
·保持时间:多长时间没有收到下一个存活消息或更新消息BGP会话将断开

(2)更新消息
用于撤销路由和通告路由(网络前缀及属性)
在这里插入图片描述
每个更新消息只包含一条路由路径的信息,当多条路由信息拥有相同的策略时,会一个更新包包括好几条路径信息
Unfeasible Routes Legth:标识Withdrawn Routes的长度
Withdraw Routers:包含要撤销的路由列表
Total Path Attribute Length:标明Path Attributes部分和Network Layer Reachability Information两部分的长度。其值为零时,表示没有路由及其路由属性要通告。
Path Attributes:包含要更新的路由属性列表
Network Layer Reachability Information(NLRI):包含要更新的地址前缀列表

(3)通知消息
BGP路由器检测到错误是,发送通知消息,并在发送通知消息后马上断开连接

4.BGP的邻居状态
·空闲(Idle)
·连接(Connect)
·活跃(Active)
·初始发送(Open Sent)
·初始确认(Open Conform)
·建立(Established)

(1)空闲(Idle)
路由器正在查看路由表
(2)连接(Connect)
路由器找到了去往邻居的路由,并建立了TCP三次握手
(3)初始发送(OPEN Sent)
路由器发送初始消息后状态将变为初始发送
(4)活跃(Active)
路由器处于发送状态,5S内没有收到来自邻居的回复(存活消息),将变为活跃状态
(5)初始确认(Open Conform)
路由器收到了来自对方的确认消息
(6)建立(Established)
路由器之间建立了BGP邻居关系,可以收发更新和通知信息

四.BGP表
1.概念及作用
BGP拓扑结构表(topology table),也称为BGP RIB(路由信息数据库),负责维护BGP收到的NRRI(网络层可达性消息)。BGP不宣告路由,而是宣告PA(路径属性)以及一组共享相同PA值的NRLI

2.BGP表和IP表之间的关系
IP表中的有关IGP内容可以通过重分发或者network进BGP表,BGP再向其他路由器通告这些信息,BGP表中最佳可行的路由将被注入到本地BGP表中

3.IP表中路由项进入BGP表方式
·重分发进BGP
·BGP下通告网络
配置no-auto-summary时,IP路由必须与路由表中完全一致
配置auto-summary时,不必完全一致,子网即可
自动汇总默认关闭
在这里插入图片描述

五.BGP的部署
1.BGP邻居建立的要求
·相同的AS号(ibgp邻居),不同的AS号
·指定邻居
·可达性

2.TCP和全互联
BGP路由器只会向BGP邻居发送消息,他默认系统中的所有BGP路由器都两两建立了邻居关系

3.基本BGP配置
(1)全局配置模式下进入BGP路由模式
(2)路由模式下建立或关闭邻居关系
可选配置
(3)使用环回接口进行邻居关系的建立
(4)更改TTL来保证EBGP邻居多跳的问题(默认TTL=1,若非直连情况下,默认BGP消息无法到达)
(5)Ibgp邻居强制自己作为下一跳(默认路由器向IGBP邻居发送路由信息时,其路径的下一跳地址是EBGP邻居的地址,有时系统内路由去无法到达EBGP邻居,所以无法将条目加入路由表)

六.BGP属性
1.属性分类
·公认的和可选的
·必遵的和自决的
·传递的和非传递的

公认属性
公认属性:公认属性是所有路由器必须能够识别的属性,这些属性可以传递给BGP邻居
公认必遵属性:必须出现在所有的BGP更新中
公认自由决定属性:可以不出现在BGP更新中

·可选属性
可选属性:非公认的属性被称为可选属性。实施了可选属性的BGP路由器,可以根据属性的性质,把这个属性传播给其他BGP邻居,可选属性可以是传递的也可以是非传递的
可选传递属性:没有实施该属性的BGP路由器(即不支持该属性的BGP),应该把该属性完好无损的传递给其他BGP路由器
可选非传递:没有实施该属性的BGP路由器应该删除这个属性,且不能把它传输给其他BGP路由器

2.属性种类
(1)公认必遵
AS路径
若为内部自治系统的,PATH处不显示自治系统号,若为外部,每经过一个自治系统就就将自治系统号加入到PATH中

下一跳

源头(origin)
i:路由器通过network从IGP路由表中学到
?:重分发进的BGP
e:EGP引入的路由

(2)公认自决
本地优先级
告诉路由器(去往相同的网络中)哪条路径是离开自治系统的最佳路径,优先级越高,被选中的可能性就越大------只发送给IBGP对等体

(3)可选传递
聚合站
团体

(4)可选非传递
MED(多出口鉴别器)
在BGP表中的形式为Metric,EBGP间发送,数值越小越好
适用情况:一台路由器连入本自治系统优两条路径,这时通过对MED值得比较,来选择通过哪一条路径进入本自治系统

七.BGP路径选择
BGP根据一系列的属性及原则,来控制路径的选择
原则一:
优选权重(Weight,思科私有,本地路由器有效)最高的路由,初始权值32768
原则二:
优选路由器优先级最高的路由。一般默认所有路由的优先级为100,影响数据如何离开本地系统
原则三:
查看AS中的网络,优选由自治系统内部通告的网络
原则四:优选跨越最少AS的路径,是最常见的结果
原则五:
查看进入BGP的方式,优先选用源代码(Origin Code)最小的路由,IGP<EGP<incomplete
原则六:若拥有相同的源代码,则优选MED最小的路径
原则七:如果多条路由条目拥有相同的MED值,则优先选取外部路由(EBGP),再选取内部路由(IBGP),不会浪费自身系统的带宽资源,是第二常见的结果
原则八:
如果只剩下了内部路径,查找最近的IGP邻居(去往BGP最短的路径),看自治系统内的网络协议

------------以此为界限,底下为负载均衡条目
原则九:对于EBGP邻居关系来说选举较老的,建立较早的路由条目为最佳路由。比较稳定
原则十:
时间若都相等,选举BGP路由器ID最小的
原则十一:
如果去往的BGP路由器的路由器ID也相同(两条线路连往同一个EBGP),选取邻居IP地址最小的

将多条BGP路由添加到IP路由表中有以下规则
·如果特定NLRI的最佳路由是从选举过程中第一步到第八步之间选举出来的,那么BGP仅将这条路由放入路由表,因为这条路由就是最佳的路由
·如果特定NLRI的最佳路由是第八步之后确定的,那么BGP就会考虑许多将多条BGP路由放入IP路由表中
·即使BGP将多条路由放入路由表中,BGP也仍只会为每个NLRI选择一条路径作为最佳路由,而且该最佳路由就是BGP向邻居通告的那一条最佳路由

八.BGP对等体有关的高级属性
·对等体组(Peer Group)
·团体(Community)
·路由反射器(Roure Reflector)
·联盟(Confederation)
前两种工具用于对多个对等体之间的路由策略管理
后两种工具则主要是用于简化大量对等体间的IBGP管理

1.对等体组
解决问题:用于简化多个BGP对等体采用相同策略时的配置
思路:将执行同一策略的一组路由器,加入到同一个对等体组中,操作时不必对每个BGP邻居进行路由策略,只需要对对等体组进行操作即可
配置实现举例:
在这里插入图片描述
配置过程
(1).创建EBGP/IBGP对等体组
neighbor peer-group
(2).指定EBGP对等体组是哪个自治系统的
neighbor remote-as
(3).将邻居加入到对等体组中
neighbor peer-group
(4).正常对对等体组操作,就像对对等体操作一样,IP地址换成名

2.BGP 团体
解决问题:实现对一组路由进行操作
实现方法:使用路由映射表,将一组路由设置团体属性
对等体组是对一组路由器实施路由策略,而团体是对一组路由实施策略,路由器将Community属性设为某个标识自己的值后,就可以将路由加入团体中,可以为一条路由设置多个Community属性。当包含Community的属性的路由被聚合后,聚合路由将继承所有被聚合路由的Community属性

要匹配携带 Community 的路由,方法为使用 Community List,并且有数字 list 和命名 list两种,每两条语句之间相隔 10,以 10 递增,一组数字 list 最多支持 100 条语句,而命名 list 则不受此限制,但并不是所有 IOS 都支持命名 list。在使用 Community List 匹配指定路由条 目后,则可使用 route-map 来调用 Community List,从而为指定路由设置相应参数和策略, 最终应用该 route-map

Community List是来标识匹配路由条目,Route map再对Community List匹配出的路由条目进行操作

团体属性值
·No-Export如果接受到的路由携带该数值,则不能将该路由宣告给EBGP对等体(如果配置了BGP联盟则不能将该路由宣告到联盟之外)
·No-Advertise如果收到的路由携带该数值,则根本不能宣告该路由,不管是EBGP对等体还是IBGP对等体
·Local-AS如果接受到的路由携带该数值,那么将不能能将该路由宣告给EBGP对等体

配置实例
在这里插入图片描述
配置过程:
将某组路由设置某一团体属性
1.配置路由映射表,路由表模式下,实现条件和动作的对应
路由映射模式下
match ip address 《access-value》
set community local-AS
2.将路由映射表挂在某个邻居上
路由模式下
neighbor 192.168.212.1 route-map 1111
3.开启向某个邻居发送团体标记
neighbor 192.168.212.1 send-community

将某组路由划入一个团体中
将某组路由划入一个团体中
1.配置路由映射表,路由表模式下,实现路由项和团体值的映射
路由映射模式下
match ip address 《access-value》
set community NN:AA
2.将路由映射表挂在某个邻居上
路由模式下
neighbor 192.168.212.1 route-map 1111
3.开启向某个邻居发送团体标记
neighbor 192.168.212.1 send-community
4.邻居端对团体属性进行匹配,并进行二次操作
定义团体表
全局配置模式下 ip community-list permit NN:AA
route-map下进行匹配和动作的映射
match community
set ---------- 进行各种操作

3.路由反射器
解决问题:解决自治系统内部IBGP对等体必须全互联的问题
解决思路:将某台路由器配置为RR(Route Reflector,路由反射器),客户不再需要与每台IGBP路由器都建立对等关系,只要与RR建立对等关系即可,路由器反射器及其客户统称为簇
工作原理:路由反射器学习了所有客户的路由,与其他IBGP路由器不同,RR可以将这些路由器反射给其他客户以及其他非客户对等体,即RR可以将来自IBGP对等体的路由反射给其他客户。(默认BGP路由器是不会将来自IBGP的路由转发给IBGP邻居的)为了防止环路的出现,路由反射器不得更改从客户收到的路由属性

路由反射簇中的客户路由器可以与自治系统外部路由器建立EBGP对等体关系,但是只可以与簇内的RR或者其他客户路由器建立IBGP对等体建立IBGP对等体。路由反射器可以与簇外的路由器建立EBGP或者IBGP对等体关系
在这里插入图片描述
RR宣告路由的规则(非非不传递)
·如果路由学习自非客户IBGP对等体,那么只会宣告给客户路由器
·如果路由学习自某客户,则可以反射给所有客户和非客户路由器
·如果路由学习自EBGP对等体,则反射给所有的客户和非客户路由器
·如果客户全连接,那么RR不会将一个客户的路由反射给其他客户。仅将客户的路由反射给非客户对等体,并将非客户对等体路由反射给客户

RR缺点:容易造成单点故障,可以设置冗余

路由器本身也可以是其他路由器的客户,即嵌套式的路由反射簇
在这里插入图片描述
配置思路
1.在客户端建立和RR的BGP邻居关系
2.在RR处建立和客户的BGP客户关系
在这里插入图片描述
在这里插入图片描述
4.BGP联盟
解决问题:控制大量IBGP对等体
解决思路:将一个自治系统细分为一组自治系统,我们称之为成员自治系统,联盟中的发言者与同一成员AS中的对等体建立IBGP关系,而与其他AS中的对等体建立EBGP关系,BGP会给联盟分配一个联盟ID,该联盟ID被联盟外的对等体视为整个联盟的AS号
AS即为配置的AS,联盟的AS号为联盟ID
在这里插入图片描述

配置命令
1.正常建立联盟内部的AS号
2.bgp模式下宣告联盟标识即联盟外部认为的AS号
3.bgp模式下选宣告联盟内部的peer-group
4.联盟内部指定邻居AS时使用的是配置的AS
5.联盟外部指定邻居AS时使用的是指定的团体号
在这里插入图片描述
在这里插入图片描述

发布了24 篇原创文章 · 获赞 10 · 访问量 2378

猜你喜欢

转载自blog.csdn.net/flat0809/article/details/96831279
BGP