3.1 BGP 基础实验
3.1.1 实验介绍
3.1.1.1 学习目标
1. 实现 IBGP 的配置
2. 实现 EBGP 的配置
3. 观察 BGP 的邻居表
4. 实现 BGP 更新源的配置
5. 实现 EBGP 多跳的配置
6. 观察 IBGP 和 EBGP 中路由的下一跳的变化
3.1.1.2 实验组网介绍
设备连接方式、IP 地址规划、BGP AS号如图所示,所有设备均创建 Loopback0 接口,IP地址为 10.0.x.x/32,其中x为设备编号,所有设备都使用 Loopback0 接口IP 地址作为 BGPRouterID。R1、R5 上存在 Loopback1 模拟用户网段。R2、R3、R4之间运行 OSPF,在 R2、R3、R4的互联接口、Loopback0 接口上激活 OSPF
3.1.1.3 实验背景
你是公司的网络管理员。公司的网络采用了 BGP协议作为路由协议。公司的网络由多个自治系统组成,不同的分支机构使用了不同的 AS号,现在你需要完成公司网络的搭建工作。在公司总部使用了 OSPF 作为 IGP,公司内部不同分支机构使用的是私有的 BGP AS号。在完成网络搭建以后,你还需要观察 BGP 路由信息的传递。
3.1.2 实验任务
3.1.2.1 任务思路
1. 设备 IP 地址配置。
2. 配置 AS 64512 内的 OSPF。
3. 配置 AS 64512 内的全互联 IBGP 对等体关系。
4. 配置 AS 64512、AS 64513、AS 64514 之间的 EBGP 对等体关系。
5. 在 R1、R5 上将 Loopback1 接口路由发布到 BGP,在 R2、R4 上修改 BGP 下一跳地址。
3.1.2.2 任务步骤
步骤 1、互联接口、回环口 IP 地址配置
# 配置 R1 的 GE0/0/0、Loopback0、Loopback1 接IP 地址
# 配置 R2 的 GE0/0/0、GE0/0/1、Loopback 0 接口 IP 地址
# 配置 R3 的 GE0/0/0、GE0/0/1、Loopback0 接口 IP 地址
# 配置 R4 的 GE0/0/0、GE0/0/1、Loopback0 接口 IP 地址
# 配置 R5 的 GE0/0/0、Loopback0、Loopback1 接口IP 地址
# 在 R2、R4 上检查 IP 地址连通性
步骤 2、配置 AS 64512 的 OSPF
R2、R3、R4 使用 Loopback0 接口地址作为 Router ID。
# 配置 R2,在 Loopback0、GE0/0/1 接口上激活 OSPF
# 配置 R3,在 Loopback0、GE0/0/0、GE0/0/1 接口上激活 OSPF
# 配置 R4,在 Loopback0、GE0/0/0 接口上激活 OSPF
# 在 R3 上查看 OSPF 邻居的概要信息
R3 与 R2、R4 之间已经建立起 OSPF 邻居关系
# 在 R3 上查看 OSPF 路由表
R3 已经学习到 R2、R4的 Loopback0 接口路由
步骤 3、配置 IBGP 对等体
在 R2、R3、R4 之间基于 Loopback0 接口建立全互联的 IBGP 对等体关系。
# R2 上配置 BGP
BGP是一种在自治系统(AS)之间交换路由信息的协议,它使用TCP作为传输协议。
以下是这些命令的解析:
[R2]bgp 64512
- 进入BGP视图,并指定该设备的AS(自治系统)号为64512。AS号是一个唯一标识符,用于区分不同的自治系统。
[R2-bgp]router-id 10.0.2.2
- 配置BGP的Router ID为10.0.2.2。Router ID是一个32位的IP地址,用于在BGP对等体之间唯一标识一个BGP路由器。
[R2-bgp]peer 10.0.3.3 as-number 64512
- 配置与IP地址为10.0.3.3的BGP对等体的关系,并指定该对等体的AS号为64512。这意味着R2和IP地址为10.0.3.3的设备属于同一个AS(即AS 64512)。
[R2-bgp]peer 10.0.3.3 connect-interface LoopBack 0
- 指定与IP地址为10.0.3.3的BGP对等体建立TCP连接时使用的接口为LoopBack 0。
# R3 上配置 BGP
# R4 上配置 BGP
# 分别在 R2、R3、R4 上检查 BGP 对等体状态
以下是对显示信息的详细分析:
BGP local router ID : 10.0.2.2
- 这表示R2设备的BGP Router ID是10.0.2.2。Router ID用于在BGP会话中唯一标识该设备。
Local AS number : 64512
- 这表明R2设备所属的AS号是64512。
Total number of peers : 2
- 这说明R2设备上配置了两个BGP对等体。
Peers in established state : 2
- 这两个BGP对等体当前都处于“Established”状态,意味着BGP会话已经成功建立,双方可以开始交换路由信息。
下面的表格显示了每个BGP对等体的详细信息:
Peer
列显示了每个对等体的IP地址。
V
列表示BGP版本,这里都是4,代表使用的是BGP版本4。
AS
列显示了对等体的AS号,这里两个对等体的AS号都是64512,与R2设备相同。
MsgRcvd
列表示R2从对等体接收到的BGP消息数量。
MsgSent
列表示R2向对等体发送的BGP消息数量。
OutQ
列表示等待发送到对等体的消息队列长度,这里都是0,表示没有待发送的消息。
Up/Down
列显示了BGP会话的持续时间或自上次会话断开以来的时间。
State
列显示了对等体的BGP会话状态,这里都是“Established”,表示会话已经建立。
PrefRcv
列显示了从对等体接收到的路由的优选值,这里都是0,可能是因为当前没有收到路由更新或者配置中没有启用与优选值相关的策略。从这些信息可以看出,R2设备与IP地址为10.0.3.3和10.0.4.4的两个对等体之间的BGP会话都已成功建立,并且处于正常工作的状态。它们之间的BGP消息收发正常,没有消息阻塞或待发送的消息队列。这些对等体已经可以开始交换路由信息,以实现网络之间的路由可达性。
步骤 4、配置 EBGP 对等体
在 R1与 R2、R4 与 R5 之间基于 Loopback0 接口建立 EBGP 对等体关系,为保证能够正常建立,在 R1、R2 上配置静态路由使 Loopback0 之间路由可达(R4、R5 同样操作)。
# 在 R1、R2 上配置静态路由
# 在 R4、R5 上配置静态路由
# 检查环回口之间的连通性
# 配置 R1、R2 之间的 EBGP 对等体
peer 10.0.2.2:指定了对等体的IP地址为10.0.2.2。这个IP地址是R1想要配置其BGP属性的特定邻居的地址。
ebgp-max-hop 2:这设置了R1向该EBGP对等体发送BGP更新消息时所使用的TTL值。默认情况下,EBGP对等体之间的BGP消息TTL值为1,这意味着BGP消息在经过一个路由器之后就会因为TTL耗尽而被丢弃。在某些场景下,例如当BGP对等体之间有多层网络设备或者通过隧道连接时,可能需要增加BGP消息的TTL值,以确保消息能够到达对等体。
默认情况下,EBGP 连接允许的最大跳数为 1,这导致EBGP 对等体之间只能使用直连链路建立 EBGP 对等体关系,为使用环回口作为更新源需要手动修改 EBGP 连接允许的最大跳数
# 配置 R4、R5 之间的 EBGP 对等体
# 在 R1、R5 上检查 EBGP 对等体状态
R1与 R2、R4 与 R5 之间已经成功建立 EBGP 对等体关系
步骤 5、在 BGP 中发布路由
在 R1、R5 上将 Loopback1 接口路由发布到 BGP
# 在 R1、R5 上通过 network 命令发布路由
# 在 R3 上查看 BGP 路由表
可以看到此时 R3 上已经学习到 R1、R5 上发布的 BGP 路由,但是都是非有效路由,这是因为它们的下一跳在 R3 上都不可达,为此可以在 R2、R4 上通过 next-hop-local 命令修改下一跳地址为 R2、R4 的更新源地址
# 在 R2、R4 上将路由的下一跳地址修改为自身
# 再次在 R3 上查看 BGP 路由表
此时两条 BGP 路由都变成了有效、最优的状态。
# 在 R1、R5 上查看 BGP 路由表
R1、R5 之间相互学习到了对端 Loopback1 接口路由。
# 测试 R1、R5 的 Loopback1之间的连通性