当前位置: 首页 > news >正文

BGP实验

一、拓扑

请添加图片描述

二、要求及思路

  1. 要求
    (1)AS1中存在两个环回,一个地址为192.168.1.0/24,该地址不能在任何协议中宣告AS3中存在两个环回,一个地址为192.168.2.0/24,该地址不能在任何协议中宣告,最终要求这两个环回可以ping通

    (2)R1-R8的建邻环回用x.x.x.x/32表示

    (3)整个A2的Ip地址为172.16.0.0/16,R3-R7上各有一个业务网段,请合理划分;并且其内部配置osPF协议

    (4)AS间的骨干链路IP地址随意定制,

    (5)使用BGP协议让整个网络所有设备的环回可以互相访问,

    (6)减少路由条目数量,避免环路出现;

  2. 特定环回地址的处理:
    AS1中R1的Loopback1 (192.168.1.0/24) 和 AS3中R8的Loopback1 (192.168.2.0/24) 不能在任何路由协议中宣告
    为了实现这两个环回的互通,我们将通过 GRE隧道和静态路由 的方式进行连接,避免其在BGP等协议中传播,从而满足不宣告的要求。

  3. AS2内部IP地址规划与OSPF配置:
    AS2的整体IP地址范围为172.16.0.0/16。
    合理划分
    * R2-R3链路:172.16.1.0/30
    * R3-R4链路:172.16.1.4/30
    * R2-R5链路:172.16.1.20/30
    * R5-R6链路:172.16.1.16/30
    * R6-R7链路:172.16.1.12/30
    * R4-R7链路:172.16.1.8/30 (虽然实验步骤中R4和R7未建EBGP,但此链路存在,用于OSPF内部互联)。
    * 业务网段:R3、R4、R5、R6、R7各有一个业务网段,分别规划为:
    * R3 Loopback1: 172.16.3.0/24
    * R4 Loopback1: 172.16.4.0/24
    * R5 Loopback1: 172.16.5.0/24
    * R6 Loopback1: 172.16.6.0/24
    * R7 Loopback1: 172.16.7.0/24

    • OSPF配置:在AS2内部的所有路由器(R2-R7)上配置OSPF协议,确保AS2内部所有网络互通。为了简化配置和路由聚合,所有接口都配置在OSPF Area 0中,并使用network 172.16.0.0 0.0.255.255命令进行大范围宣告,涵盖所有AS2内部的172.16.x.x网段。
  4. AS间骨干链路IP地址定制:

    • R1-R2链路:12.1.1.0/24
    • R7-R8链路:34.1.1.0/24
  5. BGP协议实现全网环回互访:

    • BGP AS号
      • AS1:AS 1
      • AS2:AS 64512 和 AS 64513(BGP联盟)
      • AS3:AS 3
    • BGP联盟 (Confederation):AS2内部通过BGP联盟将AS 64512 和 AS 64513 组合在一起,对外表现为一个AS(例如,可以定义Confederation ID为2)。这将减少AS2内部的IBGP全互联需求,仅在联盟边界路由器之间建立IBGP邻居,并在联盟内部通过反射器进一步简化IBGP邻居关系。
    • EBGP邻居关系
      • R1 (AS 1) 与 R2 (AS 64512) 建立EBGP邻居。
      • R7 (AS 64513) 与 R8 (AS 3) 建立EBGP邻居。
    • IBGP邻居关系
      • AS 64512内部:R2、R3、R4建立IBGP邻居。为了减少全互联,将R3配置为反射器,R2和R4作为客户端。
      • AS 64513内部:R5、R6、R7建立IBGP邻居。为了减少全互联,将R6配置为反射器,R5和R7作为客户端。
      • 联盟内EBGP (Confederation EBGP):R2 (AS 64512) 与 R5 (AS 64513) 建立EBGP邻居,使用next-hop-local确保下一跳可达性。
    • BGP宣告:为了减少路由条目,我们将AS2内部所有用于建邻和业务的Loopback地址(172.16.0.X/32)通过聚合路由172.16.0.0/16在R2和R7上宣告。
  6. 减少路由条目与避免环路:

    • BGP聚合:AS2内部的Loopback地址统一聚合为172.16.0.0/16在BGP中宣告,减少路由条目。
    • BGP联盟:减少AS2内部的IBGP邻居数量,简化配置。
    • 路由反射器:进一步减少IBGP邻居数量,避免IBGP全互联的复杂性。
    • 静态路由防环:在宣告聚合路由172.16.0.0/16的R2和R7上,配置指向Null0接口的静态路由ip route-static 172.16.0.0 16 NULL 0。这可以防止路由黑洞,当BGP通告的聚合路由的组成部分不可达时,流量会丢弃到Null0,而不是转发给其他路由器形成环路。
    • GRE隧道:针对192.168.1.0/24和192.168.2.0/24这两个特殊环回,使用GRE隧道和静态路由的方式,使其不参与BGP等动态路由协议的宣告,从而避免潜在的路由泄露和环路风险。通过点对点的隧道连接,确保了特定流量的精确转发。

