HCIP—BGP路由聚合

        在大型网络中,路由条目通常多达成千上万条,甚至几十万条,这给路由设备带来的挑战是:如何存储并有效管理如此众多的路由信息?
        BGP是一种无类路由协议,支持CIDR、VLSM和路由聚合。路由聚合技术的使用,可以在一定程度上缩减路由条目的数量,同时还可以减轻路由震荡导致的网络不稳定的问题。BGP的路由聚合有两种方式,一种是自动路由聚合,一种是手动路由聚合。
        自动路由聚合是在自然网络边界路由器上自动执行的。在默认情况下,BGP的自动路由聚合功能是关闭的,并且BGP不会自动聚合BGP邻居发送的路由以及使用network命令通告的路由。使用BGP自动路由聚合时,需要进行严谨的IP地址规划。在一个地址规划杂乱无序的网络中,自动路由聚合可能会产生许多意想不到的问题。例如,在采用不连续子网规划的网络中,自动路由聚合可能会导致报文转发出现选路问题,或者是产生路由环路

        BGP手动路由聚合时,可以手动控制聚合路由的掩码长度,修改聚合路由属性等。手动路由聚合又有两种方法,一种是配置一条静态路由,然后用network命令进行通告;另一种是使用aggregate命令进行聚合。

        BGP手动路由聚合时采用第一种方法时,无法对通告的静态路由加以控制,并且明细路由仍然会被通告出去。如要抑制明确路由,则需使用Route-Policy来对明细路由进行过滤,实现起来配置命令较多,同时还会丢失明细路由的某些BGP属性。

        则采用第二种方法时,缺省情况下明细路由和聚合路由也都会被发送出去,但是可以置命令较多,可以的通过关键字对全部或部分明细路由进行抑制,另外还可以对聚合路由的属性进行修改。和第一种方法相比,第二种方法对路由聚合的控制以及对路径选择的控制会更加灵活。

一:BGP自动路由聚会合

        实验拓扑所示,本实验模拟了3个运营商网络,R1属于ISP-A,R2属于ISP-B,R3属于ISP-C。三台路由器都使用直连的物理接口IP地址来建立EBGP邻居关系,R2和R3的Loopback1接口用来模拟各自ISP中的一个网段。R1、R2、R3上将开启自动路由聚合功能,R3的Loopback1接口所在网段将使用network命令通告给BGP进程,R2的Loopback1接口所在网段将被引入到BGP进程中,最终实现R2的Loopback1与R3的Loopback1之间可以互相通信。

1:对接口进行基础的IP地址配置,保证直连网段的PING通

2:配置BGP路由协议

配置BGP邻居关系,每台路由器均使用Lookback 0接口的IP地址作为自己的Router-ID。

[R1]bgp 100
[R1-bgp]router-id 10.0.1.1 
[R1-bgp]peer 10.0.12.2 as-number 200
[R1-bgp]peer 10.0.13.3 as-number 300

 

[R2]bgp 200
[R2-bgp]router-id 10.0.2.2 
[R2-bgp]peer 10.0.12.1 as-number 100

[R3]bgp 300
[R3-bgp]router-id 10.0.3.3 
[R3-bgp]peer 10.0.13.1 as-number 100

R1查看BGP邻居关系

邻居状态都为Established,表示邻居关系建立成功

3:开启BGP自动路由聚会功能

缺省情况下,华为的BGP自动路由聚合功能是关闭的,开启BGP自动路由聚合功能。

[R1]bgp 100
[R1-bgp]ipv4-family unicast   
[R1-bgp-af-ipv4]summary automatic 

[R2]bgp 200
[R2-bgp]ipv4-family unicast 
[R2-bgp-af-ipv4]summary automatic 

[R3]bgp 300 
[R3-bgp]ipv4-family unicast 
[R3-bgp-af-ipv4]summary automatic 

当路由器的BGP路由聚合功能打开时,系统会出现如下提醒

表述:BGP自动路由聚合只适用于通过路由引入方式引入的路由。

4:通告路由进入BGP中

使用ntework命令,将R3的Loopback 1接口所在网段通告进入BGP进程

