外部BGP的基础配置(上)

简介: 文章目录系列文章目录实验目的实验拓扑实验步骤

实验目的

通过对外部BGP邻居的建立的两种情况的实验,从而学习到BGP外部邻居建立所需要关注的知识点。同时还将对如何将路由插入到BGP表中对BGP表和对BGP表的查看进行实验验证。

实验拓扑


本次实验拓扑由两台路由器搭建,R1和R2之间连接有两条以太网线缆。其中e0/0口采用12.0/24网段,而e0/1接口采用21.0/24网段。并且R1和R2上都存在地址为X.X.X.X/24的环回口。

实验步骤

  1. 首先配置好R1和R2各个接口的IP地址,保证直连接口可达。
  2. 开启R1和R2之间的E0/0接口,然后R1和R2之间通过该接口建立外部BGP邻居关系,并且R1的AS号为1,R2的AS号为2。
R1#conf t
R1(config)#int e0/0
R1(config-if)#ip add 10.10.12.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int e0/1
R1(config-if)#ip add 10.10.21.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int loo0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#router bgp 1    //指明自己所属的AS号
R1(config-router)#neighbor 10.10.12.2 remote-as 2   //对端邻居路由器的IP地址和AS号
R1(config-router)#exit 
R2#conf t
R2(config)#int e0/0
R2(config-if)#ip add 10.10.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int e0/1
R2(config-if)#ip add 10.10.21.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int loo0
R2(config-if)#ip add 2.2.2.2 255.255.255.0  
R2(config-if)#no sh
R2(config-if)#router bgp 2
R2(config-router)#neighbor 10.10.12.1 remote-as 1
R2(config-router)#exit

注意上述配置命令中,R1和R2之间的AS号码必须相互对照。则R1所指定的邻居的AS号码和R2本地配置的BGP的AS号码一致,反之亦然。等待一段时间,则发现路由器产生BGP日志,则表示邻居建立成功。

*Mar 1 00:26:37.175: %BGP-5-ADJCHANGE: neighbor 10.10.12.1 Up

此处总结一下建立外部BGP邻居所需要注意的:

  • 两端路由器的AS号码必须相互对照一致
  • BGP路由器的RID必须唯一
  • 如果配置了认证,那么MD5认证必须一致
  • BGP所需要建立的TCP连接必须能够正常建立

由于上面的配置并没有对BGP路由器的RID进行手工配置,所以按照选取RID的顺序,两台路由器的RID分别为环回口地址 1.1.1.1 和 2.2.2.2。

R1#
R1#show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 1
BGP table version is 1, main routing table version 1
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.10.12.2      4     2      28      28        1    0    0 00:25:02        0
R2#show ip bgp summary
BGP router identifier 2.2.2.2, local AS number 2
BGP table version is 1, main routing table version 1
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.10.12.1      4     1      28      28        1    0    0 00:25:24        0

但是为了RID的可预测性,推荐在BGP进程下手工指定RID。

R1#conf t
R1(config)#router bgp 1
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#exit
R2#conf t
R2(config)#router bgp 2
R2(config-router)#bgp router-id 2.2.2.2
R2(config-router)#exit


同时我们还可以在R1和R2之间对BGP邻居关系配置MD5认证。

R1(config)#router bgp 1
R1(config-router)#neighbor 10.10.12.2 password cisco
R1(config-router)#exit
R2(config)#router bgp 2
R2(config-router)#neighbor 10.10.12.1 password cisco
R2(config-router)#exit

最后,由于BGP是建立在TCP连接之上的。因此要能够正确的建立BGP邻居关系,TCP连接正常是先决条件。

默认BGP建立TCP连接的方式是:

和目的地址为neighbor X.X.X.X命令中的X.X.X.X命令中的X.X.X.X尝试建立TCP连接

源地址为出接口的IP地址

因此,必须保证两端TCP的源目的的IP地址的相互一致性。

删除对BGP邻居配置的命令,然后开启R1和R2之间的E0/1接口。

现在R1和R2之间存在冗余链路,如果R1和R2之间需要建立外部BGP邻居的话,应该如何建立呢?

第一种方案是,在每条链路上都建立一个邻居关系,从而形成两个邻居关系。

第二种方案是,R1和R2上分别以环回口建立邻居关系,而底层可以采用静态路由使得去往各自的环回口的路由负载均衡。

很显然,使用第二种方案更加合理。因为每建立一个BGP连接都会消耗一定的系统资源,因此减少BGP邻居关系数量将有利于路由器的资源最大化利用。

我们用R1和R2的环回口相互建立邻居关系,但首先保证环回口可达性。

在R1和R2上配置静态路由,并且使之负载均衡。

R1(config)#ip route 2.2.2.0 255.255.255.0 10.10.12.2  
R1(config)#ip route 2.2.2.0 255.255.255.0 10.10.21.2
R2(config)#ip route 1.1.1.0 255.255.255.0 10.10.12.1 
R2(config)#ip route 1.1.1.0 255.255.255.0 10.10.21.1

接着进入BGP进程中,利用环回口建立邻居关系。

