计算机网络——29ISP之间的路由选择:BGP

ISP之间的路由选择:BGP

层次路由

一个平面的路由

  • 一个网络中的所有路由器的地位一样
  • 通过LS,DV,或者其他路由算法,所有路由器都要知道其他所有路由器(子网)如何走
  • 所有路由器在一个平面

平面路由的问题

  • 规模巨大的网络中,路由信息的存储、传输和计算代价巨大
    • DV:距离矢量很大,而且不能收敛
    • LS:几百万个节点的LS分组的泛洪传输,存储以及最短路径算法的计算
  • 管理问题:
    • 不同的网络所有者希望按照自己的方式管理网络
    • 希望对外隐藏自己网格的细节
    • 希望和其他网络互联

层次路由:将互联网分成一个个AS(路由器区域)

  • 某个区域内的路由器集合,自治系统“autonomounts systems(AS)
  • 一个AS用AS Number(ASN)唯一标识
  • 一个ISP可能包括1个或者多个AS

路由变成了:2个层次路由

  • AS内部路由:在同一个AS内路由器运行相同的路由协议
    • “intra-AS” routing protocol:内部网关协议
    • 不同的AS可能运行着不同的内部网关协议
    • 能够解决规模和管理问题
    • 网管路由器:AS边缘路由器,可以连接到其他AS
  • AS间运行AS间路由协议
    • “inter-AS” routing protocol:外部网关协议
    • 解决AS之间的路由问题,完成AS之间的互联互通

层次路由的优点

解决了规模问题

  • 内部网关协议解决:AS内部数量有限的路由器相互到达的问题,AS内部规模可控
    • 如AS节点太多,可分割AS,使得AS内部的节点数量有限
  • AS之间的路由的规模问题
    • 增加一个AS,对AS之间的路由从总体上来说,只是增加了一个节点=子网(每个AS可以用一个点表示)
    • 对于其他AS来说只是增加了一个表项,就是这个新增的AS如何走的问题
    • 拓展性强:规模增大,性能不会减的太多

解决了管理问题

  • 各个AS可以运行不同的内部网关协议
  • 可以使自己网络的细节不向外透露

互联网AS路由:BGP

BGP:自治区域间路由协议“事实上的”标准

  • “将互联网各个AS粘在一起的胶水”

BGP提供给每个AS以以下方法:

  • eBGP:从相邻的ASes那里获得子网可达信息
  • iBGP:将从获得的子网可达信息传播到AS内部所有的路由器
  • 根据子网可达信息和策略来决定子网的“好”路径

允许子网向互联网其他网络通告“我在这里

基于距离矢量算法(路径矢量)

  • 不仅仅是距离矢量,还包括到达各个目标网络的详细路径(AS序号的列表)能够避免简单DV算法的路由环路问题

eBGP,iBGP连接

在这里插入图片描述

BGP基础

BGP会话:2个BGP路由器在一个半永久的TCP连接上交换BGP报文:

  • 通告向不同目标子网前缀的“路径”(BGP是一个“路径矢量”协议)

在这里插入图片描述

当AS3网管路由器3a向AS2的网管路由器2c通告路径:AS3,X

  • 3a参与AS内路由运算,知道本AS所有子网X信息
  • 语义上:AS3向AS2承诺,它可以向子网X转发数据报
  • 3a是2c关于X的下一跳(next hop)

路径的属性 & 路由

当通告一个子网前缀时,通告包括BGP属性

  • prefix + attributes = “route”

两个重要的属性

  • AS-PATH:前缀的通告所经过的AS列表:AS 67 AS 17
    • 检测环路:多路径选择
    • 在向其他AS转发时,需要将自己的AS号加载路径上
  • NEXT-HOP:从当前AS到下一跳AS有多个链路,在NEXT-HOP属性中,告诉对方通过那个I转发
  • 其他属性:路由偏好指标,如何被插入的属性

基于策略的路由

  • 当一个网关路由器接收到了一个路由器通告,使用输入策略来接受或过滤
    • 过滤原因例子
      • 不想经过某个AS,转发某些前缀的分组
      • 已经有了一条往某前缀的偏好分组
  • 策略也决定了是否向它别的邻居通告接收到的这个路由信息

BGP路径通告

在这里插入图片描述

  • 路由器AS2.2c从AS3.3a接收到的AS3,X路径通告(通过eBGP)
  • 基于AS2的输入策略,AS2.2c决定接收AS3,X的通告,而且(通过iBGP)向AS2的所有路由器进行通告
  • 基于AS2的策略,AS2路由器2a通过eBGP向AS1.1c路由器通告AS2,AS3,X路由信息
    • 路径上加上了AS2自己作为AS序列的一跳

在这里插入图片描述

网关路由器可能获取有关一个子网X的多条路径,从多个eBGP会话上:

  • AS1网关路由器1c从2a学习到路径:AS2,AS3,X
  • AS1网关路由器1c从3a学习到路径:AS3,X
  • 基于策略:AS1路由器1c选择了路径:AS3,X,而且通过iBGP告诉所有AS1内部的路由器