[R3]bgp 300
[R3-bgp]ipv4-family unicast 
[R3-bgp-af-ipv4]network 33.33.33.0 24

在R1,R2,R3上使用dis bgp routing-table 命令,查看进入BGP进程。

R1,R2,R3的路由表中,33.33.33.0/24路由没有被聚合。使用Network命令宣告时R3 33.33.33.0/24通告给R1,R1再宣告给R2,整个过程中没有路由被聚合。说明自然网络边界处,BGP不会自动聚合。

5:引入外部路由到BGP的路由表中

R2使用命令import-route引入直连路由中

[R2]bgp 200  
[R2-bgp]ipv4-family unicast 
[R2-bgp-af-ipv4]import-route direct 

配置完成后,再次查R1,R2,R3的BGP路由表信息

可以看出,在R1和R3的BGP路由表中,都出现22.0.0.0,且没有显示掩码信息,这正是一个聚合成功后的一个A类自然网段。 

        由于BGP路由自动聚合对IP地地址规划的要求比较苛刻,在BGP网络中,IP地址的规划难以做的整齐有序,在实际项目中很少使用BGP指自动聚合功能。只需了解BGP自动聚合,重点掌握BGP手动聚合。

二:BGP手工路由聚合

        BGP的路由聚合有两种方式:一种是自动路由聚合,一种是手动路由聚合。相对于自动路由聚合来讲,手动路由聚合具有更高的灵活性和可控性。BGP手动路由聚合时,可以手动控制聚合路由的掩码长度,修改聚合路由属性等。
        手动路由聚合又有两种方法,一种是配置一条静态路由,然后用network命令进行通告,另一种是使用aggregate命令进行聚合。

       实验拓扑如图所示: R1属于AS100,R2属于AS200,R3和R4属于AS300,R5和R6属于AS400,每台路由器都使用自己的Loopbsack0接口IP地址作为Router-ID,并且都使用直连物理接口建立邻居关系,整网运行BGP协议。在5和R6上使用network命令通告Loopback1至Loopback7接口所在网络到BGP进程中,在R5上用aggregate命令聚合这些Loopback接口所在网络的路由,在R6上配置一条静态路由,并且使用network命令通告这条静态路由来实现路由聚合。实验过程中,在R5上还存在一些具体的路由控制需求,这些需求将采用aggregate命令结合一些关键字来实现。

1:进行基础的IP地址配置,保证直连网段的PING通

2:配置BGP路由协议

        每台路由器都使用自己的Loopback 0接口IP地址作为Router-ID,并且都使用直连物理接口进建立BGP邻居关系。

[R1]bgp 100
[R1-bgp]router-id 10.0.1.1  
[R1-bgp]peer 10.0.12.2 as-number 200
[R1-bgp]peer 10.0.13.3 as-number 300

[R2]bgp 200
[R2-bgp]router-id 10.0.2.2
[R2-bgp]peer 10.0.12.1 as-number 100
[R2-bgp]peer 10.0.24.4 as-number 300

[R3]bgp 300
[R3-bgp]router-id 10.0.3.3
[R3-bgp]peer 10.0.13.1 as-number 100
[R3-bgp]peer 10.0.34.4 as-number 300
[R3-bgp]peer 10.0.35.5 as-number 400

[R4]bgp 300
[R4-bgp]router-id 10.0.4.4
[R4-bgp]peer 10.0.24.2 as-number 200
[R4-bgp]peer 10.0.34.3 as-number 300
[R4-bgp]peer 10.0.46.6 as-number 400

[R5]bgp 400
[R5-bgp]router-id 10.0.5.5   
[R5-bgp]peer 10.0.35.3 as-number
[R5-bgp]peer 10.0.35.3 as-number 300
[R5-bgp]peer 10.0.56.6 as-number 400

将R5的Loopback 0至Loopback 7接口所在的网络使用network命令进行宣告。

