热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用IGP和BGP的配合达到降低路由容量目的的实验与总结

本文描述了OSPF和BGP配合来降低路由器的容量压力的实验和总结,有助于对IGP协议和BGP协议的互

概述

1、先说结论,通过eBGP协议,可以显著降低对非核心路由器的路由容量要求,因为核心路由器的数量明显少于非核心路由器,所以,通过此措施即联通网络,又降低设备要求,非常适宜大型网络。

2、背景:随着网络规模变大,路由器的路由表容量也需要变大,为了应对该问题,业界提出对网络进行分域自治的思想,自治域内运行IGP协议,自治域间运行BGP协议。

     常用的IGP协议是OSPF,BGP协议就是BGP-4(version 4).

3、本文使用了eNSP软件工具进行模拟,模拟两个自治域之间,通过BGP-4协议进行互通互联,自治域内部使用OSPF进行互联互通,

     通过对本文的理解,有助于对IGP协议(OSPF)和BGP协议加深理解。

 

网络组网和配置

1、网络组网图和接口ip配置,如下:

技术分享

 

    说明:

    (1) 自治域AS 65008 内有3台路由器(R1, R2, R3) ,自治域AS 65009内有3台路由器(R4,R5,R6),中间通过PE1和PE2进行互联,AS号为65100

              R3、PE1、PE2、R4是边界路由器。

    (2) 自治域内运行OSPF协议,PE1和PE2属于相同自治域,所以之间运行iBGP协议,R3和PE1之间,以及PE2和R4属于不同自治域,所以之间运行eBGP协议。

 

 

2、第一个自治域AS65008内的IGP配置如下:

      (1) R1、R2、R3运行OSPF协议,并且R3作为边界路由器,在整个自治域内通告默认路由。

              R1上的配置如下:

#
ospf 1
area 0.0.0.0
network 1.0.0.0 0.0.0.255
network 10.0.0.0 0.0.0.255
#

 

R2上的配置如下:

#
ospf 1
area 0.0.0.0
network 2.0.0.0 0.0.0.255
network 20.0.0.0 0.0.0.255
#

 

R3上的配置如下:

#
ospf 1
default-route-advertise                                           ---->解释: 自治域内通告默认路由的第二步,通过OSPF通告出去。
area 0.0.0.0
network 10.0.0.0 0.0.0.255
network 20.0.0.0 0.0.0.255
#
ip route-static 0.0.0.0 0.0.0.0 30.0.0.2                     ---->解释: 自治域内通告默认路由的第一步,自己先配置默认路由。
#

3、第二个自治域AS65009内的IGP配置如下,并且R4作为边界路由器,在整个自治域内通告默认路由。

              R4上的配置如下:   

#
ospf 1
default-route-advertise                       ---->解释: 自治域内通告默认路由
area 0.0.0.0
network 40.0.0.0 0.0.0.255
network 50.0.0.0 0.0.0.255
#
ip route-static 0.0.0.0 0.0.0.0 70.0.0.1
#

 

R5上的配置如下:

#
ospf 1
area 0.0.0.0
network 4.0.0.0 0.0.0.255
network 40.0.0.0 0.0.0.255
#

 

              R6上配置如下:

#
ospf 1
area 0.0.0.0
network 5.0.0.0 0.0.0.255
network 50.0.0.0 0.0.0.255
#

   

4、自治域间两个PE上不需要运行OSPF协议,只需要运行BGP协议,iBGP和eBGP配置如下:

       PE1的配置:

#
bgp 65100
router-id 172.0.60.1
peer 30.0.0.1 as-number 65008      ---> 解释:eBGP配置
peer 60.0.0.2 as-number 65100      ---> 解释:iBGP配置
#
ipv4-family unicast
undo synchronization
network 30.0.0.0 255.255.255.0
network 60.0.0.0 255.255.255.0
peer 30.0.0.1 enable
peer 60.0.0.2 enable
#

 

       PE2的配置如下:

#
bgp 65100
router-id 172.0.60.2
peer 60.0.0.1 as-number 65100             
peer 70.0.0.2 as-number 65009
#
ipv4-family unicast
undo synchronization
network 60.0.0.0 255.255.255.0
network 70.0.0.0 255.255.255.0
peer 60.0.0.1 enable
peer 70.0.0.2 enable
#

 5、R3和R4上运行BGP协议,配置如下:

       R3配置如下:   