BGP报文

使用TCP协议交换BGP报文
BGP报文:

  • OPEN:打开TCP连接,认证发送方
  • UPDATE:通告新路径(或者撤销原路径)
  • KEEPALIVE:在没有更新的时候保持连接,也用于对OPEN请求确认
  • NOTIFICATION:报告以前消息的错误,也用来关闭连接

BGP、OSPF,转发表表项

路由器是如何设置到这些远程子网前缀的转发表表项的?

在这里插入图片描述

回顾:1a,1b,1c从1c那里通过iBGP学习到了子网X,“到往子网X的要通过1c”
1d:通过OSPF内部网关协议,为了到达1c,必须通过本地接口1

BGP路径选择

路由器可能获得一个网络前缀的多个路径,路由器必须进行路径的选择,路由选择可以基于:

  1. 本地偏好值属性:偏好策略决定
  2. 最短AS-PATH:AS的跳数
  3. 最近的NEXT-HOP路由器:热土豆路由
  4. 附加的判据:使用BGP标识

一个前缀对应着多种路径,采用消除规则直到留下一条路径

热土豆路由

在这里插入图片描述

2d通过iBGP获知,它可以通过2a或者2c到达X
热土豆策略:选择具备最小内部区域的代价的网关作为往X的出口(如:2d选择2a,即使X可能有比较多的AS跳数),不要操心域间的代价

为什么内部网关协议和外部网关协议如此不同

策略

  • Inter-AS:管理员需要控制通信路径,谁在使用它的网络进行数据传输
  • Intra-AS:一个管理者,所以无需策略
    • AS内部的各子网的主机尽可能的利用资源进行快速路由

规模

  • AS间路由必须考虑规模问题,以便支持全网的数据转发
  • AS内部路由规模不是一个大的问题
    • 如果AS太大,可将AS分成小的AS:规模可控
    • AS之间只不过多了一个点而已
    • 或者AS内部路由支持层次性,层次性路由节约了表空间降低了更新的数据流量

性能

  • Inter-AS:策略可能比性能更重要
  • Intra-AS:关注性能

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

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

相关文章

flutter 修改app名字和图标

一、修改名字 在Android中修改应用程序名称&#xff1a; 在AndroidManifest.xml文件中修改应用程序名称&#xff1a; 打开Flutter项目中的android/app/src/main/AndroidManifest.xml文件。找到<application>标签&#xff0c;然后在android:label属性中修改应用程序的名称…

安卓Activity上滑关闭效果实现

最近在做一个屏保功能&#xff0c;需要支持如图的上滑关闭功能。 因为屏保是可以左右滑动切换的&#xff0c;内部是一个viewpager 做这个效果的时候&#xff0c;关键就是要注意外层拦截触摸事件时&#xff0c;需要有条件的拦截&#xff0c;不能影响到内部viewpager的滑动处理…

Excel Worksheets、Range的错误

前提&#xff1a;使用Excel 托管 1、Worksheet.Range属性 当使用无效的单元格地址时&#xff0c;会引发COMException错误&#xff0c;具体如下&#xff1a; System.Runtime.InteropServices.COMException:"异常来自 HRESULT:0x800A03EC" 2、Workbook.Worksheets属…

爬取豆瓣电影分类排行榜中的电影详情数据

进入界面&#xff0c;右键打开检测&#xff0c;选择网络 然后网页滚动条拉倒最下面使其刷出新的数据&#xff0c;然后查看数据包 编写代码 import requests import jsonif __name__ __main__:get_url https://movie.douban.com/j/chart/top_listheaders {User-Agent:Mozil…

边缘计算与云计算总结

一. EdgeGallery 简介 MEC场景下的EdgeGallery是让资源边缘化&#xff0c;实时完成移动网络边缘的业务处理&#xff0c;MEC场景下的EdgeGallery让开发者能更便捷地使用 5G 网络能力&#xff0c;让5G能力在边缘触手可及。 EdgeGallery是由华为、信通院、中国移动、中国联通、…

Spring面试题系列-1

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而&#xff0c;Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言&#xff0c;绝大部分Java应用都可以从Spring中受益。 Spring是什么…

语音模块摄像头模块阿里云结合,实现垃圾的智能识别

语音模块&摄像头模块&阿里云结合 文章目录 语音模块&摄像头模块&阿里云结合1、实现的功能2、配置2.1 软件环境2.2 硬件配置 3、程序介绍3.1 程序概况3.2 语言模块SDK配置介绍3.3 程序文件3.3.1 开启摄像头的程序3.3.2 云端识别函数( Py > C ) & 串口程序…

Spring Boot 防护 XSS + SQL 注入攻击