[R5-bgp]network 172.16.1.0 255.255.255.0
[R5-bgp]network 172.16.2.0 255.255.255.0
[R5-bgp]network 172.16.3.0 255.255.255.0
[R5-bgp]network 172.16.4.0 255.255.255.0
[R5-bgp]network 172.16.5.0 255.255.255.0
[R5-bgp]network 172.16.6.0 255.255.255.0
[R5-bgp]network 172.16.7.0 255.255.255.0

[R6]bgp 400
[R6-bgp]router-id 10.0.6.6
[R6-bgp]peer 10.0.56.5 as-number 400
[R6-bgp]peer 10.0.46.4 as-number 300

将R6的Loopback 0至Loopback 7接口所在的网络使用network命令进行宣告。

[R6-bgp]network 192.168.1.0 255.255.255.0
[R6-bgp]network 192.168.2.0 255.255.255.0
[R6-bgp]network 192.168.3.0 255.255.255.0
[R6-bgp]network 192.168.4.0 255.255.255.0
[R6-bgp]network 192.168.5.0 255.255.255.0
[R6-bgp]network 192.168.6.0 255.255.255.0
[R6-bgp]network 192.168.7.0 255.255.255.0

配置完成后在R1查看BGP路由表

R1已经收到了BGP路由协议的明确路由。R6使用PING命令测试Loopback 1和R5的Loopback 1之间的连通性

3:配置BGP路由聚合

R5和R6的loopback 1至loopback 7接口所在的网络已经被宣告到BGP进程中,且每台路由器都可以查看到R5和R6的loopback 1至loopback 7接口所在的网络的路由,现在在R5和R6的路由上配置路由聚合,将明确路由情况隐藏到AS号内部。

R6上配置静态路由,然后使用network命令通告出去。

[R6]ip route-static 192.168.0.0 21 null 0
[R6]bgp 400
[R6-bgp]network 192.168.0.0 21

静态路由将指向null 0的目的防止网络中产生环路

R5使用aggregate命令进行宣告

[R5]bgp 400
[R5-bgp]aggregate 172.16.0.0 21

R5使用aggregate命令进行聚合,要求BGP路由表中信息至少存在一条属于聚合后的路由子网路由。否则无法聚合。

R1使用命令查看BGP路由信息

可以看出R1的BGP路由表中已经包含了聚合后的路由。

4:使用No-advertise关键字控制路由聚合

在R5和R6上使用前缀列表和Router-Policy给这些路由添加No-Advertise团体属性,并通告R3,R4

[R5]ip ip-prefix no-adver permit 172.16.1.0 24
[R5]ip ip-prefix no-adver permit 172.16.2.0 24
[R5]ip ip-prefix no-adver permit 172.16.3.0 24
[R5]ip ip-prefix no-adver permit 172.16.4.0 24
[R5]ip ip-prefix no-adver permit 172.16.5.0 24
[R5]ip ip-prefix no-adver permit 172.16.6.0 24
[R5]ip ip-prefix no-adver permit 172.16.7.0 24
[R5]ip ip-prefix no-adver permit 192.168.1.0 24
[R5]ip ip-prefix no-adver permit 192.168.2.0 24
[R5]ip ip-prefix no-adver permit 192.168.3.0 24
[R5]ip ip-prefix no-adver permit 192.168.4.0 24
[R5]ip ip-prefix no-adver permit 192.168.5.0 24
[R5]ip ip-prefix no-adver permit 192.168.6.0 24
[R5]ip ip-prefix no-adver permit 192.168.7.0 24

[R5]route-policy no-adver permit node 10
[R5-route-policy]if-match ip-prefix no-adver  
[R5-route-policy]apply community no-advertise
[R5-route-policy]route-policy no-adver permit node 20

[R5]bgp 400
[R5-bgp]peer 10.0.35.3 route-policy no-adver export 
[R5-bgp]peer 10.0.35.3 advertise-community
 

