BGP报文和BGP邻居状态

BGP有5种message

1.  Open (code 1):用于建立连接,包含版本号(如BGP3/BGP4)Hold Time=90s(RFC1771规定的。是一个协商的过程,以较小的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。

时间: 2024-11-10 07:32:04

BGP报文和BGP邻居状态的相关文章

BGP - 2,BGP报文和BGP状态

1,BGP报文 Open:建邻居,交换version.AS号.holdtime.BGP identifier(即RouterID).可选参数长度.可选参数. Keepalive:保持邻居 ,即和BGP对等体的keepalive消息. Update:路由更新 ,NLRI(前缀和前缀长度).路径属性.被撤销路由.每个update只有一个路径信息. Notification:出错关闭连接 ,检测到错误条件时发送notification,然后立即关闭BGP连接. Route-refresh:路由策略变化

挑战20W年薪协议---BGP协议(BGP通告原则)

BGP通告原则之一 仅将自己最优可达的路由发布给邻居什么才是最优BGP路由 <R2>display bgp routing-table BGP Local router ID is 2.2.2.2 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total

【网络基础】ICMP报文和ping指令

ICMP报文: 作用: 为了更有效转发IP数据报和提高 IP 数据报交付成功的机会, 在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol). 概念: ICMP 不是高层协议,而是 IP 层的协议.ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送. 格式: 种类(对应ICMP报文内的类型字段): ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文. ICMP差错报告报文共有五种:

IOS开发网络篇--HTTP请求报文和HTTP响应报文

HTTP请求报文和HTTP响应报文: HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. HTTP请求报文 一个HTTP请求报文由请求行(request line).请求头部(header).空行和请求数据4个部分组成,下图给出了请求报文的一般格式. or <request-line> <headers> <blank line> [<request-body> 1.请求头

HTTP请求报文和HTTP响应报文(转载)

本文转载自HTTP请求报文和HTTP响应报文,感谢作者~ HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. HTTP请求报文 一个HTTP请求报文由请求行(request line).请求头部(header).空行和请求数据4个部分组成,下图给出了请求报文的一般格式. or <request-line> <headers> <blank line> [<request-body&

BGP - 3,BGP重要概念(EBGP,IBGP,防环/黑洞/全互连/同步)

1,防环/黑洞/同步/全互连(为出现大于号,现在通常都是要下一跳可达+关同步) a)EBGP邻居传来的路由可以通过AS_PATH防环,所以收到的不会有问题,因此直接是优化的(>),也就是直接装表.再传给EBGP邻居或IBGP邻居. b)IBGP邻居传来的路由由于是在同一个AS,所以没法通过AS_PATH防环,于是BGP规定IBGP只能传一跳. c)BGP还有2个问题. 问题一:BGP规定从EBGP学到的路由,传给IBGP邻居,不改变下一跳.这样通常对AS内部路由器来说,这个下一跳地址是不可达的.

BGP - 4,BGP的三张表

1,BGP的三张表 邻居表(adjancy table) BGP表(forwarding database):BGP默认不做负载均衡,会选出一条最优的,放入路由表 路由表(routing table) 查询命令: BGP表:show ip bgp 路由表:show ip route 邻居表:show ip bgp summary(简单邻居),show ip bgp neighbor(详细邻居) 2,BGP表中的路由通告规则 多条路径时,BGP只选最优的使用,以及传给邻居 从EBGP获得的,直接传

OSPF的邻居状态有哪些?如果停留在某一状态是什么原因。(总结)

OSPF的邻居状态有: down:没有交互. init:发送方发送HELLO包等待回应. two-way:临济关系建立,进行DR/BDR选举. exstart:预启动,建立主从关系,确定DBD包序号. exchange:预交互状态,发送本地数据库的DBD,也会发送LSA请求自己没有的更新. loading:数据库同步过程,发送LSA请求自己没有的更新. FULL:完全简历邻接关系. 如果停留在某一状态是什么原因?: 一直停留在init状态,是因为发送方发送HELLO分组,对方没有给出回应(对方并

BGP - 5,BGP属性

metric,自己决定去哪个EBGP邻居 local-pre,影响AS内部IBGP邻居的路由决策 med,影响AS外部EBGP邻居的路由决策 1,BGP属性 公认传递(well-known mandatory ):必须支持,而且必须包含,包括as-path,next-hop,origin 公认非传递(well-known discretionary):必须支持,但是可以不包含,包括local-preference 可选传递(optional transitive ):可以不支持,但是必须往下传,