HCIP --- BGP 综合实验

实验拓扑图:

实验要求:

1.AS1存在两个环回,一个地址为192.168.1.0/24该地址不能 在任何协议中宣告

AS3中存在两个环回,一个地址为192.168.2.0/24该地址不能在任何协议中宣告,最终要求这两个环回可以互相通讯.

2.整个AS2的IP地址为172.16.0.0/16,请合理划分

3.AS间的骨干链路IP地址随意定制

4.使用BGP协议让整个网络所有设备的环回可以互相访问5.减少路由条目数量,避免环路出现

实验步骤:

1.划分IP地址

根据实验要求可知,172.16.0.0/16 需要从 大网段 划分到 小网段 ,虽然没有说每台路由器后面都需要 网段 , 但因为 根据实际情况 无论大到学校 商城 ,还是小到 公司 家庭 都是有用户在使用该路由器纷发来的网段 。所以我们应该把172.16.0.0/16的网段 化成 一组是专门给用户使用的 ,另外一组用于 BGP的 环回建邻!

172.16.0.0/16  
172.16.0.1/32  172.16.0.2/32 172.16.0.3/32 172.16.0.4/32 172.16.0.5/32 172.16.0.6/32  --- 用于环回建邻
172.16.1.0/30  172.16.1.4/30 172.16.1.8/30 172.16.1.12/30 172.16.1.16/30 172.16.20/30    ---用于AS2内部的路由器的网段

 

R1的配置

因为AS间的骨干链路IP地址随意定制 ,所以根据个人习惯书写 。

R2的配置

R3的配置

R4的配置

R5的配置

R6的配置

R7的配置

R8的配置

因为AS间的骨干链路IP地址随意定制 ,所以根据个人习惯书写 。

2.检测查询IP地址

因为 路由器较多,配置的IP地址 较多,所以需要 检测是否 配置 正确 没有配混乱

通过 display ip interface brief

3.OSPF 建邻

因为 AS 2 内部 有较多的路由器 ,需要 通过OSPF 来实习 区域内部的网络互通,便于下步使用BGP协议 划分区域 及IBGP、EBGP 建邻。

通过进入 到 OSPF 1 中,在区域0进行宣告 网段 ,因为该大区域 AS2 内部 都是属于172.16.0.0/16划分出来的 所以 都可以进行大网段宣告——network 172.16.0.0 0.0.255.255 

下面以 r 7 为示例:

4.查询OSPF 建邻是否成功

通过display ospf peer brief 查询 当每台路由器内部的State 达到 Full状态时 ,即为 成功 ,否则 建邻尚未成功 或 失败 。

下面 以 r 2 为 示例:

5.AS 2 内部BGP 建邻

a. AS 2 内部 IBGP 建邻

因为 AS 2 内部 有一个大区域 包含 两个 小区域 ,所在的区域的路由器 的bgp 先属于小区域 然后 宣告在大区域中 。

先优先完成 小区域内部的IBGP 建邻 完成后 再进行 大区域内部之间的EBGP 建邻 。

R2 R3 R4 属于 64512 区域,R5 R6 R7 属于 64513 区域

如 r 2 属于 小区域 64512 ,大区域 2 ,

则 命令如下:

bgp 64512

confederation id 2

peer 12.0.0.1 as - number 1 --- 相邻 AS 1 的 EBGP 建邻 

peer 172.16.0.2 as - number 64512  ----  AS 64512 内部的 IBGP 环回建邻

b.AS 2 内部 EBGP 建邻

大区域内部的小区域 EBGP 建邻 ,首先要 声明 跟哪个小区域建邻,然后再进行建邻 。

注意 :r2 和 r4 要建邻的区域是 64513;而 r5 和 r7 是要建邻的区域是 64512。

r2 命令如下:

要建邻的 区域 confederation peer - as 64513 

修改更新源 peer 172.16 .0.6 connect - interface 10

修改 跳数 peer 172.16.0.6 ebgp-max-hop 

r4 命令如下:

r5 命令如下:

r7 命令如下 :