三、 实验步骤与配置详解

1. 配置IP地址

按照拓扑图和要求,配置所有接口IP地址和Loopback地址。R1-R8的Loopback0接口IP地址均配置为/32掩码,作为BGP建邻的Router ID和Update Source。

# R1 配置
[R1] int g0/0/0
[R1-GigabitEthernet0/0/0] ip address 12.1.1.1 24
[R1-GigabitEthernet0/0/0] int l0
[R1-LoopBack0] ip address 1.1.1.1 32  // 建邻环回
[R1-LoopBack0] int l1
[R1-LoopBack1] ip address 192.168.1.1 24 // 业务环回,不宣告# R2 配置
[R2] int g0/0/0
[R2-GigabitEthernet0/0/0] ip address 12.1.1.2 24
[R2-GigabitEthernet0/0/0] int g0/0/1
[R2-GigabitEthernet0/0/1] ip address 172.16.1.1 30
[R2-GigabitEthernet0/0/1] int g0/0/2
[R2-GigabitEthernet0/0/2] ip address 172.16.1.21 30
[R2-GigabitEthernet0/0/2] int l0
[R2-LoopBack0] ip address 2.2.2.2 32 // 建邻环回# R3 配置
[R3] int g0/0/0
[R3-GigabitEthernet0/0/0] ip address 172.16.1.2 30
[R3-GigabitEthernet0/0/0] int g0/0/1
[R3-GigabitEthernet0/0/1] ip address 172.16.1.5 30
[R3-GigabitEthernet0/0/1] int l0
[R3-LoopBack0] ip address 3.3.3.3 32 // 建邻环回
[R3-LoopBack0] int l1
[R3-LoopBack1] ip address 172.16.3.1 24 // 业务网段# R4 配置
[R4] int g0/0/0
[R4-GigabitEthernet0/0/0] ip address 172.16.1.6 30
[R4-GigabitEthernet0/0/0] int g0/0/1
[R4-GigabitEthernet0/0/1] ip address 172.16.1.9 30
[R4-GigabitEthernet0/0/1] int l0
[R4-LoopBack0] ip address 4.4.4.4 32 // 建邻环回
[R4-LoopBack0] int l1
[R4-LoopBack1] ip address 172.16.4.1 24 // 业务网段# R5 配置
[R5] int g0/0/0
[R5-GigabitEthernet0/0/0] ip address 172.16.1.22 30
[R5-GigabitEthernet0/0/0] int g0/0/1
[R5-GigabitEthernet0/0/1] ip address 172.16.1.17 30
[R5-GigabitEthernet0/0/1] int l0
[R5-LoopBack0] ip address 5.5.5.5 32 // 建邻环回
[R5-LoopBack0] int l1
[R5-LoopBack1] ip address 172.16.5.1 24 // 业务网段# R6 配置
[R6] int g0/0/0
[R6-GigabitEthernet0/0/0] ip address 172.16.1.18 30
[R6-GigabitEthernet0/0/0] int g0/0/1
[R6-GigabitEthernet0/0/1] ip address 172.16.1.13 30
[R6-GigabitEthernet0/0/1] int l0
[R6-LoopBack0] ip address 6.6.6.6 32 // 建邻环回
[R6-LoopBack0] int l1
[R6-LoopBack1] ip address 172.16.6.1 24 // 业务网段# R7 配置
[R7] int g0/0/0
[R7-GigabitEthernet0/0/0] ip address 172.16.1.14 30
[R7-GigabitEthernet0/0/0] int g0/0/1
[R7-GigabitEthernet0/0/1] ip address 172.16.1.10 30
[R7-GigabitEthernet0/0/1] int g0/0/2
[R7-GigabitEthernet0/0/2] ip address 34.1.1.1 24
[R7-GigabitEthernet0/0/2] int l0
[R7-LoopBack0] ip address 7.7.7.7 32 // 建邻环回
[R7-LoopBack0] int l1
[R7-LoopBack1] ip address 172.16.7.1 24 // 业务网段# R8 配置
[R8] int g0/0/0
[R8-GigabitEthernet0/0/0] ip address 34.1.1.2 24
[R8-GigabitEthernet0/0/0] int l0
[R8-LoopBack0] ip address 8.8.8.8 32 // 建邻环回
[R8-LoopBack0] int l1
[R8-LoopBack1] ip address 192.168.2.1 24 // 业务环回,不宣告
2. 配置AS2内部OSPF协议