R1(config)#router bgp 1
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#neighbor 2.2.2.2 remote-as 2
R1(config-router)#exit
R2(config)#router bgp 2
R2(config-router)#bgp router-id 2.2.2.2
R2(config-router)#neighbor 1.1.1.1 remote-as 1
R2(config-router)#exit

但是在完成上述配置之后,并没有发现邻居成功建立。

这是因为默认外部BGP邻居之间所发送的所有数据包的TTL值,都为1。

由于此时我们利用环回口建立邻居,所以跳数大于1,因此必须修改TTL值。


R1(config)#router bgp 1
R1(config-router)#neighbor 2.2.2.2 ebgp-multihop 2    //将TTL值修改为2
R1(config-router)#exit 
R2(config)#router bgp 2
R2(config-router)#neighbor 1.1.1.1 ebgp-multihop 2
R2(config-router)#exit

然后等待一段时间,依然发现BGP邻居无法建立,结合上个步骤中总结的BGP邻居建立的注意点,我们发现,应该是TCP连接建立的IP地址无法对应。

R1尝试和2.2.2.2建立TCP,源IP为10.10.12.1 或者 10.10.21.1

R2尝试和1.1.1.1建立TCP,源IP为10.10.12.2 或者 10.10.21.2

因此,必须修改建立TCP的源地址。


R1(config)#router bgp 1
R1(config-router)#neighbor 2.2.2.2 update-source loo0
R1(config-router)#exit 
R2(config)#router bgp 2
R2(config-router)#neighbor 1.1.1.1 update-source loo0
R2(config-router)#exit

终于,R1和R2之间的BGP邻居关系正常。

*Mar 1 02:35:05.535: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Up

这种冗余物理链路的BGP邻居关系,我们可以采用建立环回口的方式,这是一条逻辑的邻居关系,下层位IGP。因此如果冗余的话需要由IGP来决定。

下面给出R1和R2之间的所有邻居配置:

R1(config)#router bgp 1
R1(config-router)#no synchronization
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#bgp log-neighbor-changes
R1(config-router)#neighbor 2.2.2.2 remote-as 2 
R1(config-router)#neighbor 2.2.2.2 ebgp-multihop 2
R1(config-router)#neighbor 2.2.2.2 update-source loo0
R1(config-router)#no auto-summary
R2(config)#router bgp 2
R2(config-router)#no synchronization
R2(config-router)#bgp router-id 2.2.2.2 
R2(config-router)#bgp log-neighbor-changes
R2(config-router)#neighbor 1.1.1.1 remote-as 1
R2(config-router)#neighbor 1.1.1.1 ebgp-multihop 2
R2(config-router)#neighbor 1.1.1.1 update-source loo0
R2(config-router)#no auto-summary

验证BGP邻居关系。

BGP邻居建立要经历以下几个状态:

ldle:BGP被管理性down或者在尝试下一次建立

Connect:BGP进程在等待down或者尝试下一次建立。这个状态无法判断TCP连接是否建立成功。

Active:TCP连接正在建立,同时BGP还未发出BGP数据包。

Opensent:TCP连接建立完成,同时BGP发出BGP数据包。

Openconfirm:收到了邻居的Open数据包,接着BGP只需要发送keeplive数据包保活。

Established:BGP邻居连接建立完成。

目录
相关文章
|
2天前
|
网络协议 网络虚拟化 网络架构
路由器配置静态和默认路由实现VLAN之间的通信
路由器配置静态和默认路由实现VLAN之间的通信
4 0
|
2天前
|
负载均衡 网络协议 网络架构
|
10月前
|
网络协议
BGP的基础配置
BGP的基础配置
71 0
|
存储 网络协议 安全
BGP 路由反射:全互联内部 BGP (IBGP) 的替代方案
本文档为 Internet 团体指定了 Internet 标准跟踪协议,并请求讨论和改进建议。本协议的标准化状态和现状请参考当前版本的《互联网官方协议标准》(STD 1)。本备忘录的分发不受限制。
214 0
BGP 路由反射:全互联内部 BGP (IBGP) 的替代方案
外部BGP的基础配置(下)
文章目录 系列文章目录 实验目的 实验拓扑 实验步骤
120 0
外部BGP的基础配置(下)
|
网络协议 网络架构
Cisco之路由重分发和配置NAT
在一个大型网络中可能存在着多种路由协议,因此关系到路由重分发的问题。网络架构如下图所示:架构说明1 R1为总公司路由器;2 R2、R5为上海分公司路由器;3 R3、R4为杭州分公司路由器;4 总公司和分公司之间使用OSPF协议,上海分公司使用RIP协议,而杭州分公司使用静态路由协议;5 所有分公司访问公网都通过总公司路由器R1实现;6 本地所带主机由Loopback1接口模拟;7 Loopback0使用192.168.255.0/24网段并且作为Router ID;一、配置基本信息1.R1配置R1(config)#hostname R1R1(config)#intR1(config-if)#n
Cisco之路由重分发和配置NAT
|
网络协议 网络虚拟化 网络架构
GRE 隧道配置案例(静态、动态路由)
GRE 隧道配置案例(静态、动态路由)
597 0
GRE 隧道配置案例(静态、动态路由)
|
网络架构 网络性能优化