IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HCIP第十天 -> 正文阅读

[网络协议]HCIP第十天

BGB --- 边界网关协议

IGB ---内部网关协议 --- S内部

EGB ---外部网关协议----BGP(EGB的改进和优化)---? AS之间

EGP协议在此之前还存在一款协议 ---EGP,但由于其功能有限,后来在其基础上进行优化和改进,生成了现在的BGP协议,目前AS之间使用最广泛的协议就是BGP协议。

目前IPV4环境下,使用最广泛的BGP版本时BGPV4。目前市场上已存在BGPV+。BGPV4+又可以称为MP--BGP--可以支持多种地址族的应用

AS --- 自治系统 --- 由单一机构或组织管理的一系列IP网络及其设备的集合。

1、网络范围太大,协议跑不过来,需要进行划分

2、自治管理

?? 为了方便区分和标定不同的AS,我们给每个自治系统设计了一个编号---AS号---16位二进制构成----0-65535;其中0和65535为保留值,不用,所以AS号真正的取值范围为1-65534;我们将64512-65534AS号称为私有AS号。?? ---因为传统的AS号存在不够用的问题,所以目前也存在拓展版的AS号---32位构成---目前绝大多数设备已经支持拓展版的AS号

?在没有BGP协议的情况下,使用重发布技术,也可以实现AS之间路由信息共享。但是,之所以不采用这种方案,其原因如下:

1、重发布技术本身存在缺陷 --- 在多点重发布中,因为种子度量值的问题,必然选路不佳

2、ASBR设备的归属问题

BGP之间传递路由信息的方式一定是和RIP类似,通过传递路由条目信息来实现。--- 之所以不适用拓扑信息,主要是因为;1、拓扑信息资源占用量太大,而BGP需要传递的数量是巨大的。2、传递拓扑信息将暴露本AS内部的拓扑连接情况。

BGP --- 无类别的路径矢量型协议 --- 不存在算法

距离矢量 -- 在距离矢量型协议中,距离是开销的体现,将跳数作为开销值的评判标准。将一个路由器看做是一个单位计算距离。

距离矢量是算法的概念,因为IGP协议本身需要通过算法来计算出未知网段的路由信息

路径矢量---是将一个AS看做一个整体

路径矢量不牵扯算法,因为BGP仅仅是将IGP计算出来的路由信息发送到其它AS之中,相当于仅将现成的路由进行传递而不需要计算。

IGP ---选路佳,收敛快,占用资源少

因为BGP协议需要传递大量的路由信息,所以,其本身不可能存在周期更新机制。BGP仅存在触发更新

BGP 协议的关注点

1、可控性 --- AS之间需要传递大量的路由信息,所谓可控就是可以更方便的干涉选路,更容易做路由策略。

为了保证可控性,BGP舍弃了开销值,取而代之的是BGP给每条路由信息附加了很多的路径属性。之后,可以通过这些属性来进行选路。因为多种属性的存在,将导致我们选路变得更加的灵活和方便。使得BGP协议具有强大的可操控性

2、可靠性 --- 需要保证数据传输的可靠。BGP为了保证传输的可靠性,其传输层协议直接选择使用TCP协议,使用TCP179号端口进行工作。

IGP协议不选择TCP的原因:

1,TCP速度较慢;

2,TCP占用资源较大;

3,TCP只能实现单播,所以无法通过组播或者广播的形式发送,则将导致IGP协议无法自动发现邻居,只能手工指定 。

因为BGP采用TCP作为传输层协议,所以,只能通过单播的形式建立邻居关系,需要手工指定邻居而不能自动发现。

BGP支持非直连建邻---因为只要网络可达,即可以实现TCP会话通道的建立,则可以建立BGP的邻居关系。----- BGP的非直连建邻是承载在IGP(静态路由)的基础上的。

AS之间的---EBGP对等体关系---如果建立对等体的两台路由器位于不同的AS中,则他们的关系就被称为EBGP对等体关系。

AS内部的--- IBGP对等体关系---如果建立对等体的两台路由器位于同一个的AS中,则他们的关系就被称为IBGP对等体关系。

