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

学习HCIP的day.09

目录

一、BGP:边界网关路由协议

二、BGP特点:

三、BGP数据包    

四、BGP的工作过程

五、名词注解

六、BGP的路由黑洞

七、BGP的防环机制—水平分割

八、BGP的基本配置


一、BGP:边界网关路由协议

是一种动态路由协议,且是无类别路径矢量EGP协议;BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路

查看全球IP地址分配和管理的网站:https://www.cidr-report.org/as2.0/

BGP协议的可靠性:由于AS间更新量巨大,故只能增量更新,仅触发更新、无周期更新,基于四层的TCP协议,只能基于单播工作;BGP协议的工作环境,也需要非直连建立邻居关系,故单播是最好的选择;非直连单播的前提是IP地址可达;

注:BGP承载于IGP之上;

AS-BY-AS规则:以一个AS为一跳,将路由从AS1传送到AS3时,通过EBGP协议学习到的路由在AS2内部的IBGP协议上传递时,路由属性不发生变化。BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路;

因此IGP协议追求:1、无环(选路佳) 2、收敛快   3、占用资源少

所以IGP协议必然存在工作半径

EGP协议的追求:

1、可控性强:管理员可以很方便地策略干涉选路

2、可靠性(BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现需要非直连(两台运行BGP协议间有多台路由器)建立邻居关系,需要单播建立邻居,基于TCP工作。

基于TCP工作的原因:三次握手机制,四次挥手机制,4种可靠的传输机制(确认、排序、滑动窗口、重传),TCP只能基于单播工作,单播需要IP可达

3、AS-BY-AS  以一个AS为一跳;

二、BGP特点:

1、无类别路径矢量 -----距离矢量的升级版---AS--BY--AS

2、使用单播更新来发送所有信息;基于TCP 179端口工作

3、增量更新--仅触发无周期

4、具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议

5、可以在进项和出项对流量实施强大的策略--可控性

6、默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径

7、BGP支持认证和聚合(汇总)

三、BGP数据包    

基于TCP的179端口工作;故BGP协议中所有的数据包均需要在TCP会话建立后,基于TCP的会话来进行传输及可靠性的保障;

首先通过TCP的三次握手来寻找到邻居;然后发送四个数据包来建立邻居和保活、更新。

数据包作用
Open仅负责邻居关系的建立,正常进收发一次即可;携带route-id;
Keeplive保活:周期1min查询邻居关系是否存在,实际保活TCP会话;hold time 默认3min
Update携带路由条目:目标网络号+各种属性
Notification出现错误数据时收发该数据包

四、BGP的工作过程

1、首先基于IGP路由协议实现IP可达(可以相互通信);

2、在邻居间通过单播传输,通过三次握手建立TCP的会话通道

3、使用open报文进行邻居关系建立,一般收发一次即可;生成邻居表

4、使用update共享路由信息,信息中携带目标网络号+各种属性

5、生成BGP表装载本地发出及接收到的所有路由信息

6、之后将BGP表中的最优路径加载于路由表中;

7、收敛完成后,仅用keeplive包周期保活即可

8、所有BGP的数据包均基于TCP的会话来保障传输的可靠性

9、若出现错误信息,将使用Notification包进行告警

10、若是网络结构突变,使用update包触发更新即可

五、名词注解

1、IBGP:内部BGP邻居关系,在同一个AS(自治系统)的BGP设备间的邻居关系

2、IGP 内部网关路由协议:仅在AS(自治系统)内部使用,例如:RIP OSPF EIGRP ISIS....

3、EBGP:外部的BGP邻居关系,不同AS(自治系统)的BGP设备间建立的邻居关系

4、EGP外部网关路由协议:仅在AS(自治系统)之间使用,例如:EGP  BGP、

5、AS:自治系统,由单一的机构或组织所管理的一系列IP网络及设备所构成集合,标准编号为16位2进制,为0-65535,其中1-64511为公有,64512-65535为私有。除了以上的标准编号,还有扩展AS号,为32位二进制

六、BGP的路由黑洞

由于BGP协议可以非直连建立邻居关系,故可能出现BGP协议邻居间跨越了未运行BGP协议的路由器;导致BGP路由传递后,控制层面显示可达,但数据层面,流量经过未运行BGP协议的路由器时,无法通过;最终不通,即控制层面可达、数据层面不可达,称为路由黑洞

解决方案:

1、物理链路或着逻辑链路全部连接

2、BGP邻居关系全部连接,所有路由器均运行BGP边界网关协议

3、IGP协议重发布到BGP协议中

4、MPLS (推荐做法),一种新的技术,后边会学习到

七、BGP的防环机制—水平分割

1、EBGP水平分割 --- 防御EBGP环境下的环路

BGP协议将在路由条目中记录所有经过的AS编号;即在as-path属性中装载所有经过的AS编号,边界路由器接收到的BGP条目中,若as-path属性存在本地的AS号将拒绝接收;

2IBGP水平分割 --- 防御IBGP环境下的环路

AS-BY-AS特性:以一个AS为一跳;因此在一个AS内部传递的路由,其属性默认没有任何变化;

IBGP水平分割:从一个IBGP邻居处学习到的路由,不得传递给本地连接的其他的IBGP邻居;

为了实现所有BGP设备学习到所有路由,在IBGP水平分割的条件下,两两路由器间均需要建立IBGP邻居关系;因此IBGP邻居关系的数量成指数上升;所以后期可以使用联邦或路由反射器来打破;

八、BGP的基本配置

1、在BGP协议中,邻居的建立,与路由条目的宣告是分开进行的;

(1)直连的EBGP邻居间建立

[r1]bgp 1    
# 启动时需要定义其所在的AS号 没有多进程的概念
[r1-bgp]router-id 1.1.1.1         
# 建议配置RID,与OSPF的RID配置规则一致
[r1-bgp]peer  12.1.1.2 as-number 2  
# 建立邻居关系,定义对端设备的ip地址,及所在AS编号

(2)建立IBGP邻居关系

由于IBGP邻居处于同一个AS中,正常一个AS的内部存在大量的备份路径;若使用物理接口建立邻居关系,将浪费这些备份或负载均衡路径;故建议使用环回接口来进行IBGP邻居关系;

[r2]bgp 2[r2-bgp]peer  3.3.3.3 as-number 2[r2-bgp]peer  3.3.3.3 connect-interface LoopBack 0

切记:一旦使用环回地址做为建邻地址,同时需要修改源ip地址,为本地的环回地址;

(3)EBGP邻居间,存在多条物理链路的建立方案

建议使用环回来作为源、目标ip地址;便于利用所有物理链路

①IP可达问题,一般使用静态路由

②正常使用环回地址作为源、目来建立邻居关系

[r5]bgp 3[r5-bgp]peer  4.4.4.4 as-number 2 [r5-bgp]peer  4.4.4.4 connect-interface LoopBack 0

③EBGP邻居间,默认TTL值为1,IBGP为255;因为理论上EBGP邻居间没有第三台路由器,故TTL值设定为1,将只能和直连的物理接口建立邻居;一旦使用环回,必须修改TTL值

[r4-bgp]peer  5.5.5.5 ebgp-max-hop 2  
# 修改EBGP邻居间的TTL值

两端配置完成后,将基于TCP的三次握手,建立TCP会话,查看连接建立状态:

[r1]display tcp statusTCPCB    Tid/Soid Local Add:port        Foreign Add:port      VPNID  Stateb4d0f018 164/5    12.1.1.1:179          12.1.1.2:49877        0      Established

固定端口的使用者为服务端;

会话建立后,邻居间使用open报文,建立BGP的邻居关系;生成邻居表

[r1]display  bgp peerBGP local router ID : 1.1.1.1Local AS number : 1Total number of peers : 1                Peers in established state : 1Peer            V          AS  MsgRcvd  MsgSent   OutQ   Up/Down       State PrefRcv12.1.1.2        4        2       6      8    0 00:04:22 Established       0#邻居的ip地址    版本4    对端AS号                   状态机(以建立) 从该邻居处学习到的条目数量

2、BGP路由的宣告

BGP协议可以宣告本地路由表中,任意来源路由;本地直连、静态、IGP动态产生均可;

宣告时,宣告的条目内容必须和本地路由表中完全一致;

[r1]bgp 1[r1-bgp]network  1.1.1.0 24

本地将生成BGP;装载本地接收及发送出去的所有路由信息;

[r1]display  bgp routing-tableTotal Number of Routes: 1Network            NextHop        MED        LocPrf    PrefVal Path/Ogn*>   1.1.1.0/24          0.0.0.0         0                     0      i状态   网络号                           属性

路由条目状态分为两种情况,用两种方式表示:

*:为该条目可用

>:为该条目优秀(目标网络下一跳可达)     

可用且优秀,意味着该条目,可以传递(共享给本地的其他BGP邻居);可以加表(可以加载到本地的路由表中)

i:意味着这条路由条目是通过IBGP邻居学习到的

当下BGP环境,不优主要是因为下一跳不可达;

因为AS-BY-AS 导致,一条路由信息在IBGP邻居传递时,其属性默认不编号;最终时常导致下一跳不可达;

[r2]bgp 2[r2-bgp]peer  3.3.3.3 next-hop-local # 要求路由条目传递给,下一个邻居时,修改下一跳为本地地址;

相关文章:

学习HCIP的day.09

目录 一、BGP:边界网关路由协议 二、BGP特点: 三、BGP数据包 四、BGP的工作过程 五、名词注解 六、BGP的路由黑洞 七、BGP的防环机制—水平分割 八、BGP的基本配置 一、BGP:边界网关路由协议 是一种动态路由协议,且是…...

Electron-Builder Windows系统代码签名

前言 项目打包签名是两年前做的了,使用Electron-Bulder,打包工具版本迭代较少,倒是electron版本更新飞快,目前官方推荐使用Electron Forge进行打包,后续再对两者进行对比,重新整理现在的实现方案。 签名简…...

数据分析概述

数据分析概述 数据的性质数据的概念数据与信息的区别和联系 数据的类型按照度量尺度分按时间状况分 什么是数据分析数据分析的重要性数据分析的内容数据分析作用 数据分析的基本流程典型的数据分析的流程 数据分析方法对比分析法分组分析法定量数据分布分析——具体事例 结构分…...

网络编程初识

如果这篇有没接触过的知识点,请转到网络编程先导知识_小梁今天敲代码了吗的博客-CSDN博客 目录 IPv4和IPv6的概念: 子网掩码 默认网关 ping命令 端口 OSI网络分层模型 TCP/IP四层模型 字节序转换函数 IP地址转换 上一篇介绍了网络编程的先导知…...

软考A计划-试题模拟含答案解析-卷十二

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…...

I.MX RT1170加密启动详解(1):Encrypted Boot image组成

使用RT1170芯片构建的所有平台一般都是高端场合,我们需要考虑软件的安全需求。该芯片集成了一系列安全功能。这些特性中的大多数提供针对特定类型攻击的保护,并且可以根据所需的保护程度配置为不同的级别。这些特性可以协同工作,也可以独立工…...

Linux---用户切换命令(su命令、sudo命令、exit命令)

1. su命令 root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。 普通用户的权限,一般在其HOME目录内是不受限的。 一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限。 su 是…...

手机图片怎么提取文字?高效渠道一览

随着智能手机的普及,我们现在可以随时随地使用手机拍照记录生活中的点滴。然而,有时候我们拍照之后可能需要提取图片中的文字,比如拍下的菜谱、公告、名片等等。这时,我们就需要使用手机图片提取文字的功能。 - 采用OCR技术拍照识…...

Elasticsearch 聚合数据结果不精确问题解决方案

Elasticsearch 聚合数据结果不精确 背景 近期我们项目中出现使用ES聚合某个索引的数据取TOP 10的数据和相同条件下查询所有数据然后按数据量排序取的TOP 10的数据不一致的问题。 下面我们简单分析一下这个问题,列出一些常见的解决方案。 问题 Elasticsearch分片…...

Qt经典面试题:Qt开启线程的几种方式

方法一:从QThread类派生 ①创建一个类从QThread类派生 ②在子线程类中重写 run 函数, 将处理操作写入该函数中 ③在主线程中创建子线程对象, 启动子线程,调用start()函数 这种方法涉及到创建一个从QThread类派生的子类,并在该子类中重写run()函数。处理操…...

使用chartgtp写Android代码

<LinearLayout android:layout_width"match_parent" android:layout_height"match_parent" android:orientation"horizontal"> <TextView android:id"id/姓名" …...

【C++】4.jsoncpp库:jsoncpp库安装与使用入门

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍jsoncpp的使用。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习知识&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&am…...

HTML、CSS、 JavaScript介绍(二)

CSS 指层叠样式表 (Cascading Style Sheets)&#xff0c;CSS定义如何显示 HTML 元素。HTML 标签原本被设计为用于定义文档内容&#xff0c;样式表定义如何显示 HTML 元素&#xff0c;就像 HTML 中的字体标签和颜色属性所起的作用那样。样式通常保存在外部的 .css 文件中。我们只…...

高效益的淘客APP要怎么开发,需要哪些功能

现在各大淘客app都有移动端的app&#xff0c;但是一直不知道如何推广出去。客app想要赚钱&#xff0c;要思考怎么推广淘客app&#xff0c;推广适用于非常执行力的人。淘客app推广首要第一条&#xff0c;产品要好&#xff0c;app要好&#xff0c;返利要高&#xff0c;用户才会使…...

Java基础--->IO流(2)【常见IO模型】

文章目录 计算机角度IO操作系统IO常见的IO模型Java 中 3 种常见 IO 模型BIO&#xff08;BlockingI/O&#xff09;【同步阻塞IO】NIO&#xff08;Non-blocking/New I/O&#xff09;【非阻塞IO】IO多路复用AIO&#xff08;Asynchronous I/O&#xff09;【异步IO】 计算机角度IO 根…...

JavaScript let 和 const

在JavaScript中&#xff0c;let和const是用于声明变量的关键字。 let关键字用于声明一个块级作用域的变量。块级作用域是指在一个代码块&#xff08;通常是在花括号 {} 内部&#xff09;中声明的变量只在该代码块内部有效。例如&#xff1a; javascript function example() {…...

云原生下多集群的监控系统背景、架构设计与实现

随着云原生技术的普及&#xff0c;越来越多的企业开始采用多集群部署方案来提高系统的可用性和灵活性。在这种情况下&#xff0c;如何有效地监控多个集群的运行状态&#xff0c;成为了云原生架构下的一个重要问题。 多集群监控系统需要考虑以下几个方面的问题&#xff1a; 监…...

利用OpenCV处理图像

OpenCV是非常流行的图像处理库&#xff0c;下面介绍一下其对图像的基本操作。 1. 安装与环境 安装还有点儿复杂的&#xff0c;但百度几篇博客基本能解决&#xff0c;这里就不多说了。 安装好后&#xff0c;要在工程中使用OpenCV的头文件和库&#xff0c;需要在CMakeLists.tx…...

【面试实战】SpringIoC、AOP、MVC面试实战

version:1.0 文章目录 SpringSpring基础 / IoC🙎‍♂️面试官:举例Spring的模块?🙎‍♂️面试官:Spring、SpringMVC、Spring Boot关系?🙎‍♂️面试官:说说对SpringIoC的了解?🙎‍♂️面试官:什么是Spring Bean?🙎‍♂️面试官:Bean的作用域?🙎‍♂️面…...

[Redis 分布式锁 ]

目录 前言: 使用场景: 基于 Redis 实现分布式锁的详细示例&#xff1a; 使用示例&#xff1a; 依赖: Redis分布式锁控制并发访问: 前言: 记录一些小笔记 , 如果对你有帮助 那就更好了 使用场景: Redis 实现分布式锁的使用场景包括&#xff1a; 防止重复操作&#xf…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...