【网络云SRE运维开发】2025第3周-每日【2025/01/16】小测-【第15章 bgp路由协议】理论和实操解析

文章目录

      • 一、选择题
      • 二、理论题
      • 三、实操题

【网络云SRE运维开发】2025第3周-每日【2025/01/16】小测-【第15章 bgp路由协议】理论和实操解析

一、选择题

  1. 答案:B
    • 解题思路:BGP(Border Gateway Protocol)是边界网关协议,主要运行在不同自治系统(AS)之间,用于在不同自治系统之间交换路由信息,从而实现跨自治系统的网络通信。所以选B。
  2. 答案:A
    • 解题思路:在H3C设备上,进入BGP视图的命令是[H3C]bgp ,这是H3C设备上的标准配置命令,用于开始配置BGP进程并指定自治系统号。故答案为A。
  3. 答案:A
    • 解题思路:BGP使用的端口号是179。这个端口号是专门为BGP协议分配的,用于建立TCP连接,在BGP路由器之间进行通信。因此选A。
  4. 答案:A
    • 解题思路:AS-Path是BGP的公认必遵属性,其主要作用是防止路由环路。当一条路由在不同自治系统间传播时,AS-Path会记录该路由经过的自治系统序列,路由器收到路由时可以检查自己的AS是否已经在AS-Path中,从而避免环路。所以选A。
  5. 答案:C
    • 解题思路:在BGP邻居状态机中,Active状态表示BGP正在主动发起TCP连接。当处于Idle状态时收到启动事件后,会进入Connect状态尝试建立连接,如果连接失败会进入Active状态并积极尝试建立连接。因此选C。
  6. 答案:B
    • 解题思路:当BGP路由器收到一条路由,其下一跳不可达时,该路由器通常会拒绝该路由,因为下一跳不可达意味着该路由无法正常使用,将其放入路由表会导致路由黑洞或其他问题。所以选B。
  7. 答案:C
    • 解题思路:BGP团体属性(Community)是可选传递属性,它主要用于对路由进行分组,方便管理员实施统一的路由策略,比如对一组路由设置相同的策略。它可以在EBGP和IBGP邻居间传递,也可跨自治系统传递,所以选C。
  8. 答案:C
    • 解题思路:在BGP路由选择中,优先考虑的因素通常是最高的Local-Preference。Local-Preference用于在自治系统内部选择到达外部网络的最佳出口,该属性仅在自治系统内部使用,不会被传递到其他自治系统。因此选C。
  9. 答案:A
    • 解题思路:BGP的多出口鉴别属性(MED)主要影响入站流量,即影响从外部自治系统进入本自治系统的流量。它可以帮助自治系统向邻居自治系统表明进入本自治系统的首选路径,因此选A。
  10. 答案:C
    • 解题思路:BGP反射器(Route Reflector)的主要作用是打破IBGP水平分割规则。在IBGP中,为了防止路由环路,有水平分割规则,但这会导致全互联的邻居关系,使用反射器可以减少邻居连接数量,打破该规则,使路由信息能够在IBGP邻居中传递。所以选C。