[R6]ip ip-prefix no-adver permit 192.168.1.0 24
[R6]ip ip-prefix no-adver permit 192.168.2.0 24
[R6]ip ip-prefix no-adver permit 192.168.3.0 24
[R6]ip ip-prefix no-adver permit 192.168.4.0 24
[R6]ip ip-prefix no-adver permit 192.168.5.0 24
[R6]ip ip-prefix no-adver permit 192.168.6.0 24
[R6]ip ip-prefix no-adver permit 192.168.7.0 24
[R6]ip ip-prefix no-adver permit 172.16.1.0 24
[R6]ip ip-prefix no-adver permit 172.16.2.0 24
[R6]ip ip-prefix no-adver permit 172.16.3.0 24
[R6]ip ip-prefix no-adver permit 172.16.4.0 24
[R6]ip ip-prefix no-adver permit 172.16.5.0 24
[R6]ip ip-prefix no-adver permit 172.16.6.0 24
[R6]ip ip-prefix no-adver permit 172.16.7.0 24

[R6]route-policy no-adver permit node 10
[R6-route-policy]if-match ip-prefix no-adver
[R6-route-policy]apply community no-advertise
[R6-route-policy]route-policy no-adver permit node 20

[R6]bgp 400       
[R6-bgp]peer 10.0.46.4 route-policy no-adver export     
[R6-bgp]peer 10.0.46.4 advertise-community
 

配置完成后在R1和R3查看BGP路由表

5:使用Detail-Suppressed关键字控制路由聚合

通过aggregate命令结合Detail-Suppressed实现路由抑制,只将聚合后的路由发送出去

[R5]bgp 400
[R5-bgp]aggregate 172.16.0.0 255.255.248.0 detail-suppressed

R1和R2查看BGP路由表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Linux开发工具]——gcc/g++的使用

Linux编译器——gcc/g的使用 一、快速认识gcc/g二、程序的翻译过程2.1 预处理(.i文件)2.2 编译(.s文件)2.3 汇编(.o文件)2.4 链接(生成可执行文件或库文件) 三、认识函数库3.1 静态库…

微调alpaca-lora遇到的一些问题

1、环境简介 环境: 系统:Ubuntu torch:2.2.1 python:3.10 gpu:V100 16g peft:0.9.0 使用PEFT中的lora方式微调llama-2-7b-hf,项目地址:alpaca-lora 2、混合精度训练Tensor相互计算会…

Jupyter Notebook介绍、安装及使用教程

Jupyter Notebook介绍、安装及使用教程 一、什么是Jupyter Notebook?简介组成部分网页应用文档Jupyter Notebook的主要特点 二、安装Jupyter Notebook先试用,再决定安装安装前提使用Anaconda安装使用pip命令安装 三、运行Jupyter Notebook帮助启动默认端…

macOS 通过 MacPorts 正确安装 MySQL 同时解决无法连接问题

如果你通过 sudo port install 命令正常安装了 MySQL,再通过 sudo port load 命令启动了 MySQL Server,此刻却发现使用 Navicat 之类的 GUI 软件无法连接,始终返回无法连接到 127.0.0.1 服务器。这是一个小坑,因为他默认使用了 So…

零代码编程:用kimichat将srt字幕文件进行批量转换合并

文件夹里面有多个srt字幕文件,借助kimichat可以很方便的对其进行批量合并。 在kimichat中输入提示词: 你是一个Python编程专家,写一个Python脚本,完成一个处理整理文档内容的任务,具体步骤如下: 打开文件…

更新数据库表中的数据

目录 update 加上各种限制条件 update update 表名set 列名1xx,列名2xx 指定更新某列数据如果不添加where子句,则为全列更新 也可以在原有基础上更新: 注意,mysql语法里不支持,必须是列名列名数值 加上各种限制条件 比如加上order by子句,where子句,limit等 这些条件对于up…

【FLOOD FILL专题】【蓝桥杯备考训练】:扫雷、动态网格、走迷宫、画图、山峰和山谷【已更新完成】

目录 1、扫雷(Google Kickstart2014 Round C Problem A) 2、动态网格(Google Kickstart2015 Round D Problem A) 3、走迷宫(模板) 4、画图(第六次CCF计算机软件能力认证) 5、山…

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(四)—— 过拟合和欠拟合

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 通过增加容量或提前停止来提高性能。 在深度学习中&#…

C#对于文件中的文件名判断问题