在AS2的所有路由器(R2-R7)上启用OSPF,并将其所有接口和Loopback0接口纳入Area 0。通过network 172.16.0.0 0.0.255.255命令,一次性宣告所有172.16.0.0/16网段下的接口和Loopback地址。

# R2 OSPF配置
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 172.16.0.0 0.0.255.255# R3 OSPF配置
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 172.16.0.0 0.0.255.255# R4 OSPF配置
[R4] ospf 1 router-id 4.4.4.4
[R4-ospf-1] area 0
[R4-ospf-1-area-0.0.0.0] network 172.16.0.0 0.0.255.255# R5 OSPF配置
[R5] ospf 1 router-id 5.5.5.5
[R5-ospf-1] area 0
[R5-ospf-1-area-0.0.0.0] network 172.16.0.0 0.0.255.255# R6 OSPF配置
[R6] ospf 1 router-id 6.6.6.6
[R6-ospf-1] area 0
[R6-ospf-1-area-0.0.0.0] network 172.16.0.0 0.0.255.255# R7 OSPF配置
[R7] ospf 1 router-id 7.7.7.7
[R7-ospf-1] area 0
[R7-ospf-1-area-0.0.0.0] network 172.16.0.0 0.0.255.255

测试:在R7上ping R2的Loopback0,验证OSPF连通性。
[R7] ping 2.2.2.2
预期:Ping成功,说明AS2内部OSPF正常工作。

3. 配置BGP协议

配置BGP包括EBGP邻居、IBGP邻居以及BGP联盟。

(1) EBGP建邻
  • R1 (AS 1) 和 R2 (AS 64512)
  • R7 (AS 64513) 和 R8 (AS 3)
# R1 BGP配置
[R1] bgp 1
[R1-bgp] peer 12.1.1.2 as-number 2 // 与R2建立EBGP邻居# R2 BGP配置 (作为AS2的入口路由器)
[R2] bgp 64512 // 属于子AS 64512
[R2-bgp] confederation id 2 // AS2的联盟ID为2
[R2-bgp] confederation peer-as 64513 // 联盟内存在子AS 64513
[R2-bgp] peer 12.1.1.1 as-number 1 // 与R1建立EBGP邻居# R7 BGP配置 (作为AS2的出口路由器)
[R7] bgp 64513 // 属于子AS 64513
[R7-bgp] confederation id 2 // AS2的联盟ID为2
[R7-bgp] confederation peer-as 64512 // 联盟内存在子AS 64512
[R7-bgp] peer 34.1.1.2 as-number 3 // 与R8建立EBGP邻居# R8 BGP配置
[R8] bgp 3
[R8-bgp] peer 34.1.1.1 as-number 2 // 与R7建立EBGP邻居
(2) IBGP建邻 (含联盟内EBGP)
  • AS 64512 内部:R2, R3, R4
  • AS 64513 内部:R5, R6, R7
  • 联盟内EBGP:R2 (AS 64512) 和 R5 (AS 64513)
