BGP邻居协商过程

今天来说说BGP的邻居协商过程,在整理过程中,发现了这样一个问题.

BGP有5种message

1.  Open (code 1):用于建立连接,包含版本号(如BGP3/BGP4)Hold Time=180s(是一个协商的过程,以较小的Hold Time为准),Router-ID(OSPF和BGP可以手动配置),AS号(范围从1~65535,其中64512~65535 的AS编号范围留作私有);

2.   KeepAlives(code 4):周期发送用于维护连接检查路径(这个包是不可靠的),T=Hold Time/3, Hold Time=0 => No KeepAlive.,keepalive 是个19 字节周期发送的BGP 消息头标,没有数据域。

3.   Update(code 2):消息包含了三个组件:网络层可达性消息(NLRI)、路径属性和被撤销的路由。包括到达目的网络的路径和属性,更新路由信息用,一次更新只有一条路径,但可以有多条网络。Update可以删除(宣告不可达)和增加(宣告可达)路由.其内容是前缀的长度。

4.   Notification(code 3):网络中出现错误(Error),检测到后断开连接并发送通知给对方。

5.Route-Reflesh message:一个可选的message (negotiated during capability advertisement) that is sent to request dynamic BGP route updates from the Adj-RIB-Out table of a remote BGP speaker

协商过程基本上是:Idel,connect,open sent,open confirm,establish。

BGP邻居建立会话的5种状态:
1.       Idle:查找路由表,该过程BGP对它的资源进行初始化,复位一个连接重试计时器,发起一条TCP 连接,并开始倾听远程对等体所发起的连接。
2.  Connect:找到路由表后进行TCP三次握手,TCP 连接成功,则转到OpenSent状态,TCP连接失败,则转到active 状态,将尝试再次连接。
3.  Open Sent:握上手后发送Open message消息,等待其对等体发送打开消息,如果出错,则发送一条出错消息并退回空闲状态,如果无错,则开始发送Keepalive 并复位keepalive 计时器。
4.  Open Confirm:收到对方发来的Open消息,如果收到keepalive 消息,BGP 就进入established状态,邻居关系协商完成;如果系统收到一条更新或keepalive 消息,它将重新启动保持计时器;如果收到Notification消息,BGP 就退回到空闲状态。
5.  Established:会话建立,邻居关系协商过程最终状态;这时BGP将开始与它的对等体交换路由更新数据包。
PS: Active状态:当路由器发送出OPEN包给邻居等待回应,如果长时间未接收到回应则超时,超时后状态更改为Idle还是connect状态?试图发起TCP连接获得对等体,成功转到Open Sent状态,连接重试计时器超时,退回连接状态,这是由于TCP链路上出现了问题所致。??
产生问题的原因主要有:
1.         Neighbor命令后面的ip-address配置有错;
2.         没有打上Neighbor命令(两边都要)

3.         更新源错误,或者更新源不可达。

answer:

1.当BGP speaker处于active状态,BGP尝试通过初始化传输协议连接来形成peer。如果传输连接建立,则进入OpenSent状态。(同时发送OPEN信息)。如果ConnectRetry 计时器超时,BGP重启ConnectRetry计时器,并且退回到Connect 状态。只有当系统中止,或者人为地把TCP中止时才退到Idle状态。

2.问:在IBGP关系中,在sh ip b的时候看到的那个next-hop的ip 地址。下一跳地址,就是通告该路由的IBGP 的 更新源。???还是Router-id???

answer:next-hop的IP地址是更新源地址。Router-ID其实只是路由器的一个标识而已,没有太多的意义。可以是虚拟的。比如,它通常就是loopback地址。不要求一定TCP可达。但是更新源必须TCP可达。否则怎么保障路由信息更新的一定传达目的地?对吧。

还有一个解决方法关键看sh ip bgp nei里面的tcp会话那一块,又还是没有。如果没有,检查路由和acl。

文章录入:csh    责任编辑:csh

(0)