一般情况下,IBGP对等体关系可以非直连建邻,而EBGP对等体关系之间是直连建邻的,所以,IBGP间建邻时,他所构成的数据包中的TTL值为255。但是,在EBGP对等体关系建邻时,他构成的数据报中TTL值为1。若BGP对等体之间需要非直连建邻,则必须将数据包中的TTL值修改。

3,AS - BY - AS:

在BGP中,始终是将一个AS看作是一个整体。----- BGP不支持负载均衡。不管到达相同网段存在多少条路由信息,BGP只会选择其中的一条加载到路由表中。----在BGP中,如果到达同一个目标网段存在多条路径可以走时,BGP将会根据其中的路径属性来选择一条最优的加载到表中,而不会进行负载均衡

1、BGP的数据包

BGP协议所有数据包传输的可靠性均由TCP协议保证。所有BGP数据包均基于TCP建立的会话通道发送。

OSPF的hello --- 可以周期性的发现建立和保活邻居关系。

在BGP中,发现领居的关系的过程由人手工指定。主要因为TCP协议需要建立会话通道,之后才会基于通道发送数据包

open包:建立BGP对等体关系。----对等体关系的建立无非就是数据协商的过程。BGP建立邻居关系需要通过OPEN包来携带参数,进行比对协商。

AS----在创建对等体关系时,需要指定邻居所在的AS号,这个参数将被携带在OPEN报文中发送给对方,对方将比对这个AS号和本地所在的AS号是否一致,如果一直,则可以正常建立领句关系

认证---BGP建邻也可以做认证,做认证后将携带认证口令,认证口令双方需要比对,一致则可以正常建立对等体关系。

Route-ID----区分和标定路由器的。也是由32位二进制构成,按照IP地址的格式来表示。----1、手工配置;2、自动获取(先看本地环回接口,取最大的作为RID,如果没有环回,则取物理接口IP最大的作为RID。)

这个RID将在OPEN包中携带,发送到对端之后,对端将检测这个RID,如果和本地的RID不同,则将可以正常的建立邻居关系。

?

手工指定邻居关系时所配置的目标lP地址必须和邻居发来的OPEN报文中的源IP地址一致,否则将无法正常建立邻居关系。

OPEN报文中还会协商一些参数

----保活时间(Hold time) ----默认为180S。这个参数也会携带在OPEN包中,但不要求必须相同,但是执行时又必须相同。所以,当双方保活时间不同时,则将按照数值小的来执行。

在保活时间内,如果没有收到对方发送的Keeplive包或者update包,则将断开BGP邻居关系。

----是否支持路由刷新功能也将成为open所携带的一个协商参数。如果有一方不支持,则间不启用该功能。

Keeplive包:周期保活 ----- 周期发送时间等于保活时间的1/3.默认保活时间180S,则默认的周期发送时间为60S。

除了保活之外,Keeplive包还将在open报文协商参数时临时充当确认包的作用。TCP协议进行确认的目的是为了保证数据传输的可靠新=性,而Keeplive报文确认的目的是为了确认认可对方发送的open包的参数。

update包:更新包----携带需要传递的路由信息的数据包。只需要携带目标网络号和子网掩码信息以及路径属性信息。

在更新包中有一个撤销路由条目字段,在这个字段下的路由条目将需要对端删除,而不再需要通过带毒传输的方式来表达。

notification包:BGP中设计的一个告警机制。

Route-refresh包:用于改变路由策略更改后请求对等体重新发送路由信息。(前提是条件双方均支持路由刷新功能才行)

2、BGP的状态机

BGP的状态机描述的是BGP对等体建立过程中状态的变化。因为BGP这个协议可以将对等体建立过程和路由收发过程分开进行。

BGP的状态机---6种

ldle ---空闲状态---一开始,设备启动BGP进程后先进入空闲状态,当手工指定邻居关系后,将进入到一个检查步骤。需要先确认指定地址在本地路由表中的可达情况。如果可达,则进入到Connect,尝试建立TCP的会话。如果不可达,则将停留在空闲状态。

Connect ---连接状态,该状态需要完成TCP会话的建立。

如果建立成功,则进入Opensent状态。

如果建立失败,则进入Active状态,则将反复尝试建立TCP会话。