二、理论题

  1. 答案
    • 路由表大小
      • IGP(内部网关协议)主要用于自治系统内部,如OSPF、RIP等,其路由表大小相对较小,因为只需要关注自治系统内的网络拓扑和路由信息。而BGP路由表规模较大,因为它要维护来自不同自治系统的路由信息,包含全球范围的路由信息。
    • 路由算法
      • IGP使用链路状态算法(如OSPF)或距离矢量算法(如RIP),主要目的是计算自治系统内的最短路径,关注的是自治系统内的链路成本和跳数等因素。BGP使用路径矢量算法,考虑的是自治系统路径,依据路径属性(如AS-Path、Local-Preference等)进行路由选择。
    • 应用场景
      • IGP应用于自治系统内部,实现自治系统内的路由选择和数据包转发,确保内部网络的连通性和高效转发。BGP应用于不同自治系统之间,实现跨自治系统的路由交换,侧重于考虑不同自治系统间的策略、可达性和网络管理等方面。
    • 解题思路:从三个方面来阐述BGP与IGP在路由信息交换方面的不同。对于路由表大小,从各自协议所覆盖的范围来分析;对于路由算法,说明IGP和BGP采用不同算法的原因和目标;对于应用场景,从网络层次(自治系统内和自治系统间)的角度解释它们的不同应用。
  2. 答案
    • 路由选择过程
      • BGP路由选择是一个多步骤的过程,首先考虑Local-Preference,选择最高值;若相同,比较本地发起路由;再比较AS-Path长度,选择最短路径;接着比较Origin属性,优先顺序为IGP > EGP > Incomplete;然后比较MED(对于来自同一相邻自治系统的路由);再比较EBGP路由优先于IBGP路由;最后考虑到下一跳的IGP度量。
    • 主要属性及其影响
      • Local-Preference:在自治系统内部选择出口,值越高越优先,不传递到其他自治系统。
      • AS-Path:防止路由环路,优先选择最短的AS-Path,记录路由经过的自治系统序列。
      • Origin:表明路由起源,优先顺序为IGP > EGP > Incomplete。
      • MED:影响入站流量,值越小越优先,通常比较来自同一相邻自治系统的路由。
    • 解题思路:首先详细描述BGP的路由选择过程的步骤,再分别解释每个主要属性的作用和对路由选择的影响,结合不同的网络场景,如自治系统内部出口选择、路由环路避免、路由起源判断和入站流量引导等方面进行说明。
  3. 答案
    • Idle状态:BGP进程的初始状态,在此状态下不接受或发起连接,等待启动事件(如配置启动BGP),一旦接收到启动事件,将进入Connect状态并初始化资源,启动连接重试定时器。
    • Connect状态:尝试与对等体建立TCP连接,若成功建立TCP连接,发送OPEN消息并进入OpenSent状态;若失败进入Active状态并启动连接重试定时器;若连接重试定时器超时,重新尝试建立TCP连接。
    • Active状态:积极尝试建立TCP连接,若成功建立TCP连接,发送OPEN消息并进入OpenSent状态;若连接重试定时器超时,继续尝试建立TCP连接;若收到停止事件则回到Idle状态。
    • OpenSent状态:已发送OPEN消息,等待对等体的OPEN消息,若收到对等体的OPEN消息且参数协商成功,发送Keepalive消息进入OpenConfirm状态;若参数协商失败,发送NOTIFICATION消息关闭连接,回到Idle状态;若等待超时关闭连接回到Idle状态。
    • OpenConfirm状态:等待对等体的Keepalive或NOTIFICATION消息,若收到Keepalive消息,进入Established状态;若收到NOTIFICATION消息关闭连接回到Idle状态;若超时关闭连接回到Idle状态。
    • Established状态:邻居关系建立成功,可交换UPDATE、Keepalive和NOTIFICATION消息,通过UPDATE消息交换路由信息。
    • 解题思路:按照BGP邻居建立的顺序,依次描述每个状态的特点和转换条件,从初始的Idle状态开始,到最终的Established状态,详细说明每个状态在什么情况下会转换到下一个状态,以及发送的消息和处理的动作。
  4. 答案
    • 路由聚合的概念和目的
      • 路由聚合是将多个具有相同前缀的具体路由合并为一个更通用的汇总路由,目的是减少BGP路由表的大小,提高路由系统的性能和稳定性,降低网络中路由更新消息的数量,避免路由振荡。
    • 在H3C设备上的实现
      • 手动路由聚合:使用aggregate-address <ip-address> <mask> [as-set] [attribute-policy <policy-name>]命令。例如,将10.0.1.0/24、10.0.2.0/24、10.0.3.0/24聚合为10.0.0.0/16,可使用aggregate-address 10.0.0.0 255.255.0.0。可以通过as-set参数保留具体路由的AS-Path信息,通过attribute-policy应用属性策略。
      • 自动路由聚合:在H3C设备上,可以使用summary automatic命令启用自动路由聚合,但它是按照自然网络掩码(如A类、B类、C类地址的默认掩码)进行聚合,不够灵活。
    • 解题思路:先解释路由聚合的概念和其带来的好处,再分别说明在H3C设备上实现手动路由聚合和自动路由聚合的命令和参数,以及它们的特点和使用场景,如手动聚合可精确控制,自动聚合更简便但不够灵活。
  5. 答案
    • 使用路由策略控制路由信息的传播和选择
      • 路由过滤:可以使用路由策略过滤掉不需要的路由,在H3C设备上可使用访问控制列表(ACL)或前缀列表(Prefix List)结合路由策略来实现。例如,使用ip prefix-list <name> permit/deny <prefix>创建前缀列表,再通过route-policy <policy-name> permit/deny node <node-number>将前缀列表应用到路由策略中。
      • 属性修改:可以修改路由的属性,如修改Local-Preference、MED等属性。例如,使用route-policy <policy-name> permit/deny node <node-number>,在其中使用apply local-preference <value>apply med <value>修改属性。
    • 解题思路:先阐述路由策略的概念和作用,包括路由过滤和属性修改,然后具体说明在H3C设备上如何使用ACL或前缀列表进行路由过滤,以及如何使用路由策略修改路由属性,给出具体的命令示例和解释。

