前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个项目案例详解BGP路由通告原则(附拓扑配置)

一个项目案例详解BGP路由通告原则(附拓扑配置)

作者头像
网络工程师笔记
发布2022-02-17 15:23:48
1.8K0
发布2022-02-17 15:23:48
举报

前言

前面写了一篇文章32张图详解BGP路由协议:BGP基本概念、BGP对等体、BGP报文类型、BGP状态机等

今天给大家详细讲讲BGP通告路由的四大原则;

  • BGP只发布最优且有效的路由;
  • 从EBGP获取到的路由,会发布给所有对等体(IBGP和EBGP)
  • 从IBGP学习到的路由,不会再发送给其它的IBGP对等体。该原则称为“IBGP水平分割”。
  • 从IBGP学习到的路由,如果要发送给EBGP对等体,依赖于从其它的IGP协议中学些到这条路由,该条规则称为BGP同步原则。

项目案例

1、实验拓扑

需求如下:

(1)路由器R1、R5、R6运行ospf协议,R1 ospf中发布loopback2地址;路由器R1、R5属于BGP AS 100,和R2建立EBGP邻居,将R1 loopback2通过BGP传递到R2、R4、R3;

(2)R2、R4属于BGP AS 200,建立IBGP邻居;R3属于BGP AS 300,与R2建立EBGP邻居;

(3)R3、R7、R8为全IBGP对等体,R8发布loopback地址。

2、实验配置

R6配置:

代码语言:javascript
复制
#
interface LoopBack0
 ip address 6.6.6.6 255.255.255.255
#
interface LoopBack2
 ip address 10.10.10.10 255.255.255.255
#
interface GigabitEthernet0/0/0
 ip address 10.1.16.2 255.255.255.252
#
interface GigabitEthernet0/0/1
 ip address 10.1.56.2 255.255.255.252
#
ospf 1
 area 0.0.0.0
  network 10.1.16.0 0.0.0.3
  network 10.1.56.0 0.0.0.3
  network 10.10.10.10 0.0.0.0
#

R1配置:

代码语言:javascript
复制
#
interface GigabitEthernet0/0/0
 ip address 10.1.12.1 255.255.255.252
#
interface GigabitEthernet0/0/1
 ip address 10.1.15.1 255.255.255.252
#
interface GigabitEthernet0/0/2
 ip address 10.1.16.1 255.255.255.252
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255
#
bgp 100
 peer 10.1.12.2 as-number 200
 #
 ipv4-family unicast
  undo synchronization
  network 1.1.1.1 255.255.255.255
  network 10.10.10.10 255.255.255.255
  peer 10.1.12.2 enable
#
ospf 1
 area 0.0.0.0
  network 10.1.16.0 0.0.0.3
#

R5配置:

代码语言:javascript
复制
#
interface GigabitEthernet0/0/0
 ip address 10.1.25.2 255.255.255.252
#
interface GigabitEthernet0/0/1
 ip address 10.1.15.2 255.255.255.252
#
interface GigabitEthernet0/0/2
 ip address 10.1.56.1 255.255.255.252
#
interface LoopBack0
 ip address 5.5.5.5 255.255.255.255
#
bgp 100
 peer 10.1.25.1 as-number 200
 #
 ipv4-family unicast
  undo synchronization
  network 5.5.5.5 255.255.255.255
  network 10.10.10.10 255.255.255.255
  peer 10.1.25.1 enable
#
ospf 1
 area 0.0.0.0
  network 10.1.56.0 0.0.0.3
#

R2配置:

代码语言:javascript
复制
#
interface GigabitEthernet0/0/0
 ip address 10.1.12.2 255.255.255.252
#
interface GigabitEthernet0/0/1
 ip address 10.1.23.1 255.255.255.252
#
interface GigabitEthernet0/0/2
 ip address 10.1.24.1 255.255.255.252
#
interface GigabitEthernet0/0/3
 ip address 10.1.25.1 255.255.255.252
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
#
bgp 200
 peer 10.1.12.1 as-number 100
 peer 10.1.23.2 as-number 300
 peer 10.1.24.2 as-number 200
 peer 10.1.25.2 as-number 100
 #
 ipv4-family unicast
  undo synchronization
  network 2.2.2.2 255.255.255.255
  peer 10.1.12.1 enable
  peer 10.1.23.2 enable
  peer 10.1.24.2 enable
  peer 10.1.24.2 next-hop-local
  peer 10.1.25.2 enable
