BGP路由协议以及相关实验分析
一、BGP概述
1、自治系统——AS
自治系统(AS)是由一个技术管理机构管理,使用统一选路策略的一组路由器集合。
自治系统编号范围:1-65535,其中1-64511是互联网上注册公有AS号,类似公网IP地址。64512-65535是私有AS号,类似私网IP地址
- 同一个技术管理机构管理
- 统一选路策略
- 路由器的集合
2、动态路由分类
【1】按自治系统分类
IGP:自治系统内部路由协议,主要:RIP1/RIP2、OSPF、ISIS、EIGRP(思科私有协议)
IGP是运行在AS内部的路由协议,主要解决AS内部的选路问题,发现、计算路由
EGP:自治系统之间的路由协议,通常:BGP
EGP是运行在AS与AS之间的路由协议,他解决AS之间选路问题。
【2】按协议类型分类
距离矢量路由协议(通告的是结果):Rip1/2、BGP(路径矢量协议)、EIGRP(高级距离矢量协议)
链路状态路由协议(通告的是链路状态析信息):OSPF、ISIS ###SPF最短路径算法
补充知识:
DNS
DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)
- 一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系
- 如果新计算机接入网络,将这个信息注册到数据库中
- 用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址
3、BGP概念
边界网关协议( Border Gateway Protocol , BGP )是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。
BGP是一种运行在AS与AS之间的动态路由协议,主要作用是在AS之间自动交换无环路由信息以此来构建AS的拓扑图,从而消除路由环路并实施用户配置的路由策略。
目前公网网络条目众多,IGP协议无法承载,而BGP可以轻松应对,通常BGP协议用于ISP和ISP之间或跨域地域总、分公司之间的路由信息交换
4、BGP的特征
- 传输协议:TCP,端口号179
- BGP是外部路由协议,用来在AS之间传递路由信息
- 是一种增强的路径矢量路由协议
- 拥有可靠的路由更新机制
- 具备丰富的Metric度量方法
- 无环路协议设计
- 为路由条目附带多种属性信息
- 支持CIDR(无类别域间选路)
- 丰富的路由过滤和路由策略
- 无需周期性更新
- 路由更新时只发送增量路由
- 周期性发送KeepAlive报文以保持 TCP连通性
二、BGP工作原理
1、BGP报文
●Open报文
OPen报文是TCP建立后发送的第一个报文,用于建立BGP对等体之间的连接关系,
主要包含BGP版本号、本地AS编号、Holdtime等信息
●UPdate报文
Update报文用来在BGP之间更新路由信息,Updata报文可以通告多条属性相同的可达路由信息
也可以撤销多条路由不可达的路由信息
●Notification报文
报文的作用是当BGP检测到错误状态时候,立即向对等体发送Notification报文,之后BGP就会中断
只要收到Notification报文就会返回idle状态
●Route-Refresh报文
用来告知对等体所支持路由的刷新能力,BGP的入口策略路由发生变化,本地的BGP路由会向对等体发送
Route-Refresh报文,收到信息后,对等体将其路由信息重新发送给本地BGP路由器
●KeepAlive报文
该报文在对等体之间周期的发送报文,用以保持连接的有效性并维护其连接,KeepAlive报文只有一个BGP
报文头,默认KeepAlive报文发送周期为60S,保持时间180S,这个类似于OSPF中的Hello报文
2、BGP数据库(重点)
- IP路由表:全局路由信息库,包括最优的IP路由信息
- BGP路由表:BGP路由信息库,包括本地BGPSpeak通告的路由信息,将其最优的添加到路由表中
- 邻居表:对等体邻居清单表,包括对等体两端的邻居信息及邻居列表
- Adi-RIB-In:对等体宣告给本地的Speak的未处理的路由信息库
- Adjust-RIB-OUT:本地Speak宣告给指定的对等体路由信息库
3、BGP的类型
两种邻居:IBGP和EBGP
IBGP:同一个AS内部BGP邻居关系,IBGP邻居是指运行BGP协议的对等体两端在同一个AS域内,属于BGP AS内部
EBGP:AS之间的BGP邻居关系,EBGP通常指运行BGP协议的对等体两端在不同AS内部
4、BGP的配置思路
- 启用BGP,后面跟AS系统号
- 宣告Route-id,建立邻居关系用
- 宣告和谁建立邻居关系,
- 通告BGP路由,(network、import)
5、BGP配置注意事项
用环回口建立邻居需要注意的点
需要修改更新源,默认更新源是物理口,需要修改成环回口。
使用回环地址的原因是环回口稳定,只要路由器启动着,环回口就不DOWN,而物理链路可能会受线路或者接口等因素的影响导致对等体关系有问题,因而一般BGP建立对等体都是环回口来建。
三、BGP的配置命令
1 [R1]router id 1.1.1.1 //RID为回环地址
2 [R1]ospf //进入ospf模式
3 [R1-ospf-1]area 0 //位于骨干区域
4 [R1-ospf-1-area-0.0.0.0]network 15.0.0.0 0.0.0.3 //宣告网段
5 [R1]bgp 100 //创建bgp编号为100
6 [R1-bgp]peer 2.2.2.2 as-number 100 //环回口建邻居
7 [R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0 //用自己的回环口和别人建立联系
8 [R1-bgp] network 1.1.1.1 32
[R1] display bgp peer //查看BGP邻居
[R1] display routing-table // 查看BGP路由表
[R1-bgp] import-route ospf 110 //注入ospf 中的路由或者注入ISIS
四、BGP的相关实验分析
实验要求:
通过BGP建立实现R3和R5的通信
操作步骤如下:
1、配置好各路由器的IP地址以及回环地址,此步骤就不在此详细介绍
2、因为OSPF需要使用OSPF建立控制层面的关系,故R1、R2和R5在Area 0区域内进行OSPF配置,命令如下(举例R1,其他与此方法相同):
1 [R1] router id 1.1.1.1 //全局模式下,设置RID,全局通用
2 [R1]ospf 1 //进入ospf
3 [R1]area 0.0.0.0 //area 0区域
4 [R1]network 1.1.1.1 0.0.0.0 //宣告端口地址网段以及回环地址,有什么说什么
5 [R1]network 15.0.0.0 0.0.0.3
6 [R1]network 12.0.0.0 0.0.0.3
3、配置IBGP的协议,将R5的两个业务层面的loopback地址宣告出来,R1、R2、R5建立邻居关系,具体命令如下:
1 [R1]bgp 100 //R1分别和R2、R2建立对等体关系
2 [R1-bgp]peer 2.2.2.2 as-number 100
3 [R1-bgp]peer 2.2.2.2 connect-interface LoopBack0 //创建bgp编号为100 ( 也就是AS100 )
4 [R1-bgp]peer 5.5.5.5 as-number 100 //配置BGP的Router ID
5 [R1-bgp]peer 5.5.5.5 connect-interface LoopBack0 //指定对等体的环回口IP地址及其所属的AS编号
6
7 [R2]bgp 100
8 [R2-bgp]peer 1.1.1.1 as-number 100
9 [R2-bgp]peer 1.1.1.1 connect-interface LoopBack0
10 [R2-bgp]peer 5.5.5.5 as-number 100
11 [R2-bgp] peer 5.5.5.5 connect-interface LoopBack0
12
13
14 [R5]bgp 100
15 [R5-bgp]peer 1.1.1.1 as-number 100
16 [R5-bgp]peer 1.1.1.1 connect-interface LoopBack0
17 [R5-bgp]peer 2.2.2.2 as-number 100
18 [R5-bgp]peer 2.2.2.2 connect-interface LoopBack0
19 [R5-bgp]network 202.0.1.0 24 //只宣告了一个业务层面的IP网段,另一个业务层面网段则是在OSPF中宣告了(宣告BGP路由的方式有network、import)
如下图所示可以看到IBGP关系已经建立成功
4、R2和R3建立EBGP邻居关系,并在R2上注入ospf以及静态路由具体步骤如下:
1 [R2]ip route-static 3.3.3.3 255.255.255.255 23.0.0.2 //建立静态路由
2 [R2]bgp 100
3 [R2-bgp]peer 3.3.3.3 as-number 100
4 [R2-bgp]peer 3.3.3.3 connect-interface LoopBack0
5 [R2-bgp]peer 3.3.3.3 ebgp-max-hop 2
6 //ASBR从ebgp邻居学习到的路由传递给ibgp邻居时, 修改该路由转发数据到对方AS的数据的下一跳为自己
7 [R2-bgp]import-route static //注入静态路由
[R2-bgp]import-route ospf //注入OSPF
8 [R3]ip route-static 2.2.2.2 255.255.255.255 23.0.0.1 //建立静态路由
9 [R2]bgp 200
10 [R3-bgp]peer 2.2.2.2 as-number 100
11 [R3-bgp]peer 2.2.2.2 ebgp-max-hop 2
12 [R3-bgp] peer 2.2.2.2 connect-interface LoopBack0
配置完成之后,在R3可以看到EBGP
5、测试,在R3上pingR5的loopback1和2 的地址,看是否能通