三、实操题

  1. 答案
[H3C]bgp 100
[H3C-bgp]peer 192.168.1.2 as-number 200
- **解题思路**:首先使用`[H3C]bgp 100`命令进入BGP视图并指定AS号为100,然后使用`[H3C-bgp]peer 192.168.1.2 as-number 200`命令配置BGP邻居,指定邻居的IP地址192.168.1.2和其所属的AS号200,这样就建立了与对端的EBGP邻居关系。
  1. 答案
[H3C]bgp 100
[H3C-bgp]aggregate-address 10.0.0.0 255.255.0.0
[H3C-bgp]peer <neighbor-ip> route-policy set-localpref-200 export
[H3C]route-policy set-localpref-200 permit node 10
[H3C-route-policy]apply local-preference 200
- **解题思路**:首先进入BGP视图并指定AS号为100,然后使用`aggregate-address 10.0.0.0 255.255.0.0`命令将路由聚合为10.0.0.0/16。接着,使用`peer <neighbor-ip> route-policy set-localpref-200 export`命令将名为`set-localpref-200`的路由策略应用到邻居的出口方向。最后,创建路由策略`set-localpref-200`,使用`apply local-preference 200`将本地优先级设置为200。
  1. 答案
[H3C]ip prefix-list prefix16 permit 172.16.0.0 255.255.0.0
[H3C]route-policy filter-route permit node 10
[H3C-route-policy]if-match prefix-list prefix16
[H3C-route-policy]apply med 100
[H3C]bgp 100
[H3C-bgp]peer <neighbor-ip> route-policy filter-route import
- **解题思路**:首先使用`ip prefix-list prefix16 permit 172.16.0.0 255.255.0.0`创建前缀列表,只允许172.16.0.0/16的路由。然后创建路由策略`filter-route`,使用`if-match prefix-list prefix16`将前缀列表应用到路由策略中,使用`apply med 100`修改路由的MED属性。最后进入BGP视图,使用`peer <neighbor-ip> route-policy filter-route import`将路由策略应用到从邻居接收路由的入口方向,实现对路由的过滤和属性修改。

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

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

相关文章

npm发布工具包+使用

