• BGP实验 (IBGP,EBGP) neighbor


    Lab 1 BGP(IBGP,EBGP)邻居建立的过程
    实验目的:通过以下几个步骤来了解BGP是如何建立邻居的。

    Step 1、配置各台路由器的IP地址,并且使用Ping命令确认各路由器的直连口的互通性。
    R1(config)#interface F0/0
    R1(config-if)#ip address 12.1.1.1 255.255.255.0
    R1(config-if)#no shutdown

    R2(config)#interface F0/0
    R2(config-if)#ip address 12.1.1.2 255.255.255.0
    R2(config-if)#no shutdown

    Step 2、R1,R2之间运行EBGP,使其建立EBGP邻居。
    R1(config)#router bgp 1
    R1(config-router)#neighbor 12.1.1.2 remote-as 2

    R2(config)#router bgp 2
    R2(config-router)#neighbor 12.1.1.1 remote-as 1

    Step 3、在R1上debug ip tcp packet,BGP的可靠性体现在它使用了TCP的机制,通过输出信息可了解,在建立BGP邻居时需先通过TCP的三次握手。
    TCP三次握手过程

    通过Wireshark嗅探的TCP三次握手

    R1#debug ip tcp packet
    *Mar  1 00:18:27.347: tcp0: I LISTEN 12.1.1.2:11001 12.1.1.1:179 seq 4241660768
            OPTS 4 SYN  WIN 16384
    首先,R2向R1发送TCP请求,端口:179,SYN=1 

    *Mar  1 00:18:27.355: tcp0: O SYNRCVD 12.1.1.2:179 12.1.1.1:11001 seq 2594991182 OPTS 4 ACK 4241660769 SYN  WIN 16384
    其次,R2接收了R1的ACK,并向R2提出TCP请求,端口:179。
    *Mar  1 00:18:27.395: tcp0: I SYNRCVD 12.1.1.2:11001 12.1.1.1:179 seq 4241660769 ACK 2594991183  WIN 16384
    *Mar  1 00:18:27.439: tcp0: I ESTAB 12.1.1.2:11001 12.1.1.1:179 seq 4241660769
            DATA 45 ACK 2594991183 PSH  WIN 16384
    *Mar  1 00:18:27.447: tcp0: O ESTAB 12.1.1.2:179 12.1.1.1:11001 seq 2594991183
            DATA 64 ACK 4241660814 PSH  WIN 16339
    *Mar  1 00:18:27.515: tcp0: I ESTAB 12.1.1.2:11001 12.1.1.1:179 seq 4241660814
            DATA 38 ACK 2594991247 PSH  WIN 16320
    最后,R2向R1也发送了ACK和协商建立连接。

    注意:BGP并不是在每次需要发送更新时,都建立TCP连接,只是第一次才需要三次握手,BGP是通过keepalive消息来维持邻居间的TCP连接,默认每60s发送一次。

    Step 4、通过debug ip bgp的输出信息来了解BGP的建立过程。
    首先,BGP的建立过程中,需经历6个阶段是:
    (1)Idle(空闲状态)
    (2)Connection(连接状态)
    (3)Active(激活状态)
    (4)Open sent(发送Open消息的状态)
    (5)Open confirm(open消息确认状态)
    (6)Establish(建立状态)
    R1#debug ip bgp 
    *Mar  1 00:08:01.455: BGP: 12.1.1.2 went from Idle to Active
    (R1开始进行连接并将Idle状态转换成Active状态)
    *Mar  1 00:08:01.455: BGP: 12.1.1.2 open active, delay 19298ms
    (R1发起open活跃状态在此时它将激活一个连接延时,在此时内BGP要建立双向通信,否则会进入以下状态并出现以下提示:open failed:connection refused by remote host,open active delayed ***ms)
    *Mar  1 00:08:20.755: BGP: 12.1.1.2 open active, local address 12.1.1.1
    (当R2双向通信建立起来后,会出现以下的提示)
    *Mar  1 00:08:20.819: BGP: 12.1.1.2 went from Active to OpenSent
    (双向邻居建立起来后路由器会由Active状态进入opensent状态)
    *Mar  1 00:08:20.819: BGP: 12.1.1.2 sending OPEN, version 4, my as: 1
    (R1发送open消息开始协商BGP的状态,第一步发送版本号和AS号)
    *Mar  1 00:08:20.823: BGP: 12.1.1.2 send message type 1, length (incl. header) 45
    *Mar  1 00:08:20.855: BGP: 12.1.1.2 rcv message type 1, length (excl. header) 26
    (R1开始和R2进行BGP open消息格式的协商)
    *Mar  1 00:08:20.859: BGP: 12.1.1.2 rcv OPEN, version 4
    *Mar  1 00:08:20.859: BGP: 12.1.1.2 rcv OPEN w/ OPTION parameter len: 16
    *Mar  1 00:08:20.859: BGP: 12.1.1.2 rcvd OPEN w/ optional parameter type 2 (Capability) len 6
    *Mar  1 00:08:20.863: BGP: 12.1.1.2 OPEN has CAPABILITY code: 1, length 4
    *Mar  1 00:08:20.863: BGP: 12.1.1.2 OPEN has MP_EXT CAP for afi/safi: 1/1
    *Mar  1 00:08:20.867: BGP: 12.1.1.2 rcvd OPEN w/ optional parameter type 2 (Capability) len 2
    *Mar  1 00:08:20.867: BGP: 12.1.1.2 OPEN has CAPABILITY code: 128, length 0
    *Mar  1 00:08:20.871: BGP: 12.1.1.2 OPEN has ROUTE-REFRESH capability(old)
    R1# for all address-families
    *Mar  1 00:08:20.871: BGP: 12.1.1.2 rcvd OPEN w/ optional parameter type 2 (Capability) len 2
    *Mar  1 00:08:20.871: BGP: 12.1.1.2 OPEN has CAPABILITY code: 2, length 0
    *Mar  1 00:08:20.875: BGP: 12.1.1.2 OPEN has ROUTE-REFRESH capability(new) for all address-families
    (BGP邻居之间开始协商选项和能力字段)
    *Mar  1 00:08:20.875: BGP: 12.1.1.2 went from OpenSent to OpenConfirm
    (BGP邻居关系进入open confirm)
    *Mar  1 00:08:20.879: BGP: 12.1.1.2 went from OpenConfirm to Established
    (BGP邻居关系建立完成并且进入Establish状态)
    *Mar  1 00:08:20.879: %BGP-5-ADJCHANGE: neighbor 12.1.1.2 Up 
    (BGP邻接关系正式建立成功)

    结论:
    1、BGP是可靠性协议,所以在建立邻居之前需要建立TCP连接。
    2、在输出的信息中会少了connect状态,这是因为,BGP在此状态中会等待TCP进行连接(BGP使用TCP179端口)如果建立连接过程十分顺利的完成,那么BGP会将connectRetry计时器清零,并且完成初始化过程开始向邻居发送open消息同时进入opensent状态,由于此过程十分快速的建立完成所以并没显示出来。
    3、在建立邻居前,需确认AS号,版本号,hold time,等信息的正确性。否则邻居会建立失败。

  • 相关阅读:
    MT【55】近零点
    MT【54】一道二次函数问题的几何意义
    MT【53】对数平均做数列放缩
    MT【52】空间法向量理解直线条数
    MT【51】一道三角求最值问题
    MT【50】高中曲线系集大成之双切线法
    MT【49】四次函数求最值
    ps中图层混合模式、多图层叠加、不透明度、填充、图层样式详解
    GDB基本调试
    24位和8位BMP图片保存纯C代码
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12824268.html
Copyright © 2020-2023  润新知