# R2 BGP配置 (续)
[R2-bgp] peer 172.16.0.3 as-number 64512 // IBGP with R3 (Loopback0)
[R2-bgp] peer 172.16.0.3 connect-interface LoopBack0 // 使用Loopback0作为源接口
[R2-bgp] peer 172.16.0.4 as-number 64512 // IBGP with R4 (Loopback0)
[R2-bgp] peer 172.16.0.4 connect-interface LoopBack0
[R2-bgp] peer 172.16.1.22 as-number 64513 // 联盟内EBGP with R5 (物理接口)
[R2-bgp] peer 172.16.1.22 next-hop-local // 避免下一跳不可达问题# R3 BGP配置 (续)
[R3] bgp 64512
[R3-bgp] confederation id 2
[R3-bgp] peer 172.16.0.2 as-number 64512 // IBGP with R2
[R3-bgp] peer 172.16.0.2 connect-interface LoopBack0
[R3-bgp] peer 172.16.0.4 as-number 64512 // IBGP with R4
[R3-bgp] peer 172.16.0.4 connect-interface LoopBack0# R4 BGP配置 (续)
[R4] bgp 64512
[R4-bgp] confederation id 2
[R4-bgp] peer 172.16.0.2 as-number 64512 // IBGP with R2
[R4-bgp] peer 172.16.0.2 connect-interface LoopBack0
[R4-bgp] peer 172.16.0.3 as-number 64512 // IBGP with R3
[R4-bgp] peer 172.16.0.3 connect-interface LoopBack0# R5 BGP配置 (续)
[R5] bgp 64513
[R5-bgp] confederation id 2
[R5-bgp] confederation peer-as 64512
[R5-bgp] peer 172.16.1.21 as-number 64512 // 联盟内EBGP with R2
[R5-bgp] peer 172.16.1.21 next-hop-local
[R5-bgp] peer 172.16.0.6 as-number 64513 // IBGP with R6 (Loopback0)
[R5-bgp] peer 172.16.0.6 connect-interface LoopBack0
[R5-bgp] peer 172.16.0.7 as-number 64513 // IBGP with R7 (Loopback0)
[R5-bgp] peer 172.16.0.7 connect-interface LoopBack0# R6 BGP配置 (续)
[R6] bgp 64513
[R6-bgp] confederation id 2
[R6-bgp] peer 172.16.0.5 as-number 64513 // IBGP with R5
[R6-bgp] peer 172.16.0.5 connect-interface LoopBack0
[R6-bgp] peer 172.16.0.7 as-number 64513 // IBGP with R7
[R6-bgp] peer 172.16.0.7 connect-interface LoopBack0# R7 BGP配置 (续)
[R7] bgp 64513
[R7-bgp] confederation id 2
[R7-bgp] peer 172.16.0.5 as-number 64513 // IBGP with R5
[R7-bgp] peer 172.16.0.5 connect-interface LoopBack0
[R7-bgp] peer 172.16.0.6 as-number 64513 // IBGP with R6
[R7-bgp] peer 172.16.0.6 connect-interface LoopBack0
4. 配置路由反射器

将R3和R6配置为路由反射器,以减少IBGP全互联。

# R3 配置为反射器 (AS 64512)
[R3-bgp] peer 172.16.0.2 reflect-client // R2是客户端
[R3-bgp] peer 172.16.0.4 reflect-client // R4是客户端# R6 配置为反射器 (AS 64513)
[R6-bgp] peer 172.16.0.5 reflect-client // R5是客户端
[R6-bgp] peer 172.16.0.7 reflect-client // R7是客户端

注意: 配置反射器后,客户端之间不再需要直接建立IBGP邻居。

5. BGP宣告所有环回(除192.168.1.0/24和192.168.2.0/24)

为了减少路由条目,我们将AS2内部所有172.16.x.x的Loopback0和Loopback1地址聚合为172.16.0.0/16,并在AS2的边缘路由器R2和R7上进行BGP宣告。同时,为了避免路由黑洞,配置指向Null0的静态路由。

# R2 BGP宣告
[R2] ip route-static 172.16.0.0 16 NULL 0 // 防环静态路由
[R2-bgp] network 172.16.0.0 16 // 宣告聚合路由# R7 BGP宣告
[R7] ip route-static 172.16.0.0 16 NULL 0 // 防环静态路由
[R7-bgp] network 172.16.0.0 16 // 宣告聚合路由# R1 BGP宣告 (宣告自身Loopback0)
[R1-bgp] network 1.1.1.1 32# R8 BGP宣告 (宣告自身Loopback0)
[R8-bgp] network 8.8.8.8 32