1.初始化package包 npm init -y {"name": "common-cjs-tools","version": "1.0.0","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" &&…

Spring boot面试题----Spring Boot核心注解有哪些

一、@SpringBootApplication 功能: 这是一个组合注解,相当于同时使用了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan 三个注解。它是 Spring Boot 应用程序的入口点,通常添加在应用程序的主类上,例如:@SpringBootApplication public class MyApplicatio…

C# Web 开发:ASP.NET Core 从入门到实战

ASP.NET Core 是一个开源、跨平台、高性能的 Web 框架&#xff0c;适用于构建现代 Web 应用和 API。它不仅支持传统的 Web 应用开发&#xff0c;还支持 RESTful API、实时应用、微服务等架构。与传统的 ASP.NET 框架相比&#xff0c;ASP.NET Core 更加轻量级、模块化&#xff0…

http转化为https生成自签名证书

背景 项目开发阶段前后交互采用http协议&#xff0c;演示环境采用htttps协议 &#xff0c;此处为个人demo案例 组件 后端&#xff1a;springBoot 前端&#xff1a;vue web 服务&#xff1a;tomcat 部署环境&#xff1a;linux 生成自签名证书 创建目录 存储证书位置 # mkdir -p…

【初阶数据结构】序列系统重构:顺序表

文章目录 1.线性表2.顺序表2.1 概念及结构2.1.1 静态顺序表2.2.2 动态顺序表 2.2 接口实现2.2.1 顺序表打印2.2.2 顺序表初始化2.2.3 顺序表销毁2.2.4 顺序表容量检查2.2.5 顺序表尾插2.2.6 顺序表头插2.2.7 顺序表尾删2.2.8 顺序表头删2.2.9 顺序表在pos位置插入x2.2.10 顺序表…

AI 编程工具—Cursor进阶使用 阅读开源项目

AI 编程工具—Cursor进阶使用 阅读开源项目 首先我们打开一个最近很火的项目browser-use ,直接从github 上克隆即可 索引整个代码库 这里我们使用@Codebase 这个选项会索引这个代码库,然后我们再选上这个项目的README.md 文件开始提问 @Codebase @README.md 这个项目是用…

Redis集群部署详解:主从复制、Sentinel哨兵模式与Cluster集群的工作原理与配置

集群部署形式 1、主从复制1.1 工作机制1.2 配置实现1.3 优缺点1.4 部署形式1.5 主从复制优化 2、Sentinel 哨兵模式2.1 工作机制2.2 配置实现2.3 优缺点2.4 哨兵机制选举流程2.5 脑裂问题解决方案 3、Redis Cluster3.1 工作机制3.2 配置实现3.3 优缺点3.4 故障转移3.5 哈希槽为…

C++常见的错误处理机制

目录 1.引言 2.异常处理&#xff08;Exception Handling&#xff09; 3.错误码&#xff08;Error Codes&#xff09; 4.断言&#xff08;Assertions&#xff09; 5.日志记录 6.条件检查和防御性编程 7.实际运用 8.总结 1.引言 不管是谁&#xff0c;都不能保证自己写的程…

深入理解 Android 混淆规则

在 Android 开发中&#xff0c;混淆&#xff08;Obfuscation&#xff09;是一种保护代码安全的重要手段&#xff0c;通常通过 ProGuard 或 R8 工具来实现。本文将详细介绍 Android 混淆规则的基本原理、配置方法以及最佳实践&#xff0c;帮助开发者更好地保护应用代码。 博主博…

04.二分查找

一、题目思路 1、先排序数组两段各各取一个索引值&#xff1a;start0、endn-1 2、当start < end时都需要判断 3、mid start ((end-start)>>1) 防止 start end 溢出 4、arr[mid] > num&#xff0c; end mid - 1&#xff1b; 5、arr[mid] < num&#xff0c; s…

MyBatis-XML映射配置

引言 在 Mybatis 中&#xff0c;既可以通过注解配置 SQL 语句&#xff0c;也可以通过 XML 配置文件配置 SQL 语句。默认规则&#xff1a; 1. XML 映射文件的名称与 Mapper 接口名称一致&#xff0c;并且将 XML 映射文件和 Mapper 接口放置在相同包下 &#xff08;同包同名&…

MS9913N血糖测试 AFE 芯片

MS9913N 是一款血糖仪模拟前端 (AFE) 测量电路&#xff0c;内部集成 了 16bit 高性能 Σ-Δ ADC 、高精度运算放大器、低阻抗开关、高精 度基准电压产生电路和血糖测试 AC 信号调理电路&#xff0c;接口采用 I 2 C 通信协议&#xff0c;使外围器件更少&#xff0c;操…

C语言:-三子棋游戏代码:分支-循环-数组-函数集合

思路分析&#xff1a; 1、写菜单 2、菜单之后进入游戏的操作 3、写函数 实现游戏 3.1、初始化棋盘函数&#xff0c;使数组元素都为空格 3.2、打印棋盘 棋盘的大概样子 3.3、玩家出棋 3.3.1、限制玩家要下的坐标位置 3.3.2、判断玩家要下的位置是否由棋子 3.4、电脑出棋 3.4.1、…

Go语言中http.Transport的Keep-Alive配置与性能优化方法

在Go语言中&#xff0c;http.Transport是一个用于发送HTTP或HTTPS请求的客户端工具&#xff0c;它提供了许多可配置的参数以优化性能。其中&#xff0c;Keep-Alive配置是性能优化的关键部分。以下是对http.Transport的Keep-Alive配置与性能优化方法的详细解释&#xff1a; 一、…

80_Redis内存策略

Redis性能之所以这么强,最主要的原因就是基于内存存储。而单节点的Redis其内存大小不宜过大,否则会影响持久化或主从同步的性能。 我们可以通过修改redis.conf配置文件来设置Redis的最大内存。 maxmemory <bytes> 当Redis内存使用达到上限时,就无法存储更多数据了。…

【VS 调试WebApi —— localhost 及 ip访问】

VS 调试WebApi —— localhost 及 ip访问 1、localhost访问1.1 localhost端口修改 2、IP访问2.1 运行项目2.2 打开配置文件2.3 修改配置文件2.4 保存后重新运行 3、最终效果 1、localhost访问 VS运行项目时默认localhost访问。1.1 localhost端口修改 右键项目选中【属性】 --…

python范围

用户图形界面-工资计算器 from tkinter import *def f():w int(e1.get()) int(e2.get()) - int(e3.get())wage.insert(0,w)root Tk() root.title("工资计算器") Label(root, text"每月基本工资&#xff1a;").pack() e1 Entry(root) e1.pack() Label(…

Flask-SQLAlchemy 基于一个base表 - 动态创建使用相同字段的其他业务表

1 安装 首先&#xff0c;确保您安装了 Flask 和 SQLAlchemy&#xff0c;以及 MySQL 的驱动程序&#xff08;例如 mysql-connector-python 或 PyMySQL&#xff09;&#xff1a; pip install Flask Flask-SQLAlchemy mysql-connector-python2 创建项目结构 创建一个简单的项目…

Flink链接Kafka

一、基于 Flink 的 Kafka 消息生产者 Kafka 生产者的创建与配置&#xff1a; 代码通过 FlinkKafkaProducer 创建 Kafka 生产者&#xff0c;用于向 Kafka 主题发送消息。Flink 执行环境的配置&#xff1a; 配置了 Flink 的检查点机制&#xff0c;确保消息的可靠性&#xff0c;支…

h5使用video播放时关掉vant弹窗视频声音还在后台播放

现象&#xff1a; 1、点击遮罩弹窗关闭&#xff0c;弹窗的视频已经用v-if销毁&#xff0c;但是后台会自己从头开始播放视频声音。但是此时已经没有视频dom 2、定时器在打开弹窗后3秒自动关闭弹窗&#xff0c;则正常没有问题。 原来的代码&#xff1a; //页面 <a click&quo…