学习HCIP的day.09

news2024/11/26 12:26:19

目录

一、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 status

TCPCB    Tid/Soid Local Add:port        Foreign Add:port      VPNID  State

b4d0f018 164/5    12.1.1.1:179          12.1.1.2:49877        0      Established

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

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

[r1]display  bgp peer

 BGP local router ID : 1.1.1.1

 Local AS number : 1

 Total number of peers : 1                Peers in established state : 1



  Peer            V          AS  MsgRcvd  MsgSent   OutQ   Up/Down       State PrefRcv



  12.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-table

 Total Number of Routes: 1

      Network            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 

# 要求路由条目传递给,下一个邻居时,修改下一跳为本地地址;

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

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

相关文章

花果山博客

1:前言 2:项目介绍 3:统一返回结果 4:登录功能实现 前言 简单介绍一个写这个博客的目的。 因为之前学开发都是学完所需的知识点再去做项目,但是这时候在做项目的过程中发现以前学过的全忘了,所以为了减少这…

Vue3导入Element-plus方法

先引入依赖 npm install element-plus --savemain.js中要引入两个依赖 import ElementPlus from element-plus; import "element-plus/dist/index.css";然后 这个东西 我们最好还是挂载vue上 所以 还是 createApp(App).use(ElementPlus)然后 我们可以在组件上试一…

腾讯云轻量服务器镜像安装宝塔Linux面板怎么使用?

腾讯云轻量应用服务器宝塔面板怎么用?轻量应用服务器如何安装宝塔面板?在镜像中选择宝塔Linux面板腾讯云专享版,在轻量服务器防火墙中开启8888端口号,然后远程连接到轻量服务器执行宝塔面板账号密码查询命令,最后登录和…

从零搭建微服务-认证中心(二)

写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址:https://gitee.com/csps/mingyue 文档地址:https://gitee.com/csps/mingyue/wikis 创建新项目 MingYue Idea 创建 maven 项目这…

操作系统第五章——输入输出管理(下)

提示:枕上诗书闲处好,门前风景雨来佳。 文章目录 5.3.1 磁盘的结构知识总览磁盘 磁道 扇区如何从磁盘中读/写数据盘面 柱面磁盘的物理地址磁盘的分类知识回顾 磁盘调度算法知识总览磁盘的读写操作需要的时间先来先服务算法FCFS最短寻找时间优先SSTF扫描算…

SVG图形滤镜

SVG有提供Filter(滤镜)这个东西&#xff0c;可以用来在SVG图形上加入特殊的效果&#xff0c;像是图形模糊化、产生图形阴影、将杂讯加入图形等。以下介绍的是图形模糊化、产生图形阴影这2个滤镜效果。 浏览器对于SVG Filter的支援 SVG : 滤镜 (仅列出部分有使用到的属性) <…

【数据结构】超详细之实现栈

栈的实现步骤 栈的介绍栈的初始化栈的插入(入栈)栈的出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空销毁栈栈元素打印 栈的介绍 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xf…

快捷转换/互转 Markdown 文档和 TypeScript/TypeDoc 注释

背景 作为文档工具人&#xff0c;经常需要把代码里面的注释转换成语义化的 Markdown 文档&#xff0c;有时也需要进行反向操作。以前是写正则表达式全局匹配&#xff0c;时间长了这种方式也变得繁琐乏味。所以写了脚本来互转&#xff0c;增加一些便捷性。 解决方案 注释转 M…

【C++】初遇C++

认识C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff0c; 20世纪80年代&#xff0c; 计算机界提出了OOP(object orient…

学好网络安全,每年究竟能挣多少钱呢?

薪资的高低&#xff0c;应该是想要转行网络安全的同学最关心的话题了。毕竟薪资是个人水平和自我价值的体现嘛。&#xff08;文末资料&#xff09; 今天就展开谈谈网络安全行业的薪资吧。 先来看张图&#xff0c; 大家在求职时都有一个期望薪资&#xff0c;企业会有一个实际薪…

