一:BGP概述
IGP---内部网关协议---OSPF RIP EIGRP ISIS
EGP--外部网关协议---EGP BGP
(一):AS-自治系统
1.范围
2.自治
AS
号---用来区分和标识不同的AS
16位二进制构成 0-65535 共有AS号---1-64511 私有AS号:64512-65534
拓展AS号:将as号从26位二进制拓展到32位二进制
BGPV4
--
BGPV4+(MPbgp)---
BGP传递的是路由条目信息---
RIP---无类别的距离矢量路由协议
BGP
--无类别的路径矢量路由协议
BGP
传递路由信息会携带子网掩码
不同点:1.BGP不需要自行计算路由信息
3.BGP不支持负载均衡--BGP设计了很多的路径属性
二:BGP的特性---1.可控性 2.可靠性 3.AS-BY-AS
周期更新--BGP注意一定是不存在周期更新的
触发更新
BGP
为了确保数据包传递的可靠性,在传输层使用
TCP
进行传输
BGP
的端口号:
179
TCP
传输问题:
转发效率低 占用资源大
TCP
只能单播传输,这就导致
BGP
建领只能手工指定
BGP
对等体----IBGP对等体 EBGP对等体
BGP
--边界网关协议
BGP
对等体----IBGP对等体 EBGP对等体
非直连建邻---存在路由---BGP为了满足EBGP对等体之间使用直连建领
设计EBGP的数据包TTL值为1,满足IBGP对等体之间使用非直连建领设计IBGP的数据包TTL值为
255
三:BGP的数据包
BGP
的公共头部
![](https://i-blog.csdnimg.cn/blog_migrate/b16ac9d06d50acf94cc5d71fbe91f4b5.png)
发现建立和保活对等体关系
建立--OPEN包
![](https://i-blog.csdnimg.cn/blog_migrate/06f40e9e52b207c57265b106718cab7c.png)
AS号的验证
---在建立BGP对等体过程中需要指定对等体的AS号,之后发送的OPen包中会携带指
定的AS号,如果对端设备AS号一致则可以建 立对等体,如果不一致将会导致建立对等体失败。
BGP也存在RID
---规则和OSPF的RID规则完全一致
认证---
更新源地址---
保活时间---默认180s,时间不一致将不会导致建立对等体失败,而是 会按照时间更小的去统一
keeplive包-
--用来保活BGP对等体关系,默认保活时间的1/3发送一个
作用
2
:用来当作
OP
en包的临时确认包---用来确认对端发送的OPen包中携带的参数,如果参数协
商成功则会发送Keeplive报文。
UPdate包
![](https://i-blog.csdnimg.cn/blog_migrate/c1bfa3b148b63fc54f097664e7ac6282.png)
四:BGP的状态机----仅用来表示建立对等体过程的状态
![](https://i-blog.csdnimg.cn/blog_migrate/0972adda0e696387c96b693ff31b3a0e.png)
Idle-
---存在一个监测的环节---监测建立对等体的目标IP地址是否本地路由可达
![](https://i-blog.csdnimg.cn/blog_migrate/2a9792e8df32bbf99fa253429d55f450.png)
五:BGP的工作过程
1
,基于
IGP
(静态、直连、
RIP
、
OSPF...)
实现路由可达,原因:BGP
需要建立
TCP
会话(单播)
2
,指定对等体关系,邻居之间单播传输,通过三次握手,建立TCP
会话通道。之后所有的
BGP
通
信都将基于
TCP
会话通道来传输。并且依靠TCP
提供传输的可靠性
3
,使用
OPEN
报文和
Keeplive
报文进行邻居关系的建立。
OPEN报文用来携带建邻使用的参数,
keeplive
报文用于
OPEN
报文参数的确认和BGP
对等体的保活。最终完成对等体关系的建立。生成
邻居表,存储BGP对等体关系信息。
4
,建立邻居关系后,使用
update
报文来共享路由条目信息。
信息中将携带目标网络号,掩码及路径属性;之后,将发送以及收集到的路由信息记录在一张表中
--- BGP
表。
5
,之后,会将
BGP
表中最优的路由信息(通过路径属性选择的结果)加载到路由表中。
6
,收敛完成后,将使用
keeplive
报文进行对等体之间周期保活,默认的保活时间为180S(
hold
time
),发送周期为
60S
。
7
,如果这个过程中出现任何问题,都将使用
notification
报文进行告警。
8
,如果出现结构突变(网段消失或者新增网段),则将使用update报文进行触发更新,并通告给
其他的对等体。
六:BGP的路由黑洞
![](https://i-blog.csdnimg.cn/blog_migrate/b3344af20a52712e4fb954019762ac6d.png)
1.构建全连的BGP网络
2.重发布---在IGP协议中引入BGP路由
3.MPLS--
七:BGP的防环
水平分割---EBGP水平分割 IBGP水平分割
EBGP水平分割
BGP
为了解决
EBGP
水平分割专门设计了一个
AS_PATH
属性
![](https://i-blog.csdnimg.cn/blog_migrate/ba90a57edcfe6687bcb68cac32673679.png)
IBGP水平分割
----如果设备从一个IBGP对等体处学习到一条IBGP路由,
将不能传递给其他的IBGP对等体。
![](https://i-blog.csdnimg.cn/blog_migrate/13c8c275e3d0e5067068952f91566e9e.png)
在
AS
内部构建全连的
BGP
网络
反射器
联邦
八:BGP的基础配置
EBGP
对等体建立--直连链路建邻
[r1]bgp 1
---不是进程号而是该设备所处的AS号
[r1-bgp]router-id 1.1.1.1
--手工配置RID
[r1-bgp]peer 12.0.0.2 as-number 2
---对端所处的AS号
Peer
--对等体的IP地址
V
--BGP版本
AS
--对等体所处的AS号
MsgRcvd MsgSent
---从该对等体处接收的BGP数据包/发送给该对等体的BGP数据包 OutQ---队
列,指示剩余未发送BGP数据包的数量
Up/Down
--建立/断开对等体的时间
State
--和该对等体所处的状态
PrefRcv
--从该对等体出接收到的BGP路由数量
12.0.0.2 4 2 6 7 0 00:04:56 Established 0
在
AS
内部
IBGP
对等体关系的建立建议采用环回建邻的方式
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
---改变BGP对等体建立的更新源地址(注意,
必须保证建立对等体的双方地址匹配)
EBGP
使用环回建立
第一步--补充路由--建议使用静态
ip route-static 5.5.5.0 255.255.255.0 45.0.0.2
第二步
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
--需要修改EBGP对等体之间数据的TTL值
![](https://i-blog.csdnimg.cn/blog_migrate/f3f84c4db00338f4cdbc2d7bcb524f50.png)
2.发布BGP的路由
1.
network 1.1.1.0 255.255.255.0
----必须和路由表中记录完全一致
![](https://i-blog.csdnimg.cn/blog_migrate/251367e6a48aacfdda6cf8e0f4fe7487.png)
除network后面所有的参数都是BGP的路径属性
NextHop
---路径属性,谁发送的下一跳就是谁,注:对于自身发布的路由信息因为下一跳是自身,
所以该字段用0.0.0.0来表示
状态码
*
---代表路由可用,路由可用的条件是该网段信息下一跳属性在本身路由表中存在,只有可用的路
由信息才会参与路由优选
>
---代表该路由是最优的路由(比较路径属性的结果),只有最优的路由信息才会加载到自身的路
由表,并且传递
因为AS-BY-AS
特性的存在,导致
IBGP
对等体传递路由信息时
NextHop
--默认不做修改
![](https://i-blog.csdnimg.cn/blog_migrate/3de3c5feeefaebbe91795cebcb6e234d.png)
同时因为IBGP水平分割影响,使用设备两两建立对等体的方式解决
BGP
发布路由方法2---重发布
![](https://i-blog.csdnimg.cn/blog_migrate/edbabb99b35b16e6ed6a6974bf27daf9.png)
Ogn
----起源码,标注路由信息的来源
Origin :
i - IGP
--代表这条路由起源自IGP内部,比如说NATWORK
e - EGP
---代表这条路由起源EGP这款协议,现已淘汰
? - incomplete
---除了上述两种方式获取的路由信息,都会标注?
BGP
的路由聚合--汇总
自动聚合---
[r1-bgp]summary automatic
问题1:只能对重发布的路由信息进行聚合
S - Stale
--抑制----当一条路由信息标记为抑制,那么该路由信息
即使优选也不会在继续传递
问题
2
:自动聚合只能主类聚合
问题3:自动聚合不够灵活
优点---聚合后的网段信息可用且优,也会加载到自身的路由表中,并指向空接口----相当于自动生
成了一条防环路由。
![](https://i-blog.csdnimg.cn/blog_migrate/93f4081366b29c2b538c055b9c261d09.png)
手工聚合
问题1:明细路由不会被抑制
解决办法
[r1-bgp]aggregate 172.16.0.0 22 detail-suppressed
----抑制所有明细路由
解决方法2--使用抑制策略(不能单独使用,只能关联路由策略)
1.抓取流量(想要抑制的流量)
[r1]ip ip-prefix bb permit 172.16.1.0 24
2.创建路由策略
[r1-route-policy]display this
[V200R003C00]
#
route-policy bb permit node 10
if-match ip-prefix bb
-----因为抑制策略本身具备拒绝数据的功能,所有在使用路由策略时不能方通
空表,否则将导致匹配所有流量,将会抑制所有的明细信息
3.使用抑制列表
[r1-bgp]aggregate 172.16.0.0 22 suppress-policy bb
--注意名称必须和路由策略一致
问题2:会清除一些路径属性--主要是as_path属性的缺少有可能导致环路问题
[r1-bgp]aggregate 172.16.0.0 22 suppress-policy bb as-set
---在聚合路由的同时激活 as-set
,作
用:会继承明细路由的as_path属性当聚合路由来自不同的AS
时,一但激活该关键字那么对于聚合
的路由而言会继承所有明细路由的AS_
path属性值用来防止环路问题,同时会将这些明细路由的as
号用{}括起来在选路的角度BGP会将其视为一个整体。
ATOMIC_AGGREGATE
---预警属性---
AGGREGATOR
--会记录聚合路由产生者的RID和AS号
聚合方法三
可以直接发布一条指向聚合网段的路由信息
九:反射器
---router refleter----在一定条件下,可以将一些运行了BGP的设备配置为路由反射器,成为路由反
射器的设备在一定条件下可以反射学习到的IBGP路由
![](https://i-blog.csdnimg.cn/blog_migrate/cb0a67e1efb6b9a7069c5e89c91bacb1.png)
反射器
客户---必须在配置反射器的同时至少指定自身的一个或者多个
IBGP对等体成为自身的客户
非客户
反射簇---BGP将反射器和客户之间形成的系统叫做反射簇,并且使用形成该反射簇的设备RID作为
簇ID
十:路由反射器反射规则----
1.如果路由反射器从自身客户处学习到一条IBGP路由信息,那么他将反射给自身所有的客户和非
客户
2.如果路由反射器从自身非客户处学习到一条IBGP路由信息,那么他将反射给自身的客户,但是
不会反射给其他的非客户 ----非非不传
3,路由反射器只能反射可用且优的IBGP路由
注意:反射的路由信息也需要遵循BGP
本身路由传递的规则
(
IBGP
水平分割的限制)
同时在一个
AS
内部允许配置多个反射器,并且设备的身份可以多个
BGP
设计了两个属性用来反射器环境的防环
BGP
设计了两个属性用来反射器环境的防环
O
riginator---起源者ID:产生这条反射路由的设备的RID
只有第一个反射器才会添加该属性,之后其他的反射器只反射不能修改
![](https://i-blog.csdnimg.cn/blog_migrate/4b24c852ed7e3d60b7a77b9cdee27397.png)
Cluster_ID---簇列表---
![](https://i-blog.csdnimg.cn/blog_migrate/705a7a4a080cd4e0021709dc55fea511.png)
反射器的配置
[r3-bgp]peer 2.2.2.2 reflect-client
---指定2.2.2.2成为R3的客户
联邦的配置
[r2]bgp 64512
---联邦设备启动as号必须使用联邦的小AS号
[r2-bgp]confederation id 2
----声明自身是联邦并且属于AS 2
联邦内部IBGP的建立
![](https://i-blog.csdnimg.cn/blog_migrate/c07189329a3222562bb8e0d3ca31a2bb.png)
注意环回建立也需要修改更新源地址
联邦之间
EBGP
对等体关系的建立
[r3-bgp]confederation peer-as 64513
-----需要建立联邦EBGP对等体的设备必须声明对端所属的联
邦AS号
![](https://i-blog.csdnimg.cn/blog_migrate/9aaa1b7413bc676ae1f18105e9b045c7.png)