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(九)BGP -> 正文阅读

[网络协议]HCIP(九)BGP

动态路由协议划分

算法:? ? ?距离矢量型 ---??RIP EIGRP(收敛最快),?BGP(传输路径信息),传输路由表。

? ? ? ? ? ? ?链路状态型? ---?OSPF ISIS? ?传输链路状态信息。

? ? ? ? ? ? ?路径矢量型 ---?BGP? ?传递和控制路由。

范围 :? ?IGP内部网关协议? ?---是在一个自治网络内网关 (?主机 和 路由器 )间交换 路由 信息的 协议 。路由信息能用于网间协议(IP)或者其它网络协议来说明路由传送是如何进行的。(AS 内部使用的协议)

IGP 协议 包括RIP、OSPF、IS-IS、IGRP、EIGRP

? ? ? ? ? ? ? ?EGP ?边界网关协议? ?(AS 外部使用的协议)

EGP协议包括EGP BGP

? ? ? ? 外部网关协议(EGP)为两个相邻的位于各自域边界上的路由器提供一种交换消息和信息的方法。BGP是常用的外部网关协议,是不同自治系统的路由器之间交换路由信息的协议。

BGP 区分号 AS 1-65535 64512-65535 私有AS 2^16 AS号不足

? 特点:

  • 可以跨跳建立邻居。
  • 强调路由传递控制的一种协议,控制:路由学习选择性,选路的控制。
  • 手动建立邻居。
  • BGP有多种路由属性。

BGP的建邻

BGP是通过单播使用TCP协议建邻(TCP端到端),? ?端口号 :179

?邻居类型:

? ? ? ? ? ? ?IBGP邻居 ---? ?AS内部建立的BGP邻居,邻居路由器的AS号是一致的。

? ? ? ? ? ? ?EBGP邻居 ---??AS之间建立BGP邻居,邻居路由器的AS号不相同。

??注意: 上图中如果不写上面那条命令,则默认用10.1.12.2做源IP,就会与对方申邻地址不一致,建邻不成功。(建邻需注意源的问题)

一般而言BGPEBGP建邻会使用直连建立,IBGP建邻会使用回环建立。如果我们用回环建立EBGP邻居需要修改建邻跳数(跳数变大),BGP的跳数一般为1。

实验操作:(以下操作均以这个为基础)

? ? ? ?bgp 200

router-id 2.2.2.2

peer 10.1.24.2 as-number 300

peer 10.4.4.4 as-number 300

peer 10.4.4.4 ebgp-max-hop 2 //修改跳数(跳数只要大于1就行,不一定必须是2 ),不加数值默认是255 peer 10.4.4.4 connect-interface LoopBack0

若,没有自动弹出建邻成功的信息,则需要修改下一跳的跳数,因为BGP有跳数约束。如下:

??

此时,就会自动弹出建邻信息。

查看建邻信息:?

bgp 100

router-id 1.1.1.1

peer 10.1.13.2 as-number 300

peer 10.1.13.2 password simple 123? ? ?//BGP的认证

断开邻居关系,操作如下:

BGP邻居庄态以及包

BGP没有周期更新,只有触发更新,update包可以更新路由也可以撤销路由,BGP更新速度非常慢。

?BGP通过报文的交互完成邻居建立、路由更新等操作,共有Open、Update、Notification、Keepalive和Route-refresh等5种报文类型。
Open报文:是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系。BGP邻居在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持连接的有效性。确认后,BGP邻居间可以进行Update、Notification、Keepalive和Route-refresh报文的交换。
Update报文:用于在BGP邻居之间交换路由信息。Update报文可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。

一条Update报文可以发布多条具有相同路由属性的可达路由,这些路由可共享一组路由属性。所有包含在一个给定的Update报文里的路由属性适用于该Update报文中的NLRI(Network Layer Reachability Information)字段里的所有目的地(用IP前缀表示)。
一条Update报文可以撤销多条不可达路由。每一个路由通过目的地(用IP前缀表示),清楚地定义了BGP路由器之间先前通告过的路由。
一条Update报文可以只用于撤销路由,这样就不需要包括路径属性或者NLRI。相反,也可以只用于通告可达路由,就不需要携带撤销路由信息了。

Notification报文:当BGP路由器检测到错误状态时,就向邻居发出Notification报文,之后BGP连接会立即中断。
Keepalive报文:BGP路由器会周期性的向邻居发出Keepalive报文,用来保持连接的有效性。
Route-refresh报文:Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。

BGP路由器报文交互过程:

Idle状态是BGP初始状态。在Idle状态下,BGP路由器拒绝邻居发送的连接请求。只有在收到本设备的Start事件后(设备开启BGP),BGP路由器才开始尝试与其邻居进行TCP连接,并转至Connect状态。

Connect状态下,BGP路由器启动连接重传定时器(Connect Retry),等待TCP完成连接。
如果TCP连接成功,那么BGP路由器向邻居发送Open报文,并转至OpenSent状态。
如果TCP连接失败,那么BGP路由器转至Active状态。
如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器继续尝试与其邻居进行TCP连接,停留在Connect状态。

Active状态下,BGP路由器总是在试图建立TCP连接。
如果TCP连接成功,那么BGP路由器向邻居发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
如果TCP连接失败,那么BGP路由器停留在Active状态。
如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器转至Connect状态。

OpenSent状态下,BGP路由器等待邻居的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
如果收到的Open报文正确,那么BGP路由器发送Keepalive报文,并转至OpenConfirm状态。
如果发现收到的Open报文有错误,那么BGP路由器发送Notification报文给邻居,并转至Idle状态。

OpenConfirm状态下,BGP路由器等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。

Established状态下,BGP路由器可以和邻居交换Update、Keepalive、Route-refresh报文和Notification报文。

??在BGP中,建邻和宣告分开来做。

建邻:

?R2

?R3:?

?

并添加R4?

?

?查看邻居关系:??

??此时,并没有宣告,如下:

BGP路由生成:?

  1. network

Network命令是逐条IP路由表中已经存在的路由引入到BGP路由表中。

? ? ? ??

掩码宣告,必须和路由表中路由掩码对应,否则宣告不进去。只能一条一条宣告。

? ? ?2.import

Import命令是根据运行的路由协议(RIPOSPFISIS等)将路由引入到BGP路由表中,同时

import命令还可以引入直连和静态路由。

引入操作:

? ? ? ??

BGP路由学习

  1. 仅将自己最优的路由发布给邻居(图标为:*> 为最优路由)??
  2. 通过EBGP获得的最优路由发布给所有BGP邻居
  3. IBGP之间不能中转路由(就是IBGP必须传给它的IBGP邻居)----原因为了防环是一种水平分割的设置--因为IBGP之间没有设置防环计算。? ? ? EGBP没有防环设置。
  4. BGP与IGP同步???---BGP会查看自身路由有没有被重发布到IGP中,如果有就是同步,如果没有就是不同步(不同步的路由在BGP中不优)

路由黑洞问题

    1. BGP全互联---在黑洞路由器上配置BGP并且与其他BGP路由器建立邻居
    2. 重发布---BGP路由引入IBGP---BGPIGP同步
    3. mpls做隧道
    5.IBGP之间传递路由时路由的下一跳不变?。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??peer 10.4.4.4 next-hop-local ?//解决下一跳不可达问题? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?6.EBGP之间传递路由时路由的下一跳会修改为自己的更新地址(建邻地址)。

BGP的路由更新

本地路由(BGP-RIB---->过滤---->出向BGP-RIB---updata-->邻居的入向BGP-RIB-->过滤--->邻居的本地BGP-RIB

BGP的过滤

刷表:?

  1. 使用前缀列表来实现过滤

2.使用route-policy来实现过滤

BGP属性?

?

对于BGP来说,BGP路径属性被分为四大类:公认(必遵,任意),可选(过度,非过渡)

公认属性:所有BGP路由器都必须识别并支持的属性。

? ? ? ? 公认必遵:BGP的Update消息中必须包含的属性。

? ? ? ? 公认任意:不必存在于BGP的Update消息中,可以根据需求自由选择的属性。

可选属性:不要求所有的BGP路由器都能够识别的属性。

? ? ? ? 可选过渡:BGP不能识别该属性,但可以接收该属性并将其发布给它的邻居的属性。

? ? ? ? 可选非过渡:BGP可以忽略包含该属性的消息并且不向它的邻居发布。

?

Origin属性是决定最优路径的一个因素,用于标明路由的起源

Origin的3种属性:

? ? ? ? ? ? ? ?i ---?表明BGP路由通过network命令注入;

? ? ? ? ? ? ? ?e ---?表明BGP路由是从EGP学来的,EGP协议在现网中很难见到,但可以通过路由策略将路由的Origin属性修改为e;

? ? ? ? ? ? ? ? ---??即Incomplete表明BGP路由通过其它方式学到路由信息,如使用import命令引入的路由。

3种Origin属性的优先级为:i>e>Incomplete(?)。?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 12:07:43  更:2021-10-15 12:07:54 
 
开发: 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年11日历 -2024/11/26 3:54:05-

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