5月的面试难度有点大....

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;又得准备面试了&#xff0c;不知道从何下手&#xff01; 不论是跳槽涨薪&#xff0c;还是学习提升&#xff01;先给自己定一个小目标&#xff0c;然后再朝着目标去努力就完事儿了&#xff01; 为了帮大家节约时间&a…

R语言实践——使用rWCVP映射多样性

使用rWCVP映射多样性 加载库工作流1. 物种丰富度2. 特有物种丰富度3. 特定区域的物种热力图 加载库 library(rWCVP) library(tidyverse) library(sf) library(gt)工作流 1. 物种丰富度 我们可以使用 wcvp_summary 将所有物种的全球出现数据压缩为每个 WGSRPD 3 级区域的原始…

chatgpt赋能python:Python三角函数角度的介绍

Python三角函数角度的介绍 Python语言为各种计算提供了强大的支持。而Python在数学领域的支持更是非常强大&#xff0c;包括对三角函数角度的计算。在Python中&#xff0c;支持常用的三角函数&#xff0c;例如sin、cos、tan等。这些函数都需要将角度转换为弧度&#xff0c;并且…

车载网络测试 - CANCANFD - 基础篇_01

目录 问题思考&#xff1a; 一、为什么需要总线? 二、什么是CAN总线? 三、为什么是CAN总线? 四、曾经的车用总线 1、SAEJ1850(Class2) 2、SAEJ1708 3、K-Line 4、BEAN 5、 byteflight, K-Bus 6、D2B 五、当前的车用总线 1、CAN 2、LIN 3、FlexRay 4、MOST 六…

C#中的DataGridView中添加按钮并操作数据

背景&#xff1a;最近在项目中有需求需要在DataGridView中添加“删除”、“修改”按钮&#xff0c;用来对数据的操作以及显示。 在DataGridView中显示需要的按钮 首先在DataGridView中添加需要的列&#xff0c;此列是用来存放按钮的。 然后在代码中“画”按钮。 if (e.Column…

你知道什么叫三目表达式吗

目录 什么是三目表达式&#xff1f; 运用 1.单个使用 2.嵌套使用 什么是三目表达式&#xff1f; 1.三目表达式是一种编程中常见的表达式,它能够有效地帮助我们解决一些问题。 2.三目表达式由三个部分组成,分别是:条件表达式、结果表达式 听不懂么&#xff0c;那我们就来举个…

网页制作-技术学习笔记

PxCook PxCook测量像素工具下载 https://www.fancynode.com.cn/pxcookPxCook基本操作 通过软件打开设计图 打开软件 创建web项目 拖拽入设计图&#xff0c;png用设计模式 psd用开发模式 常用快捷键 放大设计图&#xff1a;ctrl 缩小设计图&#xff1a;ctrl - - 移动…

一、STM32开发环境的搭建(Keil+CubeMX)

1、STM32开发环境所需的东西 (1)KeilMDK安装包。 (2)STM32CubeMX。 (3)Keil软件对应的单片机pack包。 (4)STM32Cube MCU包。 2、Keil简介及安装 略 3、CubeMX简介及安装 3.1、CubeMX简介 (1)STM32CubeMX是一种图形工具&#xff0c;通过分步过程可以非常轻松地配置STM3…

Flutter 可冻结的侧滑表格 sticky-headers-table 结合 NestedScrollView 吸顶悬浮的使用实践

最近在做flutter web的开发&#xff0c;需要做一个类似云文档中表格固定顶部栏和左侧栏的需求&#xff0c;也就是冻结列表的功能 那么在pub上呢也有不少的开源库&#xff0c;比如&#xff1a; table_sticky_headers data_table_2 如果说只是简单的表格和吸顶&#xff0c;那么这…

cf1750E Bracket Cost

前言&#xff1a; 好久没训练了,来做道计数题找找感觉。**期末毁我青春 大意&#xff1a; 定义对于一个括号串 s的值&#xff0c;为通过最小次数以下操作使 s 实现括号匹配的操作次数。 选择一个子串&#xff0c;循环右移一位。在任意一个位置插入一个任意括号。 求一个括…