6. R1 和 R 8 与 AS 之间的BGP 建邻 

r1 和 r8 与 AS 2 之间建邻的BGP 是属于 EBGP 直连建邻,不需要采用环回建邻!!! 

命令如下:

启动 BGP  : bgp 1 / 3

直连建邻 : peer 12.0.0.2 as - number 2   /   peer 78.0.0.1 as - number 2

7.查询BGP建立情况

通过 display bgp peer 查询 发现 已经建立了对应的 IBGP 和 EBGP 关系,说明前期的配置没有问题 。

注意: r7这里 还有个 AS号为 3 的78.0.0.2 的EBGP 邻居 未截图到!!!大家 已经要与AS3中的r8直连建立EBGP关系,否则导致后期全网不可达!!! 

8.检测 R1 和 R8 是否学习到 BGP 传输的网段情况

通过 命令 display ip routing-table protocol bgp  查询 学习到的EBGP情况 ,

发现 r1 上 少了 172.16.4.0/24 网段 ,r8 上 少了 172.16.2.0/24 网段 ,侧面反映了 应该在AS 内部的IBGP 传输问题会被水平分割 ,从而无法学习到4.0和2.0网段。

解决方法 : 1. 可以 另外建立多个IBGP 关系 ,但会使路由器承载数据更加庞大,更加复杂

2.在其中设置路由反射器 ,建立 客户 与 非客户的关系 ,把从客户学到的路由条目传给非客户的路由器,从而使其学习到欠缺网段。

9.R3 和 R6 设置为路由反射器

根据操作简单化 容易实现性来说,采用设置部分路由反射器,来建立客户与非客户的关系,以便学习到欠缺的网段。

在 r3 上设置 r4 为客户,把r4欠缺的网段传输出去

命令如下:

启动BGP :bgp 64512

设置客户:peer 172.16.0.3 reflect-client    --- 此时在区域64512中 ,r4 为 客户 ,r2为非客户。

在 r6 上设置 r5 为客户,把r5欠缺的网段传输出去

命令如下:

启动BGP :bgp 64513

设置客户:peer 172.16.0.6 reflect-client    --- 此时在区域64513中 ,r5为 客户 ,r7为非客户。

r2和r7还需将相邻的下一跳 修改为自身

10. 再次检查 R1 和 R8上是否学习到对应的网段

通过 命令 display ip routing-table protocol bgp 查询。

此时,r1 和 r8 的路由器上通过 EBGP,已经学习到从172.16.2.0/24 - 172.16.7.0/24 的网段,把之前欠缺的网段 补全齐了。        

11.优化明细

在R1 和 R 8 通过查询发现BGP的网段 172.16.2.0/24-172.16.7.0/24  这个范围的网段 都是属于172.16.0.0/21 的大网段内,可以进行合并优化 ,减少路由条目 。

通过命令 aggregate 172.16.0.0 21 detail - suppressed 来经行 优化 路由条目。

此时,通过display ip routing-table protocol bgp 发现 从EBGP 学习到的路由条目为172.16.0.0/21的网段,路由条目已经发生优化 减少路由器占据负担和提高用户的阅读性。

12.配置 R1  和  R8  环回地址 

测试 是否互通

13.R1和R8建立隧道

首先创建隧道接口: interface tunnel0/0/0 

设置隧道IP地址

选择隧道类型 :tunnel - protocol gre

设置源IP :source + ip地址

设置目标IP :destination + ip地址

注意: 源IP 与 目标IP 在 R1 和 R8是相反的!!!

14.测试 R1 与 R8 之间隧道是否建立成功

通过 ping -a 源IP地址  目标IP地址 来进行测试 ,若回收到数据 即为 成功 建立

15.配置静态路由

此时 192.168.1.0 和 192.168.2.0 还不能互通 ,因为两个网段没有被公开!!!题目也不允许被公开 ,所以只能采用配置 静态路由 和 隧道 来共同完成互通性。

16.测试全网的连通性

此时,通过命令 ping -a 源IP地址  目标IP地址 来进行测试 ,若回收到数据 即为 全网互通,实验完成!!!!!!!!

