BGP的基本概念和工作原理

AS的由来

l Autonomous System 自治系统,为了便于管理规模不断扩大的网络,将网络划分为不同的AS

l 不同AS通过AS号区分,AS号取值范围1-65535,其中64512-65535是私有AS号

l IANA机构负责AS号的分发

AS之间传递路由

l AS之间的连接需要使用直连链路,或者是通过运营商建立VPN进行逻辑连接

l AS之间可能是不同的组织机构,使用IGP协议(例如:OSPF协议)传递路由信息将会有安全风险

AS之间传递路由使用BGP

l 因此我们在AS之间传递路由时使用BGP协议(边界网关路由协议 Border Gateway Protocol)

l 相较IGP协议,BGP协议有以下优势:

Ø BGP基于TCP工作(端口号179),因此只要能够建立TCP连接就可以建立BGP邻居关系;

Ø BGP能够承载上万条路由条目,而IGP仅能上千条;

Ø BGP路由器只传递路由条目,不会暴露AS内的拓扑信息,更加安全;

Ø 支持MPLS/VPN协议,用于传递客户VPN路由

BGP的特征

l BGP是距离矢量路由协议,邻居之间直接传递路由,每条BGP路由都携带多种属性

l 可以使用这些属性配置路由策略,实现灵活的路由选路,这是IGP协议无法做到的

BGP协议的应用场景

l BGP协议在企业中的应用主要有以下两个场景

Ø 大型企业的内部,存在多个分支,每个分支属于一个AS,通过BGP协议在不同分支之间传递路由

Ø 企业可以与运营商之间运行BGP协议,企业与运营商之间互相传递路由

BGP的工作原理

l BGP协议报文以单播的形式发送,BGP共有5种,其中路由是承载在Update报文中

BGP的有限状态机

状态之间的转换规则

BGP对等体

l 运行BGP的路由器被称为BGP Speaker或者BGP路由器

l 两台BGP路由器之间建立的关系叫BGP对等体(Peer)也叫BGP邻居,对等体之间交换BGP路由表

l BGP的Peer分为两种:EBGP和IBGP

l EBGP Peer:位于不同AS的路由器之间的BGP邻居关系

Ø 互为EBGP Peer的路由器彼此所属的AS号不同

Ø EBGP Peer一般基于直连接口建立

Ø Neighbor命令所指定的邻居IP地址要可达,TCP连接要能够正确建立

Ø EBGP的路由管理距离为20,因为AS之间BGP比IGP更优

l IBGP Peer:同属一个AS的路由器之间建立的BGP邻居关系

Ø 互为IBGP Peer的BGP路由器属于同一个AS

Ø IBGP Peer一般基于Loopback接口建立,Peer之间可以跨越路由器,只要TCP连接要能够正确建立

Ø IBGP的路由管理距离为200,因此AS内部IGP更优

BGP的邻居表

l BGP邻居表:包含了此台BGP路由器所有的邻居,以及他们之间的状态;

l BGP默认每隔60秒发送一次BGP/TCP存活消息,保持时间为180秒

l 每台BGP路由器独立维护一张BGP路由表,包含了本地导入以及从BGP peer学习所有BGP路由;

l BGP路由表中可用、最优的路由(标记为 *>)将会加载到全局IP路由表中;

BGP路由的生成

l BGP本身不会自动产生路由,必须要将IGP的路由引入到BGP路由表中。引入的方式有2种

BGP路由的传递

· BGP使用update报文将路由条目发送给BGP peer

· BGP传递路由遵循以下规则:

Ø 仅把BGP路由表中可用且最优(*>)的路由传递给BGP peer

Ø 从EBGP peer获得的路由,会发送给所有BGP peer(包括EBGP和IBGP)

Ø 从IBGP获得的路由默认会通告给它的EBGP peer(如果BGP同步开启则需要再判定)

BGP在AS内部的环路避免机制

l BGP作为一种D-V距离矢量路由协议,通过水平分割防止AS内部的环路

Ø 从IBGP获得的路由不向它的IBGP peer通告,以此来防止循环的发生

Ø IBGP在路由通告时也不会改变路由的下一跳,进一步防止循环的发生

