精华内容
下载资源
问答
  • 初识BGP外部网关协议(一)前言一、自治系统1、定义2、AS号二、BGP1、BGP定义2、BGP特点3、BGP分类4、BGP路由器三、BGP工作原理1、5种报文2、6种状态机3、9个原则总结 前言 边界网关协议(BGP)是运行于 TCP 上...


    前言

    在这里插入图片描述

    边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。

    一、自治系统

    1、定义

    自治系统AS是指同一个技术管理机构管理、使用统一选路策略的一些路由的集合。

    2、AS号

    • BGP网络中的每一个AS都被分配一个唯一的AS号,用于区分不同的AS。
    • AS号分为2字节AS号和4字节AS号,其中2字节的AS号的范围是1 ~ 65535,其中1 ~ 64511是互联网上注册公有AS号,类似公网IP地址;64512 ~ 65535是私有AS号,类似私网地址。
    • IANA(互联网数字分配机构)负责AS号的分发。
    AS号
    中国电信163 AS号 4134
    中国电信CN2 AS号 4809
    中国联通 9929

    二、BGP

    1、BGP定义

    BGP是一种实现自治系统AS之间的路由可达,并选择最佳路由的距离矢量路由协议。

    2、BGP特点

    • BGP能承载大批量的路由信息,能够支撑大规模网络。
    • BGP使用过TCP作为其传输层协议(端口号179),提高可靠性。
    • BGP是外部路由协议,用来在AS之间传递数据,对稳定性要求非常高,因此TCP协议的可靠性保证了BGP的稳定性。
    • BGP的对等体之间必须逻辑上连通,并进行TCP连接,目的端口179,本地端口任意。
    • BGP对等体和IGP对等体不同,BGP对等体(peer)是指使用TCP建立连接的两端,而非与IGP同概念的直连邻居,只需要TCP能建立连接,不一定必须是直连。
    • BGP本身只是负责控制路由,数据转发依然依靠静态或IGP路由。
    • BGP支持无类别域间路由CIDR。
    • 路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量路由信息。
    • BGP是一种增强的距离矢量路由协议,从设计上避免了环路的发生。
    • AS之间:BGP通过携带AS Path信息标记途径的AS,带有本地AS号的路由将被丢弃,从而避免域间产生环路。
    • AS内部:BGP在AS内学习到的路由不会通告给AS内的BGP邻居,避免AS内产生环路。
    • BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
    • BGP提供了防止路由震荡的机制(路由衰减),有效提高了Internet网络的稳定性。
    • BGP易于扩展,能够适应网络新的发展。主要通过TLV进行扩展。

    3、BGP分类

    按运行方式分为EBGP和IBGP。

    • EBGP
      运行与不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。
    • IBGP
      运行于同一AS内部的BGP称为IBGP。为了防止AS内部产生环路,BGP设备不将从IBGP对等体学习到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。

    4、BGP的路由器

    • BGP的Router ID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。对等体之间建立BGP会话时,每个BGP设备都必须有唯一的Router ID,否则对等体之间不能建立BGP连接。
    • BGP的Router ID在BGP网络中必须是唯一的,可以采用手工配置,也可以让设备自动选取。缺省情况下,BGP选择设备上的Loopback接口的IPv4地址作为BGP的Router ID。如果设备上没有配置Loopback接口,系统会选择接口中最大的IPv4地址作为BGP的Router ID。一旦选出Router ID,除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的Router ID。

    三、BGP工作原理

    BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和9个原则。

    1、5种报文

    • Open报文:是TCP建立连接发送的第一个报文
      协商BGP对等体的各种参数,包括版本、AS号等信息,建立BGP对等体连接。
    • Update报文:对等体之间交换路由信息。
      连接建立后,有路由需要发送或路由变化时,发送Update报文通告对端可达或撤销路由信息及路径。
    • Notification报文:用于中断BGP连接。
      BGP发现错误时,发送报文通告BGP对端,随后与之相关的邻居将被关闭。
    • Keepalive报文:用于保持BGP连接。
      定时发送keepalive报文以保持BGP对等体关系的有效化,响应正确的Open报文。
    • Route-refresh报文:用于在改变路由策略后软复位BGP路由表请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。

    2、6种状态机

    在这里插入图片描述

    • Idle状态是BGP初始状态。
      在Idle状态下,BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。
    • 在Connect状态下,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。
      • 如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。
      • 如果TCP连接失败,那么BGP转至Active状态。
      • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
    • 在Active状态下,BGP总是在试图建立TCP连接。
      • 如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
      • 如果TCP连接失败,那么BGP停留在Active状态。
      • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。
    • 在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
      • 如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。
      • 如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。
    • 在OpenConfirm状态下,BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。
    • 在Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。
      • 如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。
      • 如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
      • Route-refresh报文不会改变BGP状态。
      • 如果收到Notification报文,那么BGP转至Idle状态。
      • 如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。

    3、9个原则

    • 从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。
    • 从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体。
    • 当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体。
    • 路由更新时,BGP设备只发送更新的BGP路由。
    • 所有对等体发送的路由,BGP设备都会接收。
    • 所有EBGP对等体在传递过程中下一跳改变。
    • 所有IBGP对等体在传递过程中下一跳不变。
    • 默认EBGP传递时TTL为1
    • 默认IBGP传递时TTL为225

    四、BGP简单配置命令

    1、启用BGP,后面跟AS系统号

    2、宣告Router-id,建立邻居关系用

    3、宣告和谁建立邻居关系,

    4、通告BGP路由,(network、import)

    [R1]bgp 100   #创建BGP编号为100
    
    [R1]router-id 1.1.1.1   #配置BGP的router-id
    
    [R1-bgp] peer 2.2.2.2 as-number 100 #指定对等体的回环口及所属AS编号
    
    [R1-bgp] peer 2.2.2.2 connect-interface LoopBack 0	#更新发送BGP报文时的接口为环回口
    
    [R1-bgp] peer 2.2.2.2 next-hop-local  #修改该路由的下一跳指向自己,用于IBGP
    
    [R1-bgp] peer 3.3.3.3 ebgp-max-hop 2  #修改最大跳数值(≥2),用于EBGP
    
    [R1] display bgp peer   #查看BGP邻居
    
    [R1] display ip routing-table   #查看BGP路由表
    
    [R1-bgp] import-route ospf 110/direct/rip 1/isis 1 #引入ospf /直连/rip/isis中的路由
    

    总结

    在这里插入图片描述

    展开全文
  • BGP(外部网关路由协议)理论一、IGP与BGP的工作场景二、AS的概念三、BGP概述四、BGP路由协议的特点:五、 BGP分类:六、IBGP水平分割规则七、BGP的路由器号(Router-ID) :八、BGP工作原理(一)、 BGP的报文:(5种包...

    一、IGP与BGP的工作场景

    在这里插入图片描述

    二、AS的概念

    1、自治系统( Autonomous System , AS ) ,指的是在同一个组织管理下、使用相同策略的设备的集合。
    2、不同AS通过AS号区分, AS号取值范围1-65535 ,其中64512-65535是私有AS号。IANA负责AS号的分发。
    3、中国电信163 AS号: 4134.
    4、中国电信CN2 AS号: 4809
    5、中国网通AS号: 9929.

    三、BGP概述

    **1、边界网关协议( Border Gateway Protocol , BGP )是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。**早期发布的三个版本分别是BGP-1 ( RFC1105 )、BGP-2 (RFC1163 )和BGP-3 (RFC1267) , 1994年开始使用BGP-4(RFC1771) , 2006年之后单播IPv4网络使用的版本是BGP-4 (RFC4271) ,其他网络使用的版本是MP-BGP ( RFC4760 )。

    四、BGP路由协议的特点:

    1、BGP使用TCP作为其传输层协议(监听端口号为179) ,提高了协议的可靠性。
    2、BGP是外部路由协议,用来在AS之间传递数据,对稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的稳定性。
    3、BGP的对等体之间必须逻辑上连通,并进行TCP连接。目的端口号为179,本地端口号任意。
    4、BGP对等体和IGP对等体不同, BGP对等体(Peer)是指使用TCP建立连接的两端,而非与IGP同概念的直连邻居,只要TCP能够建立连接并不一定需要直连。
    5、BGP本身只负责控制路由,数据转发依然靠静态或IGP路由。
    6、BGP支持无类别域间路由CIDR.
    7、路由更新时, BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
    8、 BGP是一种增强的距离矢量路由协议,从设计上避免了环路的发生。
    9、AS之间: BGP通过携带AS Path信息标记途经的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
    10、AS内部: BGP在AS内学到的路由不会再通告给AS内的BGP邻居,避免了AS内产生环路。
    11、BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
    12、BGP提供了防止路由振荡的机制(路由衰减) ,有效提高了Internet网络的稳定性。
    13、BGP易于扩展,能够适应网络新的发展(ipv4单/组播、vpv4单/组播)。主要是通过TLV进行扩展。

    五、 BGP分类:

    BGP按照运行方式分为EBGP (External/Exterior BGP)和IBGP (Internal/Interior BGP)。

    1、EBGP:运行于不同AS之间的BGP称为EBGP,为了防止AS间产生环路, 当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。
    2、IBGP:运行于同一AS内部的BGP称为IBGP,为了防止AS内产生环路, BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题, BGP设计了路由反射器和BGP联盟。

    在这里插入图片描述

    六、IBGP水平分割规则

    C从E学习到的 IBGP路由,由于水平分割规则的限制,不能够传递给B路由器,这将导致B无法学习到F通告的BGP路由。但是为了解决这个问题,E可以通过BGP连接,与B直接形成逻辑连接,达到全网连通的目的。
    在这里插入图片描述

    七、BGP的路由器号(Router-ID) :

    1、BGP的Router-ID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。对等体之间建立BGE会话时,每个BGP设备都必须有唯一的Router ID,否则对等体之间不能建立BGP连接。

    2、BGP的**Router-ID在BGP网络中必须是唯一的,**可以采用手工配置,也可以让设备自动选取。缺省情况下, BGP选择设备上的Loopback接口的IPv4地址作为BGP的Router-ID,如果设备上没有配置Loopback接口,系统会选择接口中最大的IPv4地址作为BGP的Router-ID.一旦选出Router-ID,除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的Router-ID.

    八、BGP工作原理

    BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和9个原则。

    (一)、 BGP的报文:(5种包)

    BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:

    1、Open报文:

    Open是TCP连接建立后发送的第一个报文。
    用于协商BGP对等体的各项参数,主要包括BGP版本(V4) 、AS号等信息,建立BGP对等体连接。

    2、Update报文:

    用于在对等体之间交换路由信息。
    连接建立后,有路由需要发送或者路由变化时,发送Update通告对端可达或者撤销路由信息及路径属性。

    3、Notification报文:

    用于中断BGP连接。
    当BGP在运行中发现错误时,发送Notification报文通告BGP对端,随后与之相关的邻居关系将被关闭。

    4、Keepalive报文:

    用于保持BGP连接。(保活作用)
    定时发送Keepalive报文以保持BGP对等体关系的有效性。响应收到的正确的Open报文

    5、Route-refresh报文:

    用于在改变路由策略后软复位(相当于刷新重载)
    BGP路由表请求对等体重新发送路由信息,只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。

    (二)、BGP状态机:(6种状态)

    BGP对等体的交互过程中存在6种状态机:空闲(Idle) 、连接(Connect) 、活跃(Active) 、Open报文已发送(OpenSent) 、Open报文已确认(OpenConfirm)和连接已建立(Established) 。在BGP对等体建立的过程中,通常可见的3个状态是: Idle,Active和Established.

    1、 Idle状态是BGP初始状态。在Idle状态下, BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后, BGP才开始尝试和其它BGP对等体进行TCP连接,并转至connect状态。
    2、在Connect状态下, BGP启动连接重传定时器(Connect Retry) ,等待TCP完成连接。
    –>如果TCP连接成功,那么BGP向对等体发送open报文,并转至opensent状态。
    –>如果TCP连接失败,那么BGP转至Active状态,反复尝试连接。
    –>如果连接重传定时器超时, BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
    3、在Active状态下, BGP总是在试图建立TCP连接。
    如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
    如果TCP连接失败,那么BGP停留在Active状态。
    如果连接重传定时器超时, BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。
    4、在OpenSent状态下, BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
    –>如果收到的open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态
    –>如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态
    5、在OpenConfirm状态下, BGP等待Keepalive或Notification报文。
    –>如果收到keepalive报文,则转至Established状态,
    –>如果收到Notification报文,则转至Idle状态。
    6、在Established状态下, BGP可以和对等体交换Update、 Keepalive、Route-refresh报文和Notification报文。
    –>如果收到正确的Update或keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。
    –>如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
    –>如果收到Notification报文,那么BGP转至Idle状态。
    –>如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。
    –>Route-refresh报文不会改变BGP状态。
    在这里插入图片描述

    (三)、BGP对等体之间的交互原则:(9个原则)

    BGP设备将最优路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交互原则:
    1、从IBGP对等体获得的BGP路由, BGP设备只发布给它的EBGP对等体
    2、从EBGP对等体获得的BGP路由, BGP设备发布给它所有EBGP和IBGP对等体
    3、当存在多条到达同一目的地址的有效路由时, BGP设备只将最优路由发布给对等体
    4、路由更新时, BGP设备只发送更新的BGP路由
    5、所有对等体发送的路由, BGP设备都会接收
    6、所有EBGP对等体在传递过程中下一跳改变
    7、所有IBGP对等体在传递过程中下一跳不变
    8、默认EBGP传递时TTL值为1
    9、默认IBGP传递时TTL值为255

    (四)、建立对等体注意点

    1、直连建立对等体需要注意的点:
    建立IBGP对等体时要让下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体。
    2、用回环网口建立邻居需要注意的点:
    需要修改更新源,默认更新源是物理口,需要修改成回环网口。建立IBGP对等体时要保障下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体。
    建立EBGP对等体时因为EBGP只能传一跳,因而,在建立EBGP对等体时,需要修改EBGP多跳的跳数为2以上 (自己回环到对端回环是两跳,默认一跳)。
    3、关于为什么要用回环网口建立邻居:
    原因是回环网口稳定,只要路由器启动着,回环网回口就不DOWN,而物理链路可能会受线路或者接口等因素的影响导致对等体关系有问题,因而般BGP建立对等体都是回环网口来建。

    九、配置命令

    --------------在OSPF的AS中配置-------------

    1、配置各路由器的IP地址
    2、配置OSPF

    -----------------R8的配置和R7的相似略-----------

    [R7]ospf 1
    [R7-ospf-1]area 0
    [R7-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
    [R7-ospf-1-area-0.0.0.0]network 7.7.7.7 0.0.0.0

    ---------------------配置BGP------------

    R1 (ibgp)与R2、R3, R4,R5, R6建立邻居关系(R2、R4、R5配置与其相似略)
    [R1]bgp 100 ###创建bgp编号为100 (也就是AS100)
    [R1-bgp]router-id 1.1.1.1 ###配置BGP的Router ID
    [R1-bgpl peer 2.2.2.2 as-number 100 ###指定对等体的回环网口IP地址及其所属的AS编号
    [R1-bgp]peer 2.2.2.2 connect-interface LoopBack0 ##更新发送bgp报文的接口为Loopback0接口
    [R1-bgp] peer 3.3.3.3 as-number 100
    [R1-bgp]peer 3.3.3.3 connect-interface LoopBack0
    [R1-bgp]peer 4.4.4.4 as-number 100
    [R1-bgp]peer 4.4.4.4 connect-interface LoopBack0
    [R1-bgp]peer 5.5.5.5 as-number 100
    [R1-bgp]peer 5.5.5.5 connect-interface LoopBack0
    [R1-bgp]peer 6.6.6.6 as-number 100
    [R1-bgp]peer 6.6.6.6 connect-interface LoopBack0

    [R3-bgp]peer 2.2.2.2 next-hop-local
    --------ASBR从ebgp邻居学习到的路由传递给ibgp邻居时,修改该命令
    [R3-bgp]peer 1.1.1.1 next-hop-local
    [R3-bgp]peer 6.6.6.6 next-hop-local

    [R3-bgp]peer 7.7.7.7 as-number 200 ##此为ebgp邻居的AS编号
    [R3-bgp]peer 7.7.7.7 connect-interface LoopBack0
    [R3-bgp]peer 7.7.7.7 ebgp-max-hop 2
    --------两个AS之间用回环网口建的邻居要将它们的邻居的最大跳数改为2,默认的是1 (因为不是直连而是用Loopbacko接口,需要经过2个路由,而默认EBGP传递时TTL值为1)

    [R3-bgp]network 1.1.1.1 255.255.255.255 ###宣告指定的IGP、静态、默认路由进BGP进程
    [R3-bgp]network 2.2.2.2 255.255.255.255
    [R3]ip route-static 7.7.7.7 255.255.255.255 12.1.1.2
    ------两个AS之间的ebgp对等体需要建立tcp连接,这里用静态做底层的寻址,也可以使用IGP路由搭建底层寻址(比如RIP)

    [R3-bgp]network 7.7.7.7 255.255.255.255 ###ebgp用于配置静态路由或IGP路由的网段或IP需要在两端ebgp都宣告

    ---------R7与R8,R3 (R3与R7互为EBGP)建立邻居关系(R8配置与其相似略)------------

    [R7]bgp 200 ###创建AS200
    [R7-bgp] router-id 7.7.7.7
    [R7-bgp]peer 3.3.3.3 as-number 100 ##此为ebgp邻居的AS编号
    [R7-bgp]peer 3.3.3.3 connect-interface LoopBack0
    [R7-bgp] peer 3.3.3.3 ebgp-max-hop 2 ###ebgp报文允许的最大跳数修改为2 (因为不是直连而是用Loopback0接口)

    [R7-bgp]peer 8.8.8.8 as-number 200
    [R7-bgp]peer 8.8.8.8 connect-interface LoopBack0
    [R7-bgp] peer 8.8.8.8 next-hop-local ###ASBR从ebgp邻居学习到的路由传递给ibgp邻居时,路由的下一跳修改为自己

    [R7-bgp] network 8.8.8.8 255.255.255.255 ##宣告指定的从本区域ibgp邻居学到的路由给ebgp邻居

    [R7] ip route-static 3.3.3.3 255.255.255.255 12.1.1.1 ###两个AS之间运行静态路由

    [R7-bgp] network 7.7.7.7 255.255.255.255 ###ebgp用于配置静态路由或IGP路由的回环网口IP需要在两端ebgp都宣告

    --------------------查看命令------------

    1、display bgp peer ###查看bgp的对等信息Established为成功建立
    2、display bgp routing-table ##查看bgp的路由表信息

    展开全文
  • 边界网关协议(BGP)是运行于 TCP 上一种自治系统路由协议。 BGP 是唯一一个用来处理像因特网大小网络协议,也是唯一能够妥善处理好不相关路由域间多路连接协议。 BGP 构建在 EGP 经验之上。 BGP 系统...

    一、BGP定义

    边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。
    AS是指由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
    BGP网络中的每个As都被分配一个唯一的AS号,用于区分不同的AS。

    1.1、概述

    边界网关协议(Border Gateway Protocol, BGP)是一种实现自治系统AS之间的路由可达,
    并选择最佳路由的矢量性协议。早期发布的三个版本分别是BGP-1 (RFC1105 )、
    BGP-2 ( RFC1163 )和BGP-3 ( RFC1267 ),1994年开始使用BGP-4(RFC1771),
    2006年之后单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络使用的版本是MP-BGP( RFC4760 )。

    1.2、特点

    1. BGP能够承载大批量的路由信息,能够支撑大规模网络。
    2. BGP使用TCP作为其传输层协议(监听端口号为179),提高了协议的可靠性
    3. BGP是外部路由协议,用来在As之间传递数据,对稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的稳定性。
    4. BGP的对等体之间必须逻辑上连通,并进行TCP连接。目的端口号为179,本地端口号任意。
    5. BGP对等体和IGP对等体不同,BGP对等体(Peer)是指使用TCP建立连接的两端,而非与IGP同概念的直连邻居,只要TcP能够建立连接并不一定需要直连。
    6. !!BGP本身只负责控制路由,数据转发依然靠静态或IGP路由。
    7. BGP支持无类别域间路由CIDR。
    8. 路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet.上传播大量的路由信息。
    9. BGP是一种增强的距离矢量路由协议,从设计上避免了环路的发生。
    10. AS之间:BGP通过携带As_Path信息标记途经的AS,带有本地As号的路由将被丢弃,从而避免了域间产生环路。
    11. AS内部:BGP在As内学到的路由不会再通告给AS内的BGP邻居,避免了As内产生环路。
    12. BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
    13. BGP提供了防止路由振荡的机制(路由衰减),有效提高了Internet网络的稳定性。
    14. BGP易于扩展,能够适应网络新的发展(ipv4单/组播、vpv4单/组播)。主要是通过TLV进行扩展。

    1.3、分类

    BGP按照运行方式分为EBGP (External/Exterior BGP)和IBGP (Internal/Interior BGP)。

    EBGP:运行于不同As之间的BGP称为EBGP。为了防止.as间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地As号的路由丢弃。

    IBGP:运行于同一AS内部的BGP称为IBGP。为了防止as内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。

    1.4、工作原理

    BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和9个原则。

    1、五种报文

    BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:
    Open报文:用于协商BGP对等体的各项参数,
    主要包括BGP版本(V4)、AS号等信息,建立BGP对等体连接。Open是TCP连接建立后发送的第一个报文

    Update报文:用于在对等体之间交换路由信息。
    连接建立后,有路由需要发送或者路由变化时,发送Update通告对端可达或者撤销路由信息及路径属性。

    ·Notification报文:用于中断BGP连接。
    当BGP在运行中发现错误时,发送Notification报文通告BGP对端,随后与之相关的邻居关系将被关闭。

    Keepalive报文:用于保持BGP连接。(保活)
    定时发送Keepalive报文以保持BGP对等体关系的有效性。响应收到的正确的Open报文

    Route-refresh报文:用于在改变路由策略后软复位BcP路由表请求对等体重新发送路由信息。
    只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。

    2、六种状态机

    BGP对等体的交互过程中存在6种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、Open报文已发送(OpenSent)、Open报文已确认(OpenConfirm)和连接已建立(Established)。在BGP对等体建立的过程中,通常可见的3个状态是: Idle、Active和Established。

    1. Idle状态是BGP初始状态。在Idle状态下,BGP拒绝邻居发送的连接请求。
      只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。
    2. 在Connect状态下,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。
      如果TCP连接成功,那么BGP向对等体发送open报文,并转至OpenSent状态。
      如果TCP连接失败,那么BGP转至Active状态,反复尝试连接。
      如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
    3. 在Active状态下,BGP总是在试图建立TCP连接。
      如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
      如果TCP连接失败,那么BGP停留在Active状态。
      如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。
    4. 在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
      如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。
      如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。
    5. 在OpenConfirm状态下,BGP等待Keepalive或Notification报文。
      如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。
    6. 在Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。
      如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。
      如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
      如果收到Notification报文,那么BGP转至Idle状态。
      如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。
      Route-refresh报文不会改变BGP状态。

    3、九个原则

    BGP设备将最优路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交互原则:

    1. 从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体
    2. 从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体
    3. 当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体
    4. 路由更新时,BGP设备只发送更新的BGP路由
    5. 所有对等体发送的路由,BGP设备都会接收
    6. 所有EBGP对等体在传递过程中下一跳改变
    7. 所有IBGP对等体在传递过程中下一跳不变
    8. 默认EBGP传递时TTL值为1
    9. 默认工BGP传递时TTL值为255

    1.5、如何建立对等体

    直连建立对等体需要注意的点
    建立IBGP对等体时要让下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体
    用回环口建立邻居需要注意的点
    需要修改更新源,默认更新源是物理口,需要修改成回环口。建立IBGP对等体时要保障下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体
    建立EBGP对等体时因为EBGP只能传一跳,因而,在建立EBGP对等体时,需要修改EBGP多跳的跳数为2以上(自己回环到对端回环是两跳,默认一跳)
    关于为什么要用回环口建邻居
    原因是回环口稳定,只要路由器启动着,回环口就不Down,而物理链路可能会受线路或者接口等因素的影响导致对等体关系有问题,因而一般BGP建立对等体都是回环口来建

    1.6、相关配置

    [ ]bgp XXX
    //进入bgp
    [ -bgp]router-id
    //指定router 可设可不设
    [ -bgp]peer (另一个AS的EBGP的回环口IP地址) as-number (ebgp邻居所属的AS编号)
    [ -bgp]peer (另一个AS的EBGP的回环口IP地址) connect-interface LoopBack0(配置的回环口)
    [ -bgp]peer (另一个AS的EBGP的回环口IP地址) ebgp-max-hop (最大跳数)
    //从一个路由器跳到下一个路由器的回环口 最少需要两跳 所以设置最大跳数≥2
    [ -bgp]peer (同一个AS中其他对等体的回环口IP地址)next-hop-local
    //ASBR从ebgp邻居学习到的路由传递给ibgp邻居时,路由下一跳改为自己
    [ -bgp]network (自己的回环接口IP地址)
    ebpg用于配置静态路由或IGP路由的回环网口IP需要在两端ebgp都宣告
    [ -bgp]network (学习到的邻居路由)
    //宣告指定的从本区域ibgp邻居学到的路由给ebgp邻居(非必要)
    [ ]ip route-static x.x.x.x x.x.x.x x.x.x.x
    //配置指向EBGP邻居的静态路由

    二、实验

    在这里插入图片描述
    首先添加接口IP以及回环地址以及AS200的ospf路由
    然后配置默认路由
    R1为指向R2和R3的两条默认路由
    R2、R3 同样配置一条指向R1的默认路由
    R4指向R5
    R5指向R4
    ps :要先做完所有路由器常规配置 再做bgp 不然在bgp里宣告不了邻居的回环地址

    以上配置省略

    BGP配置如下:
    R1:
    [R1]bgp 100
    [R1-bgp]peer 2.2.2.2 as-number 200
    [R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0
    [R1-bgp]peer 2.2.2.2 ebgp-max-hop 2
    [R1-bgp]peer 3.3.3.3 as-number 200
    [R1-bgp]peer 3.3.3.3 connect-interface LoopBack 0
    [R1-bgp]peer 3.3.3.3 ebgp-max-hop 2
    [R1-bgp]net 1.1.1.1 255.255.255.255

    R2:
    [R2]bgp 200
    [R2-bgp]peer 1.1.1.1 as-number 100
    [R2-bgp]peer 1.1.1.1 connect-interface LoopBack 0
    [R2-bgp]peer 1.1.1.1 ebgp-max-hop 2
    [R2-bgp]peer 3.3.3.3 as-number 200
    [R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
    [R2-bgp]peer 4.4.4.4 as-number 200
    [R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
    [R2-bgp]peer 4.4.4.4 next-hop-local
    [R2-bgp]net 1.1.1.1 255.255.255.255
    [R2-bgp]net 2.2.2.2 255.255.255.255
    [R2-bgp]net 3.3.3.3 255.255.255.255
    [R2-bgp]net 4.4.4.4 255.255.255.255

    R3
    [R3]bgp 200
    [R3-bgp]peer 1.1.1.1 as-number 100
    [R3-bgp]peer 1.1.1.1 connect-interface LoopBack 0
    [R3-bgp]peer 1.1.1.1 ebgp-max-hop 2
    [R3-bgp]peer 2.2.2.2 as-number 200
    [R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
    [R3-bgp]peer 4.4.4.4 as-number 200
    [R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
    [R3-bgp]peer 4.4.4.4 next-hop-local
    [R3-bgp]net 1.1.1.1 255.255.255.255
    [R3-bgp]net 2.2.2.2 255.255.255.255
    [R3-bgp]net 3.3.3.3 255.255.255.255
    [R3-bgp]net 4.4.4.4 255.255.255.255

    R4
    [R4]bgp 200
    [R4-bgp]peer 2.2.2.2 as-number 200
    [R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
    [R4-bgp]peer 2.2.2.2 next-hop-local
    [R4-bgp]peer 3.3.3.3 as-number 200
    [R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
    [R4-bgp]peer 3.3.3.3 next-hop-local
    [R4-bgp]peer 5.5.5.5 as-number 300
    [R4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
    [R4-bgp]peer 5.5.5.5 ebgp-max-hop 2
    [R4-bgp]net 2.2.2.2 255.255.255.255
    [R4-bgp]net 3.3.3.3 255.255.255.255
    [R4-bgp]net 4.4.4.4 255.255.255.255
    [R4-bgp]net 5.5.5.5 255.255.255.255

    R5
    [R5]bgp 300
    [R5-bgp]peer 4.4.4.4 as-number 200
    [R5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
    [R5-bgp]peer 4.4.4.4 ebgp-max-hop 2
    [R5-bgp]net 4.4.4.4 255.255.255.255
    [R5-bgp]net 5.5.5.5 255.255.255.255

    测试
    在这里插入图片描述
    R1能够通信R5
    并且数据流向是 R1>>R2>>R4>>R5

    三、BGP选路

    3.1、路径属性

    (1)定义
    路径属性:path attributes,作用类似于metric(度量标准),用于度量BGP的路由优劣(用来进行选路)

    (2)分类

    公认强制属性:所有的BGP的update消息都要包含该属性
    AS路径(AS-path)
    下一跳(next-hop)
    起源(Origin)

    公认自由属性:该属性是可选可不选的,但是所有的BGP进程都能识别
    本地优先级(local preferent)

    可选传递属性:即使BGP进程不能识别该属性,也会继续传递下去
    团体属性(community)

    可选非传递属性:如果BGP进程不能识别该属性,可以忽略这条update,并且不传递下去
    MED

    3.2、BGP选路原则

    1. 如果此路由的下一跳不可达,忽略此路由
    2. Preferred-Value值数值越高越优先,华为私有属性,仅本地有意义
    3. Local-Preference值最高的路由优先
    4. 聚合路由优先于非聚合路由
    5. 本地手动聚合路由的优先级高于本地自动聚合的路由
    6. 本地通过Network命令引入的路由的优先级高于本地通过Import-route命令引入的路由
    7. As-path的长度最短的路径优先
    8. 比较Origin属性,IGP优于EGP,EGP优于Incomplete
    9. 选择MED较小的路由
    10. EBGP路由优于IBGP路由
    11. BGP优先选择到BGP下一跳的IGP度量值最低的路径

    当以上全部相同,则为等价路由,可以负载分担(注意:AS_Path必须一致,当负载分担时,以下3条原则无效)

    1. 比较Cluster_list长度,短者优先
    2. 比较Originator_ID(如果没有Originator_ID,则用Router_ID比较),选择数值较小的路径。
    3. 比较对等体的IP地址,选择IP地址数值最小的路径。

    上述标黄字体为三种常用配置方法:
    Local-Preference值最高的路由优先

    1. 为公认自决属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径
    2. Local_Preference属性只能在IBGP对等体间传递(除非做了策略否则Local_Preference值在IBGP对等体间传递过程中不会丢失),而不能在EBGP对等体间传递,如果在EBGP对等体间收到的路由的路径属性中携带了Local_Preference,则会触发Notifacation报文,造成会话中断;
    3. 但是可以在AS边界路由器上使用Import方向的策略来修改Local_Preference属性值。也就是在收到路由之后,在本地为路由赋予Local_Preference。

    配置
    [R3]route-policy lop permit node 10
    // 创建名为lop的路由策略(名称自定义 )
    [R3-route-policy]apply local-prefernce 666
    // 设置本地优先级为666 (默认为200)
    [R3-route-policy]quit
    [R3]bgp 200
    [R3-bgp]peer 4.4.4.4 route-policy lop export
    // 在R3上对R1执行出站export方向的路由策略,使得其在收到对方通告的路由后,在路由的local-prefernce的属性值改为666,使得R4优选R3通告的路由;
    如果此路由策略在R4配置则方向为入站import
    <R3>reset bgp all
    // 重启BGP
    <R3>refresh bgp all export
    // 重启 BGP所有出接口

    As-path的长度最短的路径优先
    使用AS-PATH属性控制选路(越少越优)

    为公认必遵属性,是前往目标网络的路由经过的AS号列表

    1. 作用:确保路由在EBGP对等体之间传递无环;另外也作为路由优选的衡量标准之一;
      路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号;路由被通告给IBGP对等体时,AS-path不会发生改变

    2. 使用route-policy修改BGP路由的AS_Path:
      apply as-path xxx additive 在已有AS_Path基础上追加xxx
      apply as-path xxx overwrite 将已有AS_Path值替换(覆盖)成xxx
      apply as-path none overwrite 清空路由的AS_Path属性

    3. 使用route-policy修改BGP路由的AS_Path时,可以在EBGP对等体之间改变EBGP路由的AS_Path属性,从而影响BGP路由的优选。在华为路由器上,在IBGP对等体之间,也可以使用route-policy修改BGP路由的AS_Path。无论何种场景,改变BGP路由的AS_Path都必须十分谨慎,建议跟上一个经过的AS号保持一直。

    配置
    [R2]route-policy as permit node 10
    [R2-route-policy]apply as-path 123 123 123 additive
    在已有AS_Path基础上追加
    [R2]bgp 200
    [R2-bgp]peer 1.1.1.1 route-policy as export
    <R2>refresh bgp all export

    选择MED较小的路由

    1. 为可选非传递属性,是一种度量值
    2. 一般情况下,BGP设备只比较来自同一AS(不同对等体)的路由的MED属性值。可以通过配置命令来允许BGP比较来自不同AS的路由的MED属性值。执行compare-different-as-med命令后,系统将比较来自不同AS中的对等体的路由的MED值。

    配置
    [R2]route-policy med permit node 10
    [R2-route-policy]apply cost + 666
    [R2-route-policy]quit
    [R2]bgp 200
    [R2-bgp]peer 1.1.1.1 route-policy med export
    <R2>refresh bgp all export

    display bgp routing-table
    查BGP的路由表
    display bgp routing-table 目标网段
    查看详细信息

    展开全文
  • 文章目录一、IGP与BGP的工作场景(1)自治系统AS二、BGP路由协议的特点:三、BGP分类四、IBGP水平分割规则五、BGP的路由器号(route-id)六、BGP工作原理(一)、 BGP的报文:(5种包)(二)、BGP状态机:(6种状态)...

    一、IGP与BGP的工作场景

    在这里插入图片描述

    (1)自治系统AS

    • AS,指的是在同一个组织管理下,使用相同选路策略的设备的集合。
    • 不同AS通过AS号区分,AS号取值范围1~65535,其中64512-65535是私有AS号。IANA负责AS号的分发。
    • 中国电信163AS号:4134
    • 中国电信CN2AS号:4809
    • 中国网通AS号:9929

    二、BGP路由协议的特点:

    1、BGP使用TCP作为其传输层协议(监听端口号为179) ,提高了协议的可靠性。
    2、BGP是外部路由协议,用来在AS之间传递数据,对稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的稳定性。
    3、BGP的对等体之间必须逻辑上连通,并进行TCP连接。目的端口号为179,本地端口号任意。
    4、BGP对等体和IGP对等体不同, BGP对等体(Peer)是指使用TCP建立连接的两端,而非与IGP同概念的直连邻居,只要TCP能够建立连接并不一定需要直连。
    5、BGP本身只负责控制路由,数据转发依然靠静态或IGP路由。
    6、BGP支持无类别域间路由CIDR.
    7、路由更新时, BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
    8、 BGP是一种增强的距离矢量路由协议,从设计上避免了环路的发生。
    9、AS之间: BGP通过携带AS Path信息标记途经的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
    10、AS内部: BGP在AS内学到的路由不会再通告给AS内的BGP邻居,避免了AS内产生环路。
    11、BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
    12、BGP提供了防止路由振荡的机制(路由衰减) ,有效提高了Internet网络的稳定性。
    13、BGP易于扩展,能够适应网络新的发展(ipv4单/组播、vpv4单/组播)。主要是通过TLV进行扩展。

    三、BGP分类

    BGP按照运行方式分为EBGP和IBGP

    ●EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS内产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。

    ●IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了反射器和BGP联盟。
    在这里插入图片描述

    四、IBGP水平分割规则

    C从E学习到的 IBGP路由,由于水平分割规则的限制,不能够传递给B路由器,这将导致B无法学习到F通告的BGP路由。但是为了解决这个问题,E可以通过BGP连接,与B直接形成逻辑连接,达到全网连通的目的。
    在这里插入图片描述

    五、BGP的路由器号(route-id)

    • BGP的Router-ID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。对等体之间建立BGP会话时,每个BGP设备都必须有唯一的RouterID,否则对等体之间不能建立BGP连接。
    • BGP的Router- ID在BGP网络中必须是唯一的,可以采用手工配置,也可以让设备自动选取。缺省情况下,BGP选择设备上的Loopback接口的IPv4地址作为BGP的Router -ID。如果设备上没有配置Loopback接口,系统会选择接口中最大的IPv4地址作为BGP的Router- ID。
      一旦选出Router-ID,除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的Router-ID。

    六、BGP工作原理

    BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和9个原则。

    (一)、 BGP的报文:(5种包)

    BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:
    1、Open报文:

    Open是TCP连接建立后发送的第一个报文。
    用于协商BGP对等体的各项参数,主要包括BGP版本(V4) 、AS号等信息,建立BGP对等体连接。
    2、Update报文:

    用于在对等体之间交换路由信息。
    连接建立后,有路由需要发送或者路由变化时,发送Update通告对端可达或者撤销路由信息及路径属性。
    3、Notification报文:

    用于中断BGP连接。
    当BGP在运行中发现错误时,发送Notification报文通告BGP对端,随后与之相关的邻居关系将被关闭。
    4、Keepalive报文:

    用于保持BGP连接。(保活作用)
    定时发送Keepalive报文以保持BGP对等体关系的有效性。响应收到的正确的Open报文
    5、Route-refresh报文:

    用于在改变路由策略后软复位(相当于刷新重载)
    BGP路由表请求对等体重新发送路由信息,只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。

    (二)、BGP状态机:(6种状态)

    BGP对等体的交互过程中存在6种状态机:空闲(Idle) 、连接(Connect) 、活跃(Active) 、Open报文已发送(OpenSent) 、Open报文已确认(OpenConfirm)和连接已建立(Established) 。在BGP对等体建立的过程中,通常可见的3个状态是: Idle,Active和Established.

    1、 Idle状态是BGP初始状态。在Idle状态下, BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后, BGP才开始尝试和其它BGP对等体进行TCP连接,并转至connect状态。
    2、在Connect状态下, BGP启动连接重传定时器(Connect Retry) ,等待TCP完成连接。
    –>如果TCP连接成功,那么BGP向对等体发送open报文,并转至opensent状态。
    –>如果TCP连接失败,那么BGP转至Active状态,反复尝试连接。
    –>如果连接重传定时器超时, BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
    3、在Active状态下, BGP总是在试图建立TCP连接。
    如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
    如果TCP连接失败,那么BGP停留在Active状态。
    如果连接重传定时器超时, BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。
    4、在OpenSent状态下, BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
    –>如果收到的open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态
    –>如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态
    5、在OpenConfirm状态下, BGP等待Keepalive或Notification报文。
    –>如果收到keepalive报文,则转至Established状态,
    –>如果收到Notification报文,则转至Idle状态。
    6、在Established状态下, BGP可以和对等体交换Update、 Keepalive、Route-refresh报文和Notification报文。
    –>如果收到正确的Update或keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。
    –>如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
    –>如果收到Notification报文,那么BGP转至Idle状态。
    –>如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。
    –>Route-refresh报文不会改变BGP状态。
    在这里插入图片描述

    (三)、BGP对等体之间的交互原则:(9个原则)

    BGP设备将最优路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交互原则:
    1、从IBGP对等体获得的BGP路由, BGP设备只发布给它的EBGP对等体
    2、从EBGP对等体获得的BGP路由, BGP设备发布给它所有EBGP和IBGP对等体
    3、当存在多条到达同一目的地址的有效路由时, BGP设备只将最优路由发布给对等体
    4、路由更新时, BGP设备只发送更新的BGP路由
    5、所有对等体发送的路由, BGP设备都会接收
    6、所有EBGP对等体在传递过程中下一跳改变
    7、所有IBGP对等体在传递过程中下一跳不变
    8、默认EBGP传递时TTL值为1
    9、默认IBGP传递时TTL值为255

    (四)、建立对等体注意点

    1、直连建立对等体需要注意的点:
    建立IBGP对等体时要让下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体。
    2、用回环网口建立邻居需要注意的点:
    需要修改更新源,默认更新源是物理口,需要修改成回环网口。建立IBGP对等体时要保障下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体。
    建立EBGP对等体时因为EBGP只能传一跳,因而,在建立EBGP对等体时,需要修改EBGP多跳的跳数为2以上 (自己回环到对端回环是两跳,默认一跳)。
    3、关于为什么要用回环网口建立邻居:
    原因是回环网口稳定,只要路由器启动着,回环网回口就不DOWN,而物理链路可能会受线路或者接口等因素的影响导致对等体关系有问题,因而般BGP建立对等体都是回环网口来建。

    七、配置命令

    --------------在OSPF的AS中配置-------------

    1、配置各路由器的IP地址
    2、配置OSPF

    -----------------R8的配置和R7的相似略-----------

    [R7]ospf 1
    [R7-ospf-1]area 0
    [R7-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
    [R7-ospf-1-area-0.0.0.0]network 7.7.7.7 0.0.0.0

    ---------------------配置BGP------------

    R1 (ibgp)与R2、R3, R4,R5, R6建立邻居关系(R2、R4、R5配置与其相似略)
    [R1]bgp 100 ###创建bgp编号为100 (也就是AS100)
    [R1-bgp]router-id 1.1.1.1 ###配置BGP的Router ID
    [R1-bgpl peer 2.2.2.2 as-number 100 ###指定对等体的回环网口IP地址及其所属的AS编号
    [R1-bgp]peer 2.2.2.2 connect-interface LoopBack0 ##更新发送bgp报文的接口为Loopback0接口
    [R1-bgp] peer 3.3.3.3 as-number 100
    [R1-bgp]peer 3.3.3.3 connect-interface LoopBack0
    [R1-bgp]peer 4.4.4.4 as-number 100
    [R1-bgp]peer 4.4.4.4 connect-interface LoopBack0
    [R1-bgp]peer 5.5.5.5 as-number 100
    [R1-bgp]peer 5.5.5.5 connect-interface LoopBack0
    [R1-bgp]peer 6.6.6.6 as-number 100
    [R1-bgp]peer 6.6.6.6 connect-interface LoopBack0

    [R3-bgp]peer 2.2.2.2 next-hop-local
    --------ASBR从ebgp邻居学习到的路由传递给ibgp邻居时,修改该命令
    [R3-bgp]peer 1.1.1.1 next-hop-local
    [R3-bgp]peer 6.6.6.6 next-hop-local

    [R3-bgp]peer 7.7.7.7 as-number 200 ##此为ebgp邻居的AS编号
    [R3-bgp]peer 7.7.7.7 connect-interface LoopBack0
    [R3-bgp]peer 7.7.7.7 ebgp-max-hop 2
    --------两个AS之间用回环网口建的邻居要将它们的邻居的最大跳数改为2,默认的是1 (因为不是直连而是用Loopbacko接口,需要经过2个路由,而默认EBGP传递时TTL值为1)

    [R3-bgp]network 1.1.1.1 255.255.255.255 ###宣告指定的IGP、静态、默认路由进BGP进程
    [R3-bgp]network 2.2.2.2 255.255.255.255
    [R3]ip route-static 7.7.7.7 255.255.255.255 12.1.1.2
    ------两个AS之间的ebgp对等体需要建立tcp连接,这里用静态做底层的寻址,也可以使用IGP路由搭建底层寻址(比如RIP)

    [R3-bgp]network 7.7.7.7 255.255.255.255 ###ebgp用于配置静态路由或IGP路由的网段或IP需要在两端ebgp都宣告

    ---------R7与R8,R3 (R3与R7互为EBGP)建立邻居关系(R8配置与其相似略)------------

    [R7]bgp 200 ###创建AS200
    [R7-bgp] router-id 7.7.7.7
    [R7-bgp]peer 3.3.3.3 as-number 100 ##此为ebgp邻居的AS编号
    [R7-bgp]peer 3.3.3.3 connect-interface LoopBack0
    [R7-bgp] peer 3.3.3.3 ebgp-max-hop 2 ###ebgp报文允许的最大跳数修改为2 (因为不是直连而是用Loopback0接口)

    [R7-bgp]peer 8.8.8.8 as-number 200
    [R7-bgp]peer 8.8.8.8 connect-interface LoopBack0
    [R7-bgp] peer 8.8.8.8 next-hop-local ###ASBR从ebgp邻居学习到的路由传递给ibgp邻居时,路由的下一跳修改为自己

    [R7-bgp] network 8.8.8.8 255.255.255.255 ##宣告指定的从本区域ibgp邻居学到的路由给ebgp邻居

    [R7] ip route-static 3.3.3.3 255.255.255.255 12.1.1.1 ###两个AS之间运行静态路由

    [R7-bgp] network 7.7.7.7 255.255.255.255 ###ebgp用于配置静态路由或IGP路由的回环网口IP需要在两端ebgp都宣告

    --------------------查看命令------------

    1、display bgp peer ###查看bgp的对等信息Established为成功建立
    2、display bgp routing-table ##查看bgp的路由表信息

    展开全文
  •  根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里自治域指一个具有统一管理机构、统一路由策略网络。自治域内部采用路由选择协议称为内部网关协议,常用有...
  •  根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里自治域指一个具有统一管理机构、统一路由策略网络。自治域内部采用路由选择协议称为内部网关协议,常用有...
  • BGP边界网关协议一、BGP的概述二、BGP的特点三、BGP的分类四、BGP的工作原理1.BGP的五报文2.BGP六状态3.BGP对等体之间交互九原则四、建立对等体注意事项五、配置命令总结 一、BGP的概述 是一种实现自治系统AS之间的...
  • BGP协议详解及工作原理

    千次阅读 2020-08-01 15:21:44
    边界网关协议(BGP) 是运行于 TCP 上一种自治系统路由协议。 BGP 是唯一一个用来处理像因特网大小网络协议,也是唯一能够妥善处理好不相关路由域间多路连接协议。 BGP特征 传输协议:tcp 端口号179 ...
  • BPG边界网关协议知识动态路由协议BGP基本概念BGP路由协议的特点BGP 分类选举BGP的路由器号router-idIBGP水平分割规则BGP工作原理BGP六状态BGP对等体之间交互九原则建立对等体注意点BGP配置命令 动态路由协议 按自治...
  • 目录标题BGP----边界网关路由器动态路由的分类IPG与BGP的工作场景AS的概念BGP概述BGP的分类BGP的路由号(Router-ID)BGP工作原理配置BGP BGP----边界网关路由器 是一种实现自治系统AS之间的路由科大,并选择最佳路由...
  • BGP是一种实现自治系统AS(Autonomous System)...EGP:外部网关路由协议,运行在AS与AS之间路由协议,他解决AS之间选路问题。 通常:BGP (2)按协议类型分类 距离矢量路由协议:RIP1/2、BGP(路径矢量协议)、EIGRP
  • 当网络中链路复杂且容易发生变化...外部网关协议常用是BGP和BGP-4。 那我们先来了解一下什么是RIP路由协议? 1.RIP的原理 RIP(Routing information Protocol)是应用较早、使用较普遍内部网关协议,适用于小型同类
  • 一、概述: 1.1. 产生背景 随着Internet的发展,人们对网络可靠性的要求越来越高。特别是对于终端用户来说,能够实时与网络其他部分保持...正常的情况下,主机可以完全信赖网关的工作,但是当网关坏掉时,主机...
  • 本文通过阐述TCP/IP网络中路由器的基本工作原理,介绍了IP路由器的几大功能,给出了静态路由协议和动态路由协议,以及内部网关协议和外部网关协议的概念,同时简要介绍了目前最常见的RIP、OSPF、BGP和BGP-4这几种...
  • Internet原理与技术因特网路由协议自治系统与路由协议分类(IGP、EGP)内部网关协议 - RIP【例】RIP路由信息表交换RIP工作过程内部网关协议 - OSPF外部网关协议 - BGP路由协议总结专用网络互连(VPN和NAT)虚拟...
  • 虚拟路由器冗余协议vrrp原理的理解

    千次阅读 2019-09-08 11:34:38
    避免由于局域网网关单点故障而导致网络中断,如下图,如果交换机与外网连接出现故障,则所有pc都不能访问外部网络。 解决方法 在网络中增加两台路由器(或者三层交换机)部署vrrp,作为冗余的网关,如下图 ...
  • BGP工作原理

    2011-10-15 09:33:41
    border gateway protocol 外部网关协议 用来描述:在AS之间计算最佳路径,描述从一个AS到达目标AS所 要经过最佳自治系统路径。 *BGP原理及特征 *BGP数据表及查看 *BGP对等体建立会话 *BGP基本配置 *BGP邻居...

空空如也

空空如也

1 2 3 4 5 6
收藏数 117
精华内容 46
关键字:

外部网关协议的工作原理