XSS跨站脚本攻击 ① XSS漏洞介绍 跨站脚本攻击XSS是指攻击者往Web页面里插入恶意Script代码&#xff0c;当用户浏览该页之时&#xff0c;嵌入其中Web里面的Script代码会被解析执行&#xff0c;从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击&#xff01; ② XSS…

Android 8.1 仅支持PIN码的锁屏方式

Android 8.1 仅支持PIN码的锁屏方式 最近收到客户需求&#xff0c;要求设备仅支持PIN码的锁屏方式&#xff0c;具体修改参照如下&#xff1a; /vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ChooseLockGeneric.java // Used fo…

k8s 中的 deployment,statefulset,daemonset 控制器的区别

参考&#xff1a; k8s 说一下deployment&#xff0c;statefulset&#xff0c;daemonset 的区别 原创 Deployment、StatefulSet、DaemonSet的区别Deployment和Statefulset区别StatefulSet 和 Deployment 区别及选择方式 先介绍下k8s中&#xff0c;三种常见的控制器类型&#x…

FlinkSQL之Flink SQL Join二三事

​ Flink SQL支持对动态表进行复杂而灵活的连接操作。 为了处理不同的场景&#xff0c;需要多种查询语义&#xff0c;因此有几种不同类型的 Join。默认情况下&#xff0c;joins 的顺序是没有优化的。表的 join 顺序是在 FROM 从句指定的。可以通过把更新频率最低的表放在第一个…

Leetcode9_回文数

1.leetcode原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2.题目描述 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数 是指正序&#xff08;从左向右&#xff09;和倒序&…

llama.cpp 编译安装@Ubuntu

在Kylin 和Ubuntu编译llama.cpp &#xff0c;具体参考&#xff1a;llama模型c语言推理FreeBSD-CSDN博客 现在代码并编译&#xff1a; git clone https://github.com/ggerganov/llama.cpp cd llama.cpp mkdir build cd build cmake .. cmake --build . --config Release# 可选…

Spring 基于XML的DI

例如以下类&#xff1a; teanDao是没有new的&#xff0c;所以直接用的时候会报空指针异常&#xff0c;所以再Spring自动创建该Service的时候要给teamDao注入&#xff0c;也就是赋值吧。 因为TeamDao这个对象是要用的&#xff0c;所以这个对象也是要创建的&#xff0c;但是要在…

【 MyBatis 】| 关于多表联查返回 List 集合只查到一条的 BUG

目录 一. &#x1f981; 写在前面二. &#x1f981; 探索过程2.1 开端 —— 开始写 bug2.2 发展 —— bug 完成2.3 高潮 —— bug探究2.4 结局 —— 效果展示 三. &#x1f981; 写在最后 一. &#x1f981; 写在前面 今天又是 BUG 气满满的一天&#xff0c;一个 xxxMapper.xm…

spark核心概念

DAG 所谓DAG就是有向无环图&#xff0c;其实就是个无环的流程&#xff0c;Spark的核心是根据RDD来实现的&#xff0c;Spark Scheduler!则为Spark核心实现的重要一环&#xff0c;其作用就是任务调度。Spark的任务调度就是如何组织任务去处理RDD中每个分区的数据&#xff0c;根据…

Day53:WEB攻防-XSS跨站SVGPDFFlashMXSSUXSS配合上传文件添加脚本

目录 MXSS UXSS&#xff1a;Universal Cross-Site Scripting HTML&SVG&PDF&SWF-XSS&上传&反编译(有几率碰到) SVG-XSS PDF-XSS Python生成XSS Flash-XSS 知识点&#xff1a; 1、XSS跨站-MXSS&UXSS 2、XSS跨站-SVG制作&配合上传 3、XSS跨站-…

@分布之间的关系 --------从分布之间的关系来理解随机现象、进而理解概率论

分布之间的关系 --------从分布之间的关系来理解随机现象、进而理解概率论 文章目录 关系分类 关系分类 概率分布之间的关系分两类: 变换、变形 作用于随机变量、概率分布&#xff0c;产生新分布 例如 随机变量的和、随机变量的乘积、随机变量的函数极限分布 当某些参数取极…

Docker进阶:使用Docker部署Harbor私有镜像仓库

Docker进阶&#xff1a;使用Docker部署Harbor私有镜像仓库 1、安装Docker和Docker Compose1、安装Docker、Docker Compose2、验证Docker和Docker Compose是否成功安装3、先启动运行docker服务 2、下载并配置Harbor1、下载最新版本的Harbor离线安装包2、配置Harbor的主机名和管理…

一步步指导:在Chrome中安装Vue插件vue-devtools

一步步指导&#xff1a;在Chrome中安装Vue插件vue-devtools 1. 引言1.1. 关于Vue.js1.2. 为何使用vue-devtools 2. vue-devtools简介2.1. vue-devtools的功能2.2. 兼容性和需求 3. 如何在Chrome中安装vue-devtools3.1. 访问Chrome网上应用店3.2. 搜索并找到vue-devtools3.3. 安…