注意事项:

1.配置BGP时 区域不要打错了,如我当时因为打多了一个数字导致 BGP 之间不能互通。

可以通过 undo 掉 该路由器上的 bgp 区域号。 直接 undo bgp 即 可生效 ,再次创建 新的 bgp + 区域号。

2.该实验的难度 属于中等难度 ,其实验的复杂程度 不亚于之前所过的实验,实验步骤繁琐,务必 重复做此实验,把前面的基础 捡起来,巩固。

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

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

相关文章

C语言--函数指针变量和函数指针数组的区别(详解)

函数指针变量 函数指针变量的作用 函数指针变量是指向函数的指针,它可以用来存储函数的地址,并且可以通过该指针调用相应的函数。函数指针变量的作用主要有以下几个方面: 回调函数:函数指针变量可以作为参数传递给其他函数&…

字典Trie树

字典树 : 概念 建字典树 查询 : 代码模板 : const int N100010; int n; char s[N]; int ch[N][26],cnt[N],idx;void insert(char *s){int p0;for(int i0; s[i]; i ){int js[i]-a;//字母映射if(!ch[p][j])ch[p][j]idx;pch[p][j];}cnt[p];//插入次数 } int query(char *s){i…

零知识玩转AVH(1)—— 初次接触

零、引言 近期,CSDN上的一位工作人员让我参加一个嵌入式的活动。她的原话是这样:“咱们这个主要是百度智能云虚拟硬件的活动,就是根据ARM的avh硬件(虚拟硬件)铲平,去开发一个demo,以及根据demo…

全栈的自我修养 ———— css中常用的布局方法flex和grid

在项目里面有两种常用的主要布局:flex和grid布局(b站布局),今天分享给大家这两种的常用的简单方法! 一、flex布局1、原图2、中心对齐3、主轴末尾或者开始对其4、互相间隔 二、grid布局1、基本效果2、加间隔3、放大某一个元素 一、…

1950-2022年各区县逐年平均降水量数据

1950-2022年各区县逐年平均降水量数据 1、时间:1950-2022年 2、指标:省逐年平均降水量 3、范围:33省(不含澳门)、360地级市、2800个县 4、指标解释:逐年平均降水数据是指当年的日降水量的年平均值&…

力扣面试经典150 —— 11-15题

力扣面试经典150题在 VScode 中安装 LeetCode 插件即可使用 VScode 刷题,安装 Debug LeetCode 插件可以免费 debug本文使用 python 语言解题,文中 “数组” 通常指 python 列表;文中 “指针” 通常指 python 列表索引 文章目录 11. [中等] H指…

Fastjson 1.2.24 反序列化导致任意命令执行漏洞复现(CVE-2017-18349)

写在前面 CVE-2017-18349 指的是 fastjson 1.2.24 及之前版本存在的反序列化漏洞&#xff0c;fastjson 于 1.2.24 版本后增加了反序列化白名单&#xff1b; 而在 2019 年&#xff0c;fastjson 又被爆出在 fastjson< 1.2.47 的版本中&#xff0c;攻击者可以利用特殊构造的 …

简述epoll实现

所有学习笔记&#xff1a;https://github.com/Dusongg/StudyNotes 文章目录 epoll数据结构的选择&#xff1f;以tcp为例&#xff0c;网络io的可读可写如何判断&#xff1f;epoll如何做到线程安全&#xff1f;LT和ET如何实现&#xff1f;tcp状态和io的读写有哪些关系&#xff1…

【C语言】linux内核tcp_write_xmit和tcp_write_queue_purge

tcp_write_xmit 一、讲解 这个函数 tcp_write_xmit 是Linux内核TCP协议栈中的一部分&#xff0c;其基本作用是发送数据包到网络。这个函数会根据不同情况推进发送队列的头部&#xff0c;确保只要远程窗口有空间&#xff0c;就可以发送数据。 下面是对该函数的一些主要逻辑的中…

Spring Boot单元测试与热部署简析

1 Spring Boot的简介 Spring Boot是一个用于构建独立的、生产级别的Spring应用程序的框架。它简化了Spring应用程序的开发过程&#xff0c;提供了自动配置和默认配置&#xff0c;使得开发者只需专注于业务逻辑的实现&#xff0c;而不用去关注繁琐的配置问题。 Spring …

ElasticSearch 底层读写原理

ElasticSearch 底层读写原理 ​ 写请求是写入 primary shard&#xff0c;然后同步给所有的 replica shard&#xff1b;读请求可以从 primary shard 或 replica shard 读取&#xff0c;采用的是随机轮询算法。 1、ES写入数据的过程 1.选择任意一个DataNode发送请求&#xff0c…

Java17 --- springCloud之LoadBalancer

目录 一、LoadBalancer实现负载均衡 1.1、创建两个相同的微服务 1.2、在客户端80引入loadBalancer的pom 1.3、80服务controller层&#xff1a; 一、LoadBalancer实现负载均衡 1.1、创建两个相同的微服务 1.2、在客户端80引入loadBalancer的pom <!--loadbalancer-->&…

WPF 窗口添加投影效果Effect

BlurRadius&#xff1a;阴影半径 Color&#xff1a;颜色 Direction&#xff1a;投影方向 ShadowDepth&#xff1a;投影的深度 <Window.Effect><DropShadowEffect BlurRadius"10" Color"#FF858484" Direction"300" ShadowDepth&quo…

LLM长上下文外推方法

现在的LLM都集中在卷上下文长度了&#xff0c;最新的Claude3已经支持200K的上下文&#xff0c;见&#xff1a;cost-context。下面是一些提升LLM长度外推能力的方法总结&#xff1a; 数据工程 符尧大佬的最新工作&#xff1a;Data Engineering for Scaling Language Models to …

【Nestjs实操】环境变量和全局配置

一、环境变量 1、使用dotenv 安装pnpm add dotenv。 根目录下创建.env文件&#xff0c;内容如下&#xff1a; NODE_ENVdevelopment使用 import {config} from "dotenv"; const path require(path); config({path:path.join(__dirname,../.env)}); console.log(…

探索代理服务器:保护您的网络安全与隐私

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 隐藏真实IP地址&#xff1a; 访问控制&#xff1a; 加速访问速度&#xff1a; 过滤内容&#xff1a; 突破访问限制&#xff1…

Python图像处理:1.插值、频域变换与对比度增强

一、几何变换 7.图像的插值 (1)原理介绍 下面对比三种插值方法&#xff0c;分别是最近邻插值法、双线性插值法、卷积插值法&#xff0c;三种方法的前提和特点、优缺点、适用场景如下&#xff1a; 最近邻插值&#xff08;Nearest Neighbor Interpolation&#xff09;&#xf…

Linux网络套接字补充

(&#xff61;&#xff65;∀&#xff65;)&#xff89;&#xff9e;嗨&#xff01;你好这里是ky233的主页&#xff1a;这里是ky233的主页&#xff0c;欢迎光临~https://blog.csdn.net/ky233?typeblog 点个关注不迷路⌯▾⌯ 目录 一、地址转换函数 二、TCP协议通讯流程 三、…

线上应用部署了两台load为1四核服务器

线上应用部署了两台服务器。 项目发布后&#xff0c;我对线上服务器的性能进行了跟踪&#xff0c;发现一台负载为3&#xff0c;另一台负载为1&#xff0c;其中一台四核服务器已经快到瓶颈了&#xff0c;所以我们紧急排查原因。 1、使用TOP命令查看占用CPU较大的负载和进程&…

JavaWeb基础入门——(二)MySQL数据库基础(2-SQL 结构化查询语言)

四、MySQL逻辑结构 4.1 逻辑结构 4.1 记录 五、SQL 结构化查询语言 5.1 SQL概述 SQL&#xff08;Structural Query Language&#xff09;结构化查询语言&#xff0c;用于存取、查询、更新数据以及管理关系型数据库系统 5.1.1 SQL发展 SQL是在1981年由IBM公司推出&#xff0c;…