l BGP同时还采用AS-Path属性来防止AS之间的环路

Ø EBGP向对等体通告路由时附加上自己的AS号存放在AS-path属性字段中,收到EBGP对等体Update报文时检查AS-path,如果发现自己的AS号则丢弃该路由,EBGP是依靠路由经过的AS路径来发现循环的

BGP的路由黑洞

l 由于在AS内部可以跨越设备建立IBGP对等体,因此会出现一些路径上的设备未运行BGP

l 这些设备由于未运行BGP,因此自然不会收到BGP传递来的路由信息

l 当有数据包经过这些设备时,因为没有相关路由信息,数据包将会被丢弃

避免路由黑洞问题的方法 —— BGP同步

l BGP协议为了防止路由黑洞问题,引入了同步机制

l 从IBGP对等体学习到的路由在成为最佳路由并向EBGP对等体通告之前必须被IGP学习到

l BGP同步默认关闭,如果开启则不会产生路由黑洞问题,但同时这些路由将无法正常使用

解决路由黑洞问题的方法

l 要想既不产生路由黑洞问题,又要使得这些路由可用,可采用以下方式:

Ø 路由重分布:把BGP的路由重发布到AS内的IGP

Ø IBGP全互联:在穿越路径上IBGP启用全连接,确保所有BGP路由过路设备都知道

Ø 使用MPLS:使用MPLS的转发机制解决穿越AS问题

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu关闭防火墙、关闭selinux、关闭swap

关闭防火墙 打开终端,然后输入如下命令,查看防火墙状态: sudo ufw status 开启防火墙命令如下: sudo ufw enable 关闭防火墙命令如下: sudo ufw disable 关闭selinux setenforce 0 && sed -i s/SELINUXe…

Android kotlin 协程异步async与await介绍与使用

一、介绍 在kotlin语言中,协程是一个处理耗时的操作,但是很多人都知道同步和异步,但是不知道该如何正确的使用,如果处理不好,看似异步,其实在runBloacking模块中使用的结果是同步的。 针对如何同步和如何异…

鸿蒙应用ArkTS开发- 选择图片、文件和拍照功能实现

前言 在使用App的时候,我们经常会在一些社交软件中聊天时发一些图片或者文件之类的多媒体文件,那在鸿蒙原生应用中,我们怎么开发这样的功能呢? 本文会给大家对这个功能点进行讲解,我们采用的是拉起系统组件来进行图片…

03-JAVA设计模式-备忘录模式

备忘录模式 什么是备忘录模式 Java中的备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不破坏封装性的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后可以将对象恢复到原先保存的状态…

Ansible自动化

Ansible自动化 自动化的需求: 1. 在什么样的场景下需要自动化? 批量化的工作: 装软件包、配置服务、升级、下发文件… 2. 为什么在自动化工具中选择ansible? 对比shell脚本: 相对于用shell的脚本来实现自动化&#x…

18.Nacos配置管理-微服务读取Nacos中的配置

需要解决的问题 1.实现配置更改热更新,而不是改动了配置文件还要去重启服务才能生效。 2.对多个微服务的配置文件统一集中管理。而不是需要对每个微服务逐一去修改配置文件,特别是公共通用的配置。 配置管理服务中的配置发生改变后,回去立…

主成分分析(PCA):揭秘数据的隐藏结构

在数据分析的世界里,我们经常面临着处理高维数据的挑战。随着维度的增加,数据处理、可视化以及解释的难度也随之增加,这就是所谓的“维度的诅咒”。主成分分析(PCA)是一种强大的统计工具,用于减少数据的维度…

python爬虫插件XPath的安装

概要 XPath Helper是一款专用于chrome内核浏览器的实用型爬虫网页解析工具。XPath可以轻松快捷地找到目标信息对应的Xpath节点,获取xpath规则,并提取目标信息,并进行校对测试;可对查询出的xpath进行编辑,正确编辑的结…

计算机网络和因特网

Internet: 主机/端系统(end System / host): 硬件 操作系统 网络应用程序 通信链路: 光纤、网络电缆、无线电、卫星 传输效率:带宽(bps) 分组交换设备:转达分组 包括&#…

DAP-seq助力揭示转录因子在草地贪夜蛾Bt抗性中重要作用