在建立TCP会话过程中,因为双方都会主动发起建立会话的过程,而最终建立的都是一个双向的会话。所以最终只需要保持一个会话通道即可。选择方式是通过后续open报文中的RID进行比较,选择保留RID大的设备发起的TCP会话。

Opensent ---发送OPEN包,同时也会收到对方发送的OPEN文。则将对报文中的参数,之后,如果没问题则将发送keeplive包进行确认。

penconfirm --- Open确认状态。等待对方发送keeplive报文确认自己的参数。如果收到keeplive报文则进入下一个状态。

Established ---标志着对等体关系建立成功。

3、BGP的工作过程

1,基于IGP(静态,直连)实现IP可达

2,指定邻居关系,邻居间使用单播传输,建立TCP会话。之后BGP多有的数据包都将基于TCP会话通道来传输.

3,发送OPEN报文以及Keeplive报文进行邻居关系的建立。BGP会将邻居关系进行记录,记录在一张表中---邻居表。

4,使用UPdate包共亨路由信息。数据包中包含目标网络号及掩码信息,以及各种属性。在这个过程中,BGP会将所有收到的以及发送的路由信息都记录在一张表中---BGP表。

5,之后,BGP将会把BGP表中最优的路由加载到路由表中。(BGP到达相同网段可能会存在多条路由信息,但是,因为BGP不存在负载均衡,所以,BGP只会将其中最优的路由信息加载到路由表中。(通过路由的属性来进行判断))

6,收敛完成后,BGP将周期性的发送keeplive报文进行保活。

7,在任何过程当中,只要出现错误,都将使用notification报文进行告警.

8,若出现结构突变的情况,则将使用update报文进行触发更新。

4、BGP的路由黑洞

由于BGP协议可以非直连建邻,故可能出现BGP协议跨越未运行BGP协议的路由器;导致BGP路由传递后,控制层面显示可达,但数据层面,流量流经未运行BGP协议的路由器时,将无法通过,形成了路由黑洞。

1,可以直接让未运行BGP协议的设备运行BGP协议

2,可以让边界设备将BGP的路由信息重发布到IGP协议当中

3,MPLS --- 多协议标签技术

为了避免BGP的路由黑洞,BGP提出了同步机制---即当一台路由器从自己的IBGP对等体处学到一条BGP路由时,他不能发送给自己的EBGP对等体,除非他又从IGP(静态)协议中学到这条路由信息。相当于要求IBGP路由和IGP路由同步。

华为设备默认关闭同步机制。

5、BGP的防环

BGP的防环机制---水平分割

1、EBGP水平分割---针对EBGP对等体之间可能出现的环路问题所提出的防环手段。

AS_PATH---记录AS路径的一个属性。

BGP协议将在路由条目中记录所经过的AS的编号---AS_PATH ---这个属性对应的是一张列表。---接受到BGP路由条目中如果包含本地的AS号,则将不再结束该路由,以防止路由回传,造成路由环路问题。

2、IBGP水平分割---针对IBGP对等体之间可能出现的环路问题所提出的防环手段。

因为BGP不存在开销,而是依据路由属性来进行选路的。但是,又因为BGP的AS-BY-AS的规则,导致AS内部在默认情况下,因为要把整个AS看作是一个整体,所以传递的路由属性都是相同的,所以,IBGP之间想要防环无法通过属性防环。

IBGP的水平分割----当一个路由器从一个IBGP对等体处学习到某条BGP路由时,他将不再把这条路由信息传递给他的其他IBGP对等体。

IBGP水平分割确实可以防止IBGP对等之间的路由回传问题,但是,IBGP水平分割的规则相当于限制BGP路由在IBGP对等体间只能传递—跳。这样就可能造成BGP路由信息的传递障碍。

最简单的方法解决IBGP水平分割带来的通讯障碍---建立全连的IBGP对等体关系。---这种方法带来的问题

1,当网络中运行BGP的路由器的数量较多时,则将造成资源占用过大

2,造成网络的可扩展性变差。

BGP为了解决IBGP水平分割带来通讯障碍,专门设计了两个技术--

1,路由反射器;?????? 2,联邦

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 19:17:07  更:2022-07-20 19:17:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 13:18:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码