注意:R3、R4、R5、R6的业务网段(Loopback1)172.16.3.0/24,172.16.4.0/24,172.16.5.0/24,172.16.6.0/24,172.16.7.0/24 会通过OSPF学习到R2和R7,并被包含在172.16.0.0/16的聚合路由中进行BGP宣告。不需要单独在这些路由器上进行BGP宣告,因为它们不是BGP边界路由器,且其网段已包含在聚合地址内。

6. R1环回与R8环回互访(VPN隧道)

为了满足192.168.1.0/24和192.168.2.0/24不通过任何协议宣告的要求,我们使用GRE隧道和静态路由来连接这两个网络。

# R1 GRE隧道配置
[R1] interface Tunnel 0/0/0
[R1-Tunnel0/0/0] ip address 10.1.1.1 24 // 隧道接口IP
[R1-Tunnel0/0/0] tunnel-protocol gre // 封装协议
[R1-Tunnel0/0/0] source 1.1.1.1 // 隧道源地址,R1的Loopback0
[R1-Tunnel0/0/0] destination 8.8.8.8 // 隧道目的地址,R8的Loopback0
[R1-Tunnel0/0/0] quit
[R1] ip route-static 192.168.2.0 24 10.1.1.2 // 指向R8的业务环回的静态路由,下一跳是隧道对端IP# R8 GRE隧道配置
[R8] interface Tunnel 0/0/0
[R8-Tunnel0/0/0] ip address 10.1.1.2 24 // 隧道接口IP
[R8-Tunnel0/0/0] tunnel-protocol gre
[R8-Tunnel0/0/0] source 8.8.8.8 // 隧道源地址,R8的Loopback0
[R8-Tunnel0/0/0] destination 1.1.1.1 // 隧道目的地址,R1的Loopback0
[R8-Tunnel0/0/0] quit
[R8] ip route-static 192.168.1.0 24 10.1.1.1 // 指向R1的业务环回的静态路由,下一跳是隧道对端IP

关键点:隧道两端的源地址和目的地址必须是Loopback0的地址,因为这些地址在全网BGP中是可达的,确保了隧道本身可以建立。然后通过静态路由将业务网段指向隧道对端IP,使得业务流量能够通过隧道传输,而无需在BGP中宣告。

四、验证

请添加图片描述

http://www.dtcms.com/a/324914.html

相关文章:

  • (三)全栈(部署)
  • 数学建模——回归分析
  • 解决 Linux 下 “E: 仓库xxx没有数字签名” 问题
  • C++高频知识点(十九)
  • CentOS7.9 离线安装mysql数据库
  • Python vs MATLAB:智能体开发实战对比
  • 安卓录音方法
  • Python描述符进阶:自定义文档与属性删除的艺术
  • 可视化程序设计(4) - 第一个图形窗口程序
  • 从 GPT‑2 到 gpt‑oss:解析架构的迭代
  • BandiView:高效多功能的图像查看和管理工具
  • 系统调用sigaction的工作流程
  • 算法训练之队列和优先级队列
  • Ubuntu 24.04 适配联发科 mt7902 pcie wifi 网卡驱动实践
  • MySQL的存储引擎:
  • C/C++内存管理函数模板
  • Flutter开发 页面间的值传递示例
  • 基于C语言(兼容C++17编译器)的记账系统实现
  • 虚拟机安装 爱快ikuai 软路由 浏览器无法访问/拒绝连接
  • 数据库面试题集
  • Effective C++ 条款34:区分接口继承和实现继承
  • 数据结构(17)排序(下)
  • 深度剖析 P vs NP 问题:计算领域的世纪谜题
  • Graham 算法求二维凸包
  • PG靶机 - Resourced
  • 【51单片机按键闪烁流水灯方向】2022-10-26
  • 【LeetCode】102 - 二叉树的层序遍历
  • MVC结构变种——第三章核心视图及控制器的整体逻辑
  • idea中使用maven造成每次都打印日志
  • matlab实现随机森林算法