#

R4配置:

代码语言:javascript
复制
#
interface GigabitEthernet0/0/0
 ip address 10.1.24.2 255.255.255.252
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255
#
bgp 200
 peer 10.1.24.1 as-number 200
 #
 ipv4-family unicast
  undo synchronization
  peer 10.1.24.1 enable
#

R3配置:

代码语言:javascript
复制
#
interface GigabitEthernet0/0/0
 ip address 10.1.23.2 255.255.255.252
#
interface GigabitEthernet0/0/1
 ip address 10.1.37.1 255.255.255.252
#
interface GigabitEthernet0/0/2
 ip address 10.1.38.1 255.255.255.252
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
#
bgp 300
 peer 10.1.23.1 as-number 200
 peer 10.1.37.2 as-number 300
 peer 10.1.38.2 as-number 300
 #
 ipv4-family unicast
  undo synchronization
  network 3.3.3.3 255.255.255.255
  peer 10.1.23.1 enable
  peer 10.1.37.2 enable
  peer 10.1.37.2 next-hop-local
  peer 10.1.38.2 enable
  peer 10.1.38.2 next-hop-local
#

R7配置:

代码语言:javascript
复制
#
interface GigabitEthernet0/0/0
 ip address 10.1.37.2 255.255.255.252
#
interface GigabitEthernet0/0/1
 ip address 10.1.78.1 255.255.255.252
#
interface LoopBack0
 ip address 7.7.7.7 255.255.255.255
#
bgp 300
 peer 10.1.37.1 as-number 300
 peer 10.1.78.2 as-number 300
 #
 ipv4-family unicast
  undo synchronization
  peer 10.1.37.1 enable
  peer 10.1.78.2 enable
#

R8配置:

代码语言:javascript
复制
#
interface GigabitEthernet0/0/0
 ip address 10.1.38.2 255.255.255.252
#
interface GigabitEthernet0/0/1
 ip address 10.1.78.2 255.255.255.252
#
interface LoopBack0
 ip address 8.8.8.8 255.255.255.255
#
interface LoopBack99
 ip address 88.88.88.88 255.255.255.255
#
bgp 300
 peer 10.1.38.1 as-number 300
 peer 10.1.78.1 as-number 300
 #
 ipv4-family unicast
  undo synchronization
  network 88.88.88.88 255.255.255.255
  peer 10.1.38.1 enable
  peer 10.1.78.1 enable
#

3、BGP通告原则

(1)BGP只发布最优且有效的路由;

在上述案例中,R2可以通过R1和R5学习到10.10.10.10/32的路由。

如上图所示,从R1学些到BGP路由是最优且有效的;因此R2在向对等体发布路由的时候只会发布从R1收到的这条。

也只有最优且有效的路由会被加入到路由表。如下图所示:

为什么从R1学习到的是最优的呢?如下图所示,因为router id大小没有被优选;

(2)从EBGP获取到的路由,会发布给所有对等体(IBGP和EBGP)。

在上述案例中,R2可以通过R1和R5学习到10.10.10.10/32的路由。既会发布给IBGP对等体R4,也会发给IBGP对等体R3。

我们在R3、R4上查询下路由(如下图所示)。

(3)从IBGP学习到的路由,不会再发送给其它的IBGP对等体。该原则称为“IBGP水平分割”。

在上述案例中,R3、R7、R8 互为IBGP对等体,R8发布的loopback99地址88.88.88.88/32,会发送给IBGP对等体R7、R8,但是R7不再会发送给R8,否则会造成环路。

(4)从IBGP学习到的路由,如果要发送给EBGP对等体,依赖于从其它的IGP协议中学些到这条路由,该条规则称为BGP同步原则。

在上述案例中,R3、R7、R8 互为IBGP对等体,R8发布的loopback99地址88.88.88.88/32,会发送给IBGP对等体R7、R8,R8 发送给EBGP对等体R2,依赖于IGP路由表也要学些到这条路由。

---END---

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络工程师笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 项目案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档