BGP基础配置+BGP路由发布

文章详细介绍了BGP基础配置,包括直连接口和环回IP建立对等体,解决路由发布问题,如下一跳属性调整、IBGP全联和OSPF配合。还展示了BGP路由发布过程和常见问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、BGP基础配置

1.使用直连接口IP地址建立EBGP对等体关系(对R1和R2间)

1)启动BGP协议

2)设置RID值

3)配置BGP对等体,并指定对等体所在AS号

对R2做以上同样的配置:

2.IBGP对等体关系建立(使用环回建立IBGP 对等体关系,R2-R3、R3-R4之间)

R2-R3之间:

配置OSPF :

解决方法:

R3-R4之间:

3.使用环回IP地址建立EBGP对等体关系(R4-R5之间,也可以用直连接口IP建立EBGP对等体关系)

解决方法:(双方分别配置去往对方的静态路由信息)

解决方法:(修改接口TTL值)

二、BGP的路由发布过程(基于上面的拓扑,实验路由发布)

通过network命令发布路由

解决方法:(把路径属性的下一跳改为本地)

解决方法:(建立全联,这里R2-R3-R4联了,但R2和R4没有联,所以在R2-R4建立IBGP对等体关系)

测试:


一、BGP基础配置

1.使用直连接口IP地址建立EBGP对等体关系(对R1R2间)

1)启动BGP协议

[ri]bgp 100    ----该数字为AS号,而非进程号。

2)设置RID值

[r1-bgp]router-id 1.1.1.1  全网唯一

查看BGP邻居表,这会没有BGP 信息

3)配置BGP对等体,并指定对等体所在AS号

[r1-bgp]peer 12.0.0.2 as-number 200  ---BGP协议需要手工指定邻居,且需要指定邻居所在AS编号。

这会查看BGP邻居表,停留在connect的状态,因为对端邻居还没起BGP服务

对R2做以上同样的配置:

[R2]bgp 200

[R2-bgp]router-id 2.2.2.2

[R2-bgp]peer 12.0.0.1 as-number 100

再次查看BGP邻居表,R1、R2建邻状态都为Established,说明R1,R2邻居建立成功。

2.IBGP对等体关系建立(使用环回建立IBGP 对等体关系,R2-R3R3-R4之间)

R2-R3之间:

[R2]bgp 200

[R2-bgp]peer 3.3.3.3 as-number 200

[R3]bgp 200

[R3-bgp]router-id 3.3.3.3

[R3-bgp]peer 2.2.2.2 as-number 200

查看BGP邻居表,这会的邻居状态为Idle,因为在建立IBGP全联时,我们先保证路由可达。所以我先配置且运行OSPF 协议使AS 200 内每台设备都能学到邻居路由信息。

配置OSPF :

查看BGP邻居表,这会的状态为Action,邻居建立失败;因为R2上peer邻居目的地址是3.3.3.3,而R3上接收的却是23.0.0.3,所以无法建立起邻居。

解决方法:

[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0

[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0

查看BGP邻居表,这会状态为Established,建邻成功;

R3-R4之间:

[R3]bgp 200

[R3-bgp]peer 4.4.4.4 as-number 200

[R3-bgp]peer 4.4.4.4 connect-interface LoopBack0

[R4]bgp 200

[R4-bgp]peer 3.3.3.3 as-number 200

[R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0

查看BGP邻居表:

3.使用环回IP地址建立EBGP对等体关系R4-R5之间,也可以用直连接口IP建立EBGP对等体关系)

[R4]bgp 200

[r4-bgp]peer 5.5.5.5 as-number 300

[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0

[r5]bgp 300

[r5-bgp]router-id 5.5.5 .5

[r5-bgp]peer 4.4.4.4 as-number 200

[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0

查看BGP邻居表,这会的邻居状态为Idle,因为R4、R5之间用EBGP建立对等体使用的是环回建立邻居,但双方没有对方的环回路由信息,所以建立不起来邻居。

解决方法:(双方分别配置去往对方的静态路由信息)

[r4]ip route-static 5.5.5.5 32 45.0.0.5--掩码为“32”,这里写成主机路由的形式。

[r5]ip route-static 4.4.4.4 32 45.0.0.4

查看BGP邻居表,这会的状态还是Idle。

因为在此时,邻居间会发生对等体震荡,原因在于双方已经建立了TCP连接,并建立了BGP会话,从而来到了establish状态,但在该状态中,因为TTL值为1,本地会感知此时不应该处于establish状态,故发送notification报文从而释放会话关系

解决方法:(修改接口TTL值)

[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2  ----这里TTL值改为2,根据需求修改。

[r5-bgp]peer 4.4.4.4 ebgp-max-hop 2

查看BGP邻居表,这会状态为Established。

二、BGP的路由发布过程(基于上面的拓扑,实验路由发布)

通过network命令发布路由

对于BGP而言,只要是路由表中存在的路由信息都可以通过该命令发布。

[r1-bgp]network 1.1.1.0 24  ----目标网络号和掩码信息,两个参数必须与全局路由表中的内容相同。

[r1]display bgp routing-table----查看BGP路由表

状态码含义:

  • "*" --代表可用。  ------设备收到路由条目后,会根据下一跳属性中的参数来查找本地路由表,检测该条路由信息的可性,如果下一跳属性可达,则本条路由可用。---如果不可用,则该路由忽略。
  • ">" --代表优选。 -------收到多条到达相同网段的路由信息时,并且都可用,则将依据属性在其中选择最优的路由作为优选者,优选路由可以加入到全局路由表并进行路由传递
  • "i"  --代表该路由是从IBGP对等体学习到的。

查看BGP路由表,这会R2学到了1.1.1.0 路由,“*>”可用且优选,路由进行加表。

查看R3的BGP路由表,这会的R3也学到1.1.1.0路由信息,"i" 表示该路由是从IBGP对等体学习到的。

因为AS-BY-AS规则,认为一个AS是一个整体,那么路由项在一个整体内部传递时,所有的路径属性都应该是相同的,否则就不是一个整体。而下一跳也是路径属性之一,默认情况下无法修改,故导致路由可用性校验失败。

解决方法:(把路径属性的下一跳改为本地)

[R2-bgp]peer 3.3.3.3 next-hop-local---将传递给3.3.3.3邻居的路由信息中的下一跳属性修改为本地。该命令仅在IBGP对等体关系中修改。

查看BGP路由表,这会的1.1.1.0路由可用且优选。

这会再查看R4的BGP路由表,发现没有学到关于1.1.1.0的路由信息。原因是IBGP水平分割,从IBGP对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何IBGP对等体。

解决方法:(建立全联,这里R2-R3-R4联了,但R2和R4没有联,所以在R2-R4建立IBGP对等体关系)

[R2]bgp 200

[R2-bgp]peer 4.4.4.4 as-number 200

[R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0

[R2-bgp]peer 4.4.4.4 next-hop-local   ---并且下一跳属性改为本地

[R4]bgp 200

[R4-bgp]peer 2.2.2.2 as-number 200

[R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0

查看BGP路由表,这会在R4、R5上也学到了1.1.1.0 的路由信息,且可用优选。

查看R4的路由表,这会的1.1.1.0路由是从R2学来的。

这会从R5ping去R1ping不通,因为R1上没有R5上的发布路由信息,所以我们还要重复以上的步骤从R5路由发布过去。

[R5-bgp]network 10.1.1.1 24

[R5-bgp]network 10.1.1.1 24

[R4-bgp]peer 2.2.2.2 next-hop-local

[R4-bgp]peer 3.3.3.3 next-hop-local

测试:

### 关于 BGP 配置的相关信息 BGP(Border Gateway Protocol)是一种外部网关协议,主要用于互联网自治系统之间的路由选择。以下是基于提供的引用内容以及专业知识整理的有关 BGP配置教程和示例。 #### 1. **R2 上启用 BGP 调试并初始化软刷新** 在路由器上调试 BGP 是一种常见的操作方式,可以通过以下命令实现: ```bash debug ip bgp updates inbound clear ip bgp * soft in ``` 上述命令分别启用了入向 BGP 更新消息的调试功能,并执行了入向 BGP 软刷新操作[^1]。此方法适用于 Cisco IOS 设备或其他兼容 CLI 命令集的网络设备。 #### 2. **SONiC 系统中的 BGP 配置** 对于运行 SONiC 操作系统的交换机或服务器,默认使用的 BGP 实现已经从 Quagga 迁移到 FRRouting (FRR)[^2]。因此,在现代版本中,推荐使用 `vtysh` 工具来完成 BGP 配置: ##### 示例:基本 BGP 配置 ```bash configure terminal router bgp 65001 neighbor 192.168.1.2 remote-as 65002 address-family ipv4 unicast exit-address-family exit write memory ``` 在此示例中,AS 编号设置为 65001,邻居地址为 192.168.1.2,远程 AS 编号为 65002。注意,如果仍在使用旧版 Quagga,则需替换命令头部分为 `show ip bgp`。 #### 3. **NetBox 中的 BGP 插件管理** NetBox 提供了一个强大的插件框架,其中 BGP 插件允许管理员集中化管理复杂的 BGP 对象关系,例如社区、会话、路由策略等[^3]。安装完成后可通过 Web UI 或 API 接口定义这些参数。 ##### 安装步骤摘要 - 使用 pip 安装依赖项; - 将插件路径加入到 NetBox 设置文件中; - 应用数据库迁移脚本以更新模式结构。 具体命令如下所示: ```bash pip install netbox-bgp echo 'PLUGINS = ["netbox_bgp"]' >> /etc/netbox/configuration.py python manage.py migrate ``` #### 4. **通用注意事项** 无论采用何种平台实施 BGP 配置,都应遵循最佳实践原则,比如合理规划 AS 编号分配范围、定期验证连接状态以及记录变更历史以便后续审计分析。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值