一.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

BGP相邻体之间磋商的过程相关推荐

  1. BGP以及BGP对等体之间的交互原则

    BGP--边界网关协议 BGP概述 边界网关协议:是一种实现自治系统AS之间的路由可达并选择最佳路由矢量性协议.早期发布的三个版本分别是BGP-1(RFC1105).BGP-2(RFC1163)和BG ...

  2. 【算法题】求有序数列中相邻数字之间的最大差值

    桶排序的应用问题 桶排序可参考上一篇博客. 问题描述: 一个数列,求这个数列有序后,相邻数字之间最大的差值是多少. 思路 利用桶排序的过程完成求最大差值问题. 已知桶排序过程如下: 1.首先基于数据的 ...

  3. 同类型结构体之间赋值不一定有效

    同类型结构体之间赋值不一定有效 今天为这个问题debug好久... 之前看到一个关于结构体使用的技巧, 这个技巧可以避免内存零碎. 保证结构体所属内存尽量不要零散化. struct struct_na ...

  4. MSG结构体和WndProc窗口过程详解

    MSG结构体和WndProc窗口过程对于Windows编程非常重要,如果不了解它们,可以说就没有学会Windows编程. MSG结构体 MSG 结构体用来表示一条消息,各个字段的含义如下: typed ...

  5. go面向对象编程:结构体struct详解、结构体实例的创建方式、结构体之间的转换(type取别名的使用)、方法的注意事项及与函数的区别

    入门示例 package main import "fmt" //定义老师结构体,将老师中的各个属性 统一放入结构体中管理: type Teacher struct{//变量名字大 ...

  6. 【网络通信与信息安全】之深入解析两台主机之间的通信过程和原理

    一.前言 本文通过在 Docker 容器中执行命令,来深入了解两台主机之间的通信过程.阅读完本文,您将熟悉以下内容: Docker 的基本操作: 创建 socket 并发送 HTTP 请求: 路由表. ...

  7. java 数组中差值最大数对,[算法题] 求数组有序后相邻元素之间的最大差值

    1. 题目要求 给定无序数组(此数组是long类型的数组,但以下示例只列一些小一点的数),例如: [3, 1, 12, 9, 3, 7, 1, 4, 7, 8, 10] 求数组有序后相邻元素之间的最大 ...

  8. Qt工作笔记-QByteArray与自定义结构体之间的转化(可用于网络传输,以及数据回调)

    目录 理论 程序 理论 在Socket中,数据一般是char型(一般情况下,其实最好是用uchar来传输,避免莫名其妙的错误,但用char也是可以的),而在Qt里面可以使用QByteArray,这个在 ...

  9. 计算机 识别u盘 原理,电脑与USB3.0之间的识别过程,识别原理,高额金币悬赏!...

    电脑与USB3.0之间的识别过程,识别原理,高额金币悬赏! 提问者:傻瓜774411  |  浏览 次  |  提问时间:2019-01-06  |  回答数量:9 说明:包含多个问题,默认悬赏50金 ...

最新文章

  1. jffs2 告警 和 一般性错误
  2. filter vue 循环_vue v-for中使用filter筛选数据
  3. 在小程序开发路上踩过的小坑
  4. 三星电子推出X-net架构用于语音通话
  5. ASP.NET 自定义项目模板
  6. [css] 你会经常用到伪元素吗?一般都用在哪方面?
  7. android文件读取工具类,Android 下读取Assets Properties操作封装工具类
  8. RedHat未注册 无法使用yum的解决办法
  9. tomcat7 java_java开发环境配置(windows下JDK7+tomcat7)
  10. java并发包是谁编写的_0.Java并发包系列开篇
  11. 计算机cpu任务管理器,任务管理器里CPU使用率过高问题
  12. 是女人,请进来学学拍照姿势!
  13. 华为 日志服务器 配置文件,华为设置日志服务器配置
  14. skb_buff 详解(二)
  15. 沉浸式夜游是城市夜间经济发展的重中之重
  16. ocr扫描识别软件操作步骤
  17. xv格式文件提取flv
  18. 用ts代码实现吃鸡游戏刷毒小demo(cocos creator引擎)
  19. 抄书——最优化的理论与方法(4)——数学基础(秩一校正)
  20. oracle常用的约束条件类型,oracle数据库的5种约束类型

热门文章

  1. HTTP长连接服务器端推技术
  2. 在SecureCRT下使用sz下载和rz上传文件
  3. 在ASP.NET中如何用C#.NET实现基于表单的验证
  4. PE文件和COFF文件格式分析——节信息
  5. 【C++】C++11 STL算法(十):使用STL实现排序算法
  6. Linux中bashrc河bash_profile
  7. #QCon# Devops
  8. java英文字符编码_Java邮件编码非英文字符
  9. python爬虫进阶案例_Python爬虫进阶必备 | MD5 hash 案例解析讲解
  10. 解决 Could not autowire. No beans of ‘UserDao‘ type found 问题