BGP相邻体之间磋商的过程
一.BGP的几个概念
空闲(IDLE) 等待由管理员发起的START事件
正确,到连接状态
错误,回到空闲状态
连接状态(Connect) 等待TCP的连接是否成功,以期望获得一个对等体 正确,到开放发送OpenSent,同时发送
OpenSent报文
错误,转到行动Active状态,
如连接重新计时器溢处,停在连接状态如发生其他
事件,状态回空闲
行动Active 如果状态在连接和行动状态之间来回转变,表明故
障发生了,TCP没有没有连通。
开放发送OpenSent 等待对等体发来OPEN报文,并进行正确性检查
AS 号
正确,BGP开始发送Keepalive并复位Keepalive计
时器
如TCP断开,回到行动状态
其他错误,回到空闲状态
错误,发送notification报文并回到空闲状态
Open证实 等待一个Keepalive和notofication报文,
如果收到Keepalive报文,进入已建立状态,对等
体磋商完成
如收到notification报文报文,状态回到空闲
如有任何传送中断信息,发送一个notification报文
并回到空闲状态
已建立Established 和对等体开始UPDATE报文交换数据包
如收到UPDATE或Keepalive报文,计时器重新启动
如收到notification报文,系统回空闲状态
附件:
(1) 如果有错误,就发送notification报文,查找其错误代码和错误子码,就可以知道具体的错误信息。
(2) Keepalive报文:在对等体之间交换的周期性报文,判断对等体之间是否可以到达,其推荐的速率为保持时间的间隔的1/3。
(3) UPDATE报文:BGP路由更新消息,包括以下基本部分:
A.网络层可到达性信息(NLRI):以IP前缀路由(表示一个网络)的形式表示正被通告的网络。
B.路径属性:使BGP有能力检测路由循环,BGP路径属性的一个例子是AS路径属性,它是一个路由到达BGP路由器之前所经过的AS号码的序列。从“源”到“目标”
路径属性用于BGP过滤和路由决策过程,由三部分组成《属性类型,属性长度,属性值》,长度可变,属性类型是个2字节的字段,包括1字节属性标记,1字节属性类型代码。
0 1 7 15
属性标记 属性 类型码
属性类型分4类:公认必遵,公认自决,可选过度,可选非过度,由标记属性前两位表示。
标记字段的第一位表示是可选1/公认0,第二位是过度1/非过度的0,第三位表示可选过度属性中的信息是部分的1或是完整的0,第四位规定属性1字节1还是2字节0,标记字段的其他位永远是0.
公认的属性永远是过度的。第二位为“1”
C.不能到达的路由:BGP术语是“已经撤消的路由”
二.其他
1. BGP4只在BGP对话建立之时交换一次选路信息,在这以后,BGP对等体之间只交换网络改变。
2. 在BGP对等体都同意所有的参数而且对话建立好之前,任何选路都无效。
3. AS号码是路径属性的的一部分,由UPDATE报文带
三.BGP能力的协调
1. 一旦建立了BGP会话,对等路由器比较AS号码,并决定它们是在一个AS还是不同的AS的对等体,EBGP和IBGP之间的区别表现为每个对等体如何处理从其他对等体来的路由更新,以及不同的BGP属性在外部与内部炼路上相比的传送方式。
2. 外部BGP对等体在物理连接上是有限制的,如果是逻辑上的连接则称为EBGP多中继,需要额外的配置。而在同一AS之间的对等体路由器物理上的连接是没有限制的,只要这两个路由器存在IP的连通性。不需要额外的配置。
3. BGP的连接为什么要使用loopback地址:本质上对等体的IP地址可以是接口的任何地址,如以太网或串口地址,对等体连接的稳定性依赖所选择的稳定 性。而网卡等都有弊端,CISCO开发了一个loopback地址,是一个虚的地址,并且总能够工作,这样,BGP的对话不依赖于任何可能出现故障的端 口。但不是必须的。如EBGP是直接连接则没有必要设置。
4. BGP会话的鉴别字段是存在OPEN报文的可选参数栏,使用的MD5加密方式。
5. BGP的连续性:为了防止在AS内产生路由循环,BGP不通告内部BGP对等体通过其他IBGP得知的路由,因此,保持一个完整的闭合的IBGP网是很重要的。
6. AS内部同步:BGP必须和IGP同步,BGP的规则说明一个BGP路由器不应该把从内部BGP相邻体得知的目的地通告给外部相邻体,CISCO提供了一 个软件按扭来使BGP取消同步:一个是AS中所有路由器运行全闭合IBGP,任何边界路由器通过BGP自动将信息传递给所有其他的过度路由器。另外,当 AS不是一个过度AS时。
7. 路由更新的源:一是静态连接,注入INTERNET网的路由由BGP路由表固定保存,而动态注入的路由从BGP路由表进和出,如网络变化,可随时知道。动 态注入有两种方式,纯动态(redistribute再分配,所有的IGP路由被再分配到BGP中)和半动态(network网络,某些IGP路由被注入 BGP)
8. 距离默认值次序是:直接连接,静态,EBGP,EIGRP,IGRP,OSPF,ISIS,RIP,EGP,EIGRP,IBGP,BGP LOCALE,未知。CISCO提供了一种方法强制将EBGP置为LOCALE(200)------标记为后门链路,而优先走IGP路由。
9. BGP是一个相当简单的路由协议,在BGP对等体之间通过UPDATE报文进行路由交换,BGP路由器接受UPDATE报文,对报文运行某些策略或过滤, 然后把路由传送给其他BGP对等体。CISCO的BGP执行方法是跟踪一个BGP路由表中所有的更新,这个路由表与IP路由表是分开的,在到同一目的地存 在多个路由的情况下,BGP不把所有这些路由扩散给其对等体,,而是挑选出最好的路由,除了在对等体间传送路由之外,BGP路由器还可以产生路由更新,通 告给属于其自身AS的网络。在系统中产生的本地路由和从BGP对等体得知的最好路由要设置在IP路由表中,用于最终的IP路由判定。
9.1 从对等体收到的路由
BGP从外部或内部的对等体接受路由,这些路由的部分或全部将作成路由器的BGP表格。
9.2 输入策络机制
处理路由过滤和属性控制,过滤是基于不同的参数,如IP前缀,AS路径信息和属性信息,
9.3决策过程
BGP使用一个决策过程来决定它要用哪些路由到达某个目的地,决策过程是基于在经输入策落机制作用后放进路由器的那些路由。决策过程是针对BGP路由表中的路由执行的,以挑选出一个最佳路由。
9.4 路由器使用的路由
由决策过程使用识别的最好的路由是路由器本身使用的,并且是要通告给其他对等体的选择物,也是要放进路由表的。
9.5输出策落机制
也要区别内部和外部的对等体,如从内部对等体得到的路由不应该传道内部对等体,防止产生路由循环。
9.6 通告给对等体的路由
这是通过输出策落机制制造的一套路由,并被通告给BGP对等体,内部或外部。
转载于:https://blog.51cto.com/1841cisco/1254315
相关文章:

去除ios input部分默认样式
input[typesubmit],input[typebutton]{-webkit-appearance:none;outline:none } input{border-radius: 0;}转载于:https://www.cnblogs.com/bbqwwb/p/6993064.html

Asp.net 2.0 C#实现压缩/解压功能
Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载) (一). 实现功能对文件及目录的压缩及解压功能(二). 运行图片示例(三).代码 1. 压缩类 1/**//// <summary> 2/// 压缩类 3/// </summary>4publicclassZipClass5{ 6 public static void ZipFile(string Fi…

图像处理工具包ImagXpress的多页TIFF编辑API的使用(1)
2019独角兽企业重金招聘Python工程师标准>>> 在ImagXpress中用用于处理TIFF文件的TIFF编辑API,但是怎么使用呢,下面来具体的看看 ImagXpress中的ImageX.DeletePage 方法一次可以删除一个页面,ImageX.DeletePages 方法允许开发人员…
用Matplotlib轻松复刻分析图,看看哪个城市买房最自由
作者 | 费弗里来源 | Python大数据分析简介前不久「贝壳研究院」基于其丰富的房地产相关数据资源,发布了「2020 新一线城市居住报告」:图1而在这个报告中有几张数据可视化作品还是比较可圈可点的,作为(在模仿中精进数据可视化&…

Python 代码规范
前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 目录 Python代码规范一、简明概述 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码如无特殊情况, 文件头部必须加入#-*-coding:utf-8-*-标…

二级域名用asp.net 2.0的实现方案
本人所了解有两种方案,可能还有其的方式,希望大家多多讨论! 基本思路:1. 域名支持泛解析,即是指:把A记录 *.域名.com 解析到服务器IP,服务器IIS中做绑定,绑定时主机头为空;2. 为了…
又一例“监视员工?”百度回应:和 996 无关,目前没有任何应用
整理 | 王晓曼图源 | 视觉中国出品 | 程序人生 (ID:coder _life)1月13日晚间,针对百度公开“员工工作状态预测”专利惹争议一事,百度在官方微博火速回应称,这是一个管理上的“人岗匹配”衡量方法࿰…

僵死进程和僵尸进程
一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一…

AC日记——[HNOI2010]BOUNCE 弹飞绵羊 洛谷 P3203
[HNOI2010]BOUNCE 弹飞绵羊 思路: SBlct; 代码: #include <bits/stdc.h> using namespace std; #define maxn 200005 int n,m,f[maxn],ch[maxn][2],rev[maxn],ki[maxn],sta[maxn],top,lit,size[maxn]; inline void in(int &now) {c…

C#与RSS亲密接触
讲述动态生成RSS文件的方法。动态生成RSS文件也基本有两种方法,一种是用字符串累加的方法,另一种是使用xml文档生成的方法。字符串累加的方法也比较简单,我也就不多说了,这里着重说一下生成XmlDocument的方法,包括各种…
2020 ACM Fellows 名单出炉,13 名华人入选,7 名来自国内!
【编者按】一年一度的 ACM Fellow 名单现已新鲜出炉!向来以严格审查闻名的ACM Fellows,今年居然共选择了 95 名科学家,其中还有 13 位华人,来看看都是哪些大佬吧!整理 | 郑丽媛出品 | CSDN(ID:C…

Mybatis调用Oracle的存储过程
如何使用Mybaits调用数据库中的存储过程,下面以Oracle数据库的为例:1.在数据库中创建以下的存储过程:2.编写SQL映射文件WxclDAO.xml:<select id"selectWxcl2" parameterType"java.util.M…

JavaScript - 数据类型和变量
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同…

用Socket发邮件的代码(可以群发)
qunFa.aspx文件的代码: <%... Page language"c#" Codebehind"qunFa.aspx.cs" AutoEventWireup"false" Inherits"liuwei.hanmail.qunFa" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN&qu…

rcp(插件开发)插件B需要引用插件A中的jar包-如何处理依赖关系
如果插件B需要引用插件A中的jar 通常需要以下几步: 1.插件B要依赖插件A 2.在插件B的build path中添加插件A的jar包 3.插件A的runtime导出插件B中使用jar的package

微软Cortana全面升级神经网络语音,效果堪比真人发音
近日,微软在全球范围内对Cortana进行了神经网络语音全面升级,升级后的Cortana更加自然流畅,语音效果堪比真人发音。 以下是Cortana不同国家、不同语言升级前后语音效果对比: Cortana音频 此次升级利用了深度神经网络技术&#…

Spring《五》集合的注入方式
List、Set、Map、Properties 1、List <property name"msg"> <list> <value>gf</value> <value>gd</value> <value>HelloWorld</value> </list> </property> 2、Set <property name"msg"&g…

虚方法的调用是怎么实现的(单继承VS多继承)
我们知道通过一个指向之类的父类指针可以调用子类的虚方法,因为子类的方法会覆盖父类同样的方法,通过这个指针可以找到对象实例的地址,通过实例的地址可以找到指向对应方法表的指针,而通过这个方法的名字就可以确定这个方法在方法…

asp.net 2.0防止同一用户同时登陆
要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在.在这里使用一个cache存放已经登陆的用户名.但是还有一个问题就是要知道用户是什么时候离开系统的呢?这就要定期清除cache中的内…
Python+Dash快速web应用开发——基础概念篇
作者:费弗里来源:Python大数据分析❝本文示例代码与数据已上传至https://github.com/CNFeffery/DataScienceStudyNotes❞1 简介这是我的新系列教程「PythonDash快速web应用开发」的第一期,我们都清楚学习一个新工具需要一定的动力,…

POJ 1273 Drainage Ditches
网络流。题意非常easy。给出单向边,容量。找最大流。注意重边要加起来。g[u][v].cc; 第一次写网络流。也是第一个网络流的题。看了两天,理解了之后就唰唰唰的写出来了。 大概可能是EK吧。ORZ都不知道用的啥算法。仅仅是感觉要这样写。由于重边还WA了。改…

利用GridView显示主细表并一次编辑明细表所有数据的例子
全部代码如下: ASPX: <% Page Language"C#"ValidateRequest"false"AutoEventWireup"true"EnableViewState"false"CodeFile"Default2.aspx.cs"Inherits"Default2"%><!DOCTYPE ht…
TensorFlow搭建垃圾分类系统大师(免费领源码)
人工智能是一个多学科交叉融合的领域,其包含机器学习、计算机视觉、自然语言处理等多个子领域,其中计算机视觉是应用最广泛的领域之一。大多数人熟悉的手机和相机中的人脸识别功能,就是人工智能子领域——计算机视觉的体现。计算机视觉中的图…

for的循环遍体
以下讲解for的变体形式,对于一般的for语句常规这里不再赘述关于for变体 主要是用来实现一些特殊需求://注意不要使for成为死循环 for(int i0;i!5;1){//DOLOOP }1)假如,我们需要对循环变量i在循环外部使用,并调用循环变…

切版网上线,启用qieban.cn
2019独角兽企业重金招聘Python工程师标准>>> 近期,切版网收购并启用了qieban.cn域名,输入域名可以看到非常抢眼的黄底黑色的网站。复制国外psd2html模式,主要提供html5/css3前端外包。 可见切版网对域名的保护是非常的重视。据查询…

Microsoft .NET Pet Shop 4 架构与技术分析
1.项目概述与架构分析微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面。是研究ASP.NET 2.0的好范例啊,大家都知道,一直以来,在.NET和Java之间争论不休,到底使用哪个平台开发的企业级应用性能…
一学就会的 Python 时间转化总结(超全)
作者 | Peter来源 | Python编程时光在生活和工作中,我们每个人每天都在和时间打交道:早上什么时候起床?地铁几分钟来一趟?中午什么时候开始午休?明天是星期几?距离上次买衣服已经2个月呢?领导让…

ny20 吝啬的国度
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB难度:3描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果…

Linux常见命令(二)
随着Linux应用的扩展许多同学开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无…
谷歌编程语言年度榜NO.1:知识体系总结(2021版)
本文专注整理一些有关Python学习的知识体系。整理的Python知识体系主要包括基础知识,Python热门的应用方向,推荐书籍,FAQ以及一些常见面试题目,包含了作为一个Python全栈工程师以及数据分析工程师在开发工作和学习中需要用到或者可…