C#中对于文件名的判断问题,我们使用bool值进行值的传递,首先我们使用内置方法进行文件字符串匹配的bool值回传,我们打印出文件名以及相对应的bool,即可知道文件名是否真正生效 bool isHave fileName.Contains("Hello"…

代码学习记录22--回溯算法第三天

随想录日记part22 t i m e : time: time: 2024.03.17 主要内容:今天主要是结合类型的题目加深对回溯算法的理解:1.组合总和;2.组合总和 ;3.分割回文串。 39. 组合总和 40.组合总和II131.分割回文串 Topic1组合总和 题…

【Node.js从基础到高级运用】十四、Node.js 错误处理与日志记录

引言 在这篇博客文章中,我们将深入探讨Node.js中的错误处理和日志记录的最佳实践。我们会了解如何在Node.js应用程序中有效地捕获和处理错误,并利用日志库如morgan来记录应用程序的活动和错误信息。 第1部分:Node.js中的错误处理 同步代码中…

Spring AI Embeddings 和 Vector 入门

在前面 Spring AI Chat 简单示例 中介绍了 Chat 的基本用法,本文在此基础(主要是pom.xml)上继续探索 Embedding 和 Vector。 官方文档: embeddings: https://docs.spring.io/spring-ai/reference/api/embeddings/openai-embedding…

断点重训教程:如何有效地保护深度学习模型训练进度

在深度学习领域,长时间训练是常见的需求,然而,在训练过程中可能会面临各种意外情况,比如计算机故障、断电等,这些意外情况可能导致训练过程中断,造成已经投入的时间和资源的浪费。为了应对这种情况&#xf…

Avue框架实现图表的基本知识 | 附Demo(全)

目录 前言1. 柱状图2. 折线图3. 饼图4. 刻度盘6. 仪表盘7. 象形图8. 彩蛋8.1 饼图8.2 柱状图8.3 折线图8.4 温度仪表盘8.5 进度条 前言 以下Demo,作为初学者来说,会相应给出一些代码注释,可相应选择你所想要的款式 对于以下Demo&#xff0c…

GStreamer简单看看

主要是现在弄摄像头,要用到这东西。所以学学。 最权威主页:GStreamer: open source multimedia framework 大概看了下,好像命令也不难。 gst-launch-1.0 v4l2src device/dev/video0 ! video/x-raw,formatYUY2,width640,height480,framerat…

说说你对webpack的理解?解决了什么问题?

文章目录 一、背景二、问题三、是什么参考文献 一、背景 Webpack 最初的目标是实现前端项目的模块化,旨在更高效地管理和维护项目中的每一个资源 模块化 最早的时候,我们会通过文件划分的形式实现模块化,也就是将每个功能及其相关状态数据各…

Batch Normalization(批量归一化)和 Layer Normalization(层归一化)

Batch Normalization(批量归一化)和 Layer Normalization(层归一化)都是深度学习中用于改善网络训练过程的归一化技术。尽管它们的目标相似,即通过规范化中间层的激活值来加速训练过程并提高性能,但它们在细节上有所不同。 Batch Normalization (批量归一化) Batch Nor…

谷歌地图TMS地图服务地址收集2024,测试可用

对于普通的开发者或者GIS从业者来说,免费的底图影像服务,太重要了。之前写过一篇谷歌地图的TMS地址收集的博文,由于谷歌网站关闭已经不能用。最近又发现了谷歌在国内开放了其他地址,在这里给大家分享一下。 https://gac-geo.googl…

Ant Design Vue和VUE3下的upload组件使用以及文件预览

Ant Design Vue和VUE3下的upload组件使用以及文件预览 文章目录 Ant Design Vue和VUE3下的upload组件使用以及文件预览一、多文件上传1.需求2.样例3.代码 二、单文件上传1. 需求2. 样例3.代码 二、多文件上传产生的时间超时问题三、文件系统名称更改1. 修改文件index.html2. 修…

Leetcode热题100:图论

Leetcode 200. 岛屿数量 深度优先搜索法: 对于这道题来说,是一个非常经典的图的问题,我们可以先从宏观上面来看问题,也就是说在不想具体算法的前提下,简单的说出如何找到所有的岛屿呢? 如图中所示&#x…