2024年4月6日,武汉生物工程学院生命科学与技术学院刘磊磊课题组在International Journal of Biological Macromolecules(中科院一区,影响因子8.2)期刊在线发表了“Contribution of the transcription factor SfGATAe to Bt Cry to…

# 从浅入深 学习 SpringCloud 微服务架构(六)Feign(3)

从浅入深 学习 SpringCloud 微服务架构(六)Feign(3) 一、组件的使用方式总结 1、注册中心 1) Eureka 搭建注册中心 引入依赖 spring-cloud-starter-netflix-eureka-server。 配置 EurekaServer。 通过 EnableEure…

Delta模拟器:iOS上的复古游戏天堂

Delta模拟器:iOS上的复古游戏天堂 在数字时代,我们有时会怀念起那些早期的电子游戏,它们简单、纯粹,带给我们无尽的乐趣。虽然现在的游戏在画质和玩法上都有了巨大的提升,但那种复古的感觉却始终无法替代。幸运的是&a…

Pytorch迁移学习训练病变分类模型

划分数据集 1.创建训练集文件夹和测试集文件夹 # 创建 train 文件夹 os.mkdir(os.path.join(dataset_path, train))# 创建 test 文件夹 os.mkdir(os.path.join(dataset_path, val))# 在 train 和 test 文件夹中创建各类别子文件夹 for Retinopathy in classes:os.mkdir(os.pa…

抽象工厂模式(Redis 集群升级)

目录 定义 Redis 集群升级 模拟单机服务 RedisUtils 模拟集群 EGM 模拟集群 IIR 定义使⽤接⼝ 实现调⽤代码 代码实现 定义适配接⼝ 实现集群使⽤服务 EGMCacheAdapter IIRCacheAdapter 定义抽象⼯程代理类和实现 JDKProxy JDKInvocationHandler 测试验证 定义 …

ClickHouse 如何实现数据一致性

文章目录 ReplacingMegreTree 引擎数据一致性实现方式1.ReplacingMegreTree 引擎2.ReplacingMegreTree 引擎 手动合并3.ReplacingMegreTree 引擎 FINAL 查询4.ReplacingMegreTree 引擎 标记 GroupBy5.允许偏差 前言:在大数据中,基本上所有组件都要求…

硬件玩物 | 性价比超高的NAS,威联通【TS-464-C2】快速上手初体验!

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路。] 大家好,我是【WeiyiGeek/唯一极客】一个正在向全栈工程师(SecDevOps)前进的技术爱好者 作者微信:WeiyiGeeker 公众号/知识星球:全栈工程师修炼指南 主页博…

1、k8s问题pod从service中剔除

一、起因 redis原来由两服务器的集群变为三服务器的集群,通过statefulset扩展了两节点,并把redis-app-0和redis-app-3从集群中去除,但是由于service路由后端不变,导致程序连接后端仍然可能到redis-app-0和redis-app-3 二、处理 …

【Unity 实用工具篇】 | UIEffect 实现一系列UGUI特效,描边及阴影特效

前言 【Unity 实用工具篇】 | UIEffect 实现一系列UGUI特效,描边及阴影特效一、UGUI特效插件:UIEffect1.1 介绍 二、组件属性面板三、代码操作组件 总结 前言 在Unity中 UGUI 的使用几乎是必不可少的,虽然也有NGUI、FGUI等可以使用&#xff…

Spring Kafka——基于 Spring Kafka 实现动态管理 Kafka 连接和 topic 的监听

文章目录 使用 Spring Kafka 动态管理 Kafka 连接和主题监听1. 前言2. 简单的消费程序配置3. Spring Kafka 主要的相关类的说明4. KafkaListener 注解的加载执行流程解析5. 动态监听消费订阅的设计与实现 使用 Spring Kafka 动态管理 Kafka 连接和主题监听 文章内容较长&#x…

Error opening file a bytes-like object is required,not ‘NoneType‘

错误显示,打开的是一个无效路径的文件 查看json文件内容,索引的路径与json文件保存的路径不同 方法:使用python脚本统一修改json文件路径 import json import os import argparse import cv2 from tqdm import tqdm import numpy as np impo…