#
bgp 65008                                ---> 解释:本自治域号
router-id 172.0.30.1                 ---> 解释:本自治域号, router-id标识自己
peer 30.0.0.2 as-number 65100    ---> 解释:BGP邻居与邻居的AS号,由于邻居的AS号与本域的AS号不同,所以是eBGP
#
ipv4-family unicast
undo synchronization
network 30.0.0.0 255.255.255.0   ---> 解释:配置BGP引入路由表
import-route ospf 1                     ---> 解释:将本地的ospf路由引入到BGP中,从而让BGP邻居知道本域的路由信息。
peer 30.0.0.2 enable
#

 

       R4的配置如下:

#
bgp 65009
router-id 172.0.70.2
peer 70.0.0.1 as-number 65100
#
ipv4-family unicast
undo synchronization
network 70.0.0.0 255.255.255.0
import-route ospf 1
peer 70.0.0.1 enable
#

验证结果

1、第一个自治域AS65008内的路由器上的路由表项

      查看R1路由器的路由表项:

     技术分享

    

     R2上的路由表与上述相同,

     R3上的路由表,则因为从eBGP学习到很多路由,故表项较大

技术分享

 

     R4上的路由如下:

技术分享

 

R5路由表项如下:

技术分享

 

R6上的路由表项与R5相同。

 

2、自治域间的路由器上的路由表项

PE1上路由表项如下:

技术分享

解析 

a. PE1上只有BGP协议,所以学习到的路由都是BGP类型的,分为从R3学习到的eBGP类型和从PE2学习到的iBGP类型。 

 

PE2上的路由表项如下:

技术分享

解析也同PE1类型,凡是从R4学习到的都是eBGP类型,从PE1学习到的都是IBGP类型。 

 

3、连通性验证

(1)从PC1 分别ping PC2,PC3,PC4都可以ping通,说明整网是路由可到的。

技术分享

 

 (2)从PC1上tracerout PC2, PC3,PC4, 可见沿途的路由器是正确的,当然,不正确的话,网络就不通了。

PC>tracert 4.0.0.10

traceroute to 4.0.0.10, 8 hops max
(ICMP), press Ctrl+C to stop
1 1.0.0.1 47 ms 31 ms 32 ms
2 10.0.0.1 62 ms 94 ms 47 ms
3 30.0.0.2 93 ms 94 ms 94 ms
4 60.0.0.2 109 ms 125 ms 125 ms
5 70.0.0.2 172 ms 219 ms 172 ms
6 40.0.0.2 219 ms 250 ms 234 ms
7 *4.0.0.10 234 ms 203 ms

PC>

PC>tracert 2.0.0.10

traceroute to 2.0.0.10, 8 hops max
(ICMP), press Ctrl+C to stop
1 1.0.0.1 32 ms 31 ms 31 ms
2 10.0.0.1 94 ms 78 ms 63 ms
3 20.0.0.2 125 ms 125 ms 109 ms
4 *2.0.0.10 171 ms 157 ms

PC>

PC>tracert 5.0.0.10

traceroute to 5.0.0.10, 8 hops max
(ICMP), press Ctrl+C to stop
1 1.0.0.1 31 ms 31 ms 31 ms
2 10.0.0.1 63 ms 62 ms 63 ms
3 30.0.0.2 94 ms 78 ms 94 ms
4 60.0.0.2 125 ms 125 ms 125 ms
5 70.0.0.2 187 ms 172 ms 156 ms
6 50.0.0.2 188 ms 203 ms 172 ms
7 *5.0.0.10 312 ms 313 ms

PC>

 

总结

1、使用了分域后,使用那些措施达到了降低路由器的路由表容量的要求?

解答:共使用3种措施,

第一、分域,域内使用OSPF,域间使用BGP。

第二、域内通过OPF通告的默认路由,使得域内的路由器不需要知道其他域的路由信息,只需要通过默认路由,送给PE设备即可。

第三、域间的核心层使用eBGP知晓所有的明细路由,以便指导域间流量转发。

 

2、遗留问题,怎样配置让IGP的边界路由器的路由表容量也变小?

R3、R4作为两个自治域的边界路由器,通过eBGP知道了所有的网络路由,这个对路由器的要求还是很大,有什么办法可以让这两个路由器只需要将无法转发的报文通过默认路由转发即可。

 

3、BGP的核心用途是:核心层设备知晓全量路由,指导报文在域间转发。

 


推荐阅读
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 本文探讨了在构建应用程序时,如何对不同类型的数据进行结构化设计。主要分为三类:全局配置、用户个人设置和用户关系链。每种类型的数据都有其独特的用途和应用场景,合理规划这些数据结构有助于提升用户体验和系统的可维护性。 ... [详细]
  • 气象对比分析
    本文探讨了不同地区和时间段的天气模式,通过详细的图表和数据分析,揭示了气候变化的趋势及其对环境和社会的影响。 ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
author-avatar
玻璃里的鱼鱼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有