相关推荐

  • BGP邻居协商过程

    今天来说说BGP的邻居协商过程,在整理过程中,发现了这样一个问题. BGP有5种message 1.  Open (code 1):用于建立连接,包含版本号(如BGP3/BGP4)Hold Time=180s(是一个协商的过程,以较小的Hold Time为准),Router-ID(OSPF和BGP可以手动配置),AS号(范围从1-65535,其中64512-65535 的AS编号范围留作私有): 2.   KeepAlives(code 4):周期发送用于维护连接检查路径(这个包是不可靠的),T

  • BGP边界网关协议

    1. 介绍 BGP是自治系统间的路由协议.BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策(要点见RFC 1104[2]).特别地,BGP交换包含全部AS path的网络可达性信息,按照配置信息执行路由策略. 随着近年来互联网的进步和增长,它也不得不面对一些严重的规模问题,包括: -B类网络地址空间的耗尽.该问题的主要原因之一,是缺少适于 中型组织的中等大小的网络:C类网络,最多拥有254个主机地址,实在太少,而B类网络允许最多65534个地址,却又

  • 在可扩展的网络中实施BGP

    横向隔离规则规定: 通过IBGP学到的路由永远不能被传输到其它IGBP对等体. 路由反射器(Route Reflector) 路由反射器让被配置为路由反射器的路由器向其他IBGP对等体传输由IBGP所学到的路由来修改BGP的横向隔离规则. 路由反射器的优点:    配置了BGP路由反射器,就不再需要全互连的IBGP对等体.路由反射器被允许向其它IBGP对等体传输IBGP路由.当内部邻居命令语句数量过多时,I SP就会采用路由反射器技术.路由反射器通过让主要路由器给它们的路由反射器客户复制路由更新

  • 排除路由故障的常见方法

    一 静态路由故障 1. 静态路由和有类别查找 当路由选择表进程检查一条使用中间地址(路由选择表中作为下一跳引用的IP地址)的可解析的静态路由时,这个检查总是在有类别方式下完成的,无论是否使用ip classless命令如果在路由选择表中有类别方式下的中间地址不能解析,则删除该静态路由. 使用show ip route查看路由选择表. 使用debug 可以显示某个网络宕掉了. 如果使用无类别方式并有一条默认路由存在,那么具有高管理距离的备份表态路由将永远不会在主静态路由失效时装入到路由选择表中.这

  • 路由的中文笔记

    第 一 章 : 路 由 选 择 原 理 1.1路由选择基础知识 路由是将对象从一个地方转达发到另一个地方的一个中继过程 学习和维持网络拓朴结构知识的机制被认为是路由功能.渡越数据流经路由器进入接口 穿过路由器被移送到外出接口的过程,是另一项单独的功能,被认为是交换/转发功能.路由设备必须同时具有路由和交换的功能才可以作为一台有效的中继设备. 为了进行路由,路由器必须知道下面三项内容: l路由器必须确定它是否激活了对该协议组的支持: l路由器必须知道目的地网络: l路由器必须知道哪个外出接口是到达

  • HTTP 2.0 详细介绍

    在我们所处的互联网世界中,HTTP协议算得上是使用最广泛的网络协议.最近http2.0的诞生使得它再次互联网技术圈关注的焦点.任何事物的消退和新生都有其背后推动的力量.对于HTTP来说,这力量复杂来说是各种技术细节的演进,简单来说是用户体验和感知的进化.用户总是希望网络上的信息能尽可能快的抵达眼球,越快越好,正是这种对"快"对追逐催生了今天的http2.0. 1. HTTP2.0的前世 http2.0的前世是http1.0和http1.1这两兄弟.虽然之前仅仅只有两个版本,但这两个版本

  • python中pika模块问题的深入探究

    前言 工作中经常用到rabbitmq,而用的语言主要是python,所以也就经常会用到python中的pika模块,但是这个模块的使用,也给我带了很多问题,这里整理一下关于这个模块我在使用过程的改变历程已经中间碰到一些问题的解决方法 关于MQ: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来

  • Node.js一行代码实现静态文件服务器的方法步骤

    静态文件服务器实现 nodejs不仅仅可以用来写服务端接口,用来做静态文件服务器替代nginx的功能, 也是分分钟可以搞定的. 话不多说,先上代码: var server=http.createServer(function (req,res){ fs.createReadStream(Path.resolve(__dirname,"."+req.url)).pipe(res); }) 在项目根目录建一个hello.html文件测试一下 hello.html内容如下: <h1&g

  • 详解Android开启OTG功能/USB Host API功能

    目录 Android USB 模式简介设备模式 主机模式 配件模式 Android主机模式的开启 Android USB Host API功能的确认和开启 Android USB 模式简介设备模式 当计算机或其他USB主机需要连接安卓设备时,此时安卓设备是作为“USB设备”角色的,在计算机上显示为 USB 外设.现在的安卓设备已经被赋予了愈加丰富的功能,如MTP相机模式.文件传输模式(类似于U盘).RNDIS网卡模式等.当使用普通手机数据线连接安卓手机和电脑就可以使用这些功能. 主机模式 And

  • 基于nginx设置浏览器协商缓存过程详解

    这篇文章主要介绍了基于nginx设置浏览器协商缓存过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 强缓存与协商缓存的区别 强缓存:浏览器不与服务端协商直接取浏览器缓存 协商缓存:浏览器会先向服务器确认资源的有效性后才决定是从缓存中取资源还是重新获取资源 协商缓存运作原理 现在有一个这样的业务情景:后端的静态资源会不定时地发生更新,而因为浏览器默认使用强缓存,会默认从浏览器缓存中取到过时的资源. 现在我们希望浏览器每次获取资源的时候都向后

随机推荐