Advertisement

动态路由协议BGP配置实战

阅读量:

边界网关协议(BGP)是一种用于不同自治系统(AS)之间交换路由信息的外部路由协议。通过TCP179端口传输数据,在同一AS内的设备之间使用内部BGP(IBGP),不同AS之间使用外部BQP(EBQP)。BQP采用增量更新策略,在不定期同步的情况下也能正常工作。
BQP支持五种基本消息类型:
OPEN:用于建立连接并协商参数;
UPDATE:用于传递路由信息并检测环路;
NOTIFICATION:用于报告错误;
KEEPALIVE:用于保持连接;
ROUTE-REFRESH:用于重新发送特定路由信息。
路径属性分为四种类型:
出版强制属性(Well-known mandatory);
出版非强制属性(Well-known discretionary);
可选传递属性(Optional transitive);
可选非传递属性(Optional non-transitive)。
这些属性帮助路由器确定最佳路径,并根据预设策略选择合适的路由前缀。配置案例展示了如何为不同的AS分配IP地址并设置邻居关系,确保数据包能够正常转发到目标网络中。

.1、边界网关协议BGP

该技术主要用于Autonomous System之间的路由信息交互,在运营商与运营商之间的网络连接中以及企业与运营商之间的网络环境中均可应用。其中最常用的是基于RFC 2113版本的标准(即BGP-4),该技术能够支持Compounding IP地址格式(CIDR)。所有该技术使用的数据通信均通过TCP 179端口进行。对于处于同一Autonomous System范围内的路由器间的通信所使用的该技术统称为内部包(IBGP),而不同Autonomous System范围内的路由器间的通信则采用外部包(EBGP)技术。值得注意的是该技术采用了渐进式更新机制,并不具备定期同步路径的能力。

Autonomous System是负责一段互联网IP地址管理的关键机构,并通常被称为Internet Service Provider(ISP)。在Autonomous System内部环境中,在线运营方能够独立制定所有相关路由决策。不同Autonomous System之间可以通过外部路由协议如BGP进行通信与交互。在提供互联网服务时必须遵循注册并分配唯一的AS号码这一规定流程。中国的AS号码统一管理机构是CNNIC

peers (peer entity),BGP connections are one-to-one links. Peers involved in BGP connections are considered peer entities, identified by their AS numbers. Peers sharing the same AS number are internal peers and utilize the Interior BGP protocol, while peers with distinct AS numbers are external peers employing the Exterior BGP protocol.

在BGP架构中采用了传输控制协议(TCP),其基础结构基于网状拓扑架构。该系统由两个相互独立的网络(如自治系统或AS)共享路由数据,并通过这些数据建立起互连关系。这两台路由器达成了一致意见,在旨在共享访问特定IP地址范围路径信息的基础上展开通信活动。该协议通过传输控制协议(TCP)中的端口179进行通信连接。

BGP协议特点:

*BGP代表边界网关协议。
*BGP在最佳路径算法中发挥着重要作用。
相较于EIGRP而言,在功能更复杂的网络环境中应用更为广泛。
其采用向量状态机制。
作为一类外部网关协议。
相较于EIGRP而言,在智能化程度上具有显著优势。
其采用TCP作为数据包传输介质。
该协议管理距离参数设定为20(内部)和200(外部)。

2、BGP消息类型

BGP主要支持5种消息类型:

1. 建立OPEN消息

当TCP连接建立之后, 两端发送OPEN消息. 如果这些OPEN消息被接受, 则两端传输KEEPALIVE消息以确认对方的回复.

BGP协议OPEN消息:

OPEN消息中的主要字段有:

  • vNumber(版本号),当前值为4;
    • Autonomous System ID(用于区分同一AS或不同AS的标识符),用于标识自治系统;
    • Hold Interval(保持期间),双方通过协商确定该时间段,在此期间若未收到KEEPALIVE信息或UPDATE消息,则认为BGP连接处于中断状态;
    • BGP Identifier(类似于路由器标识符),用于区分不同的BGP设备或路由器建议采用路由器loopback地址作为标识符;

2. 更新UPDATE消息

用于在对等体之间传输路由信息的UPDATE消息能够检测出存在环路。这类UPDATE消息通常包括以下几个组成部分:操作指令、数据字段(包含当前节点地址、下一跳地址及目的节点)、校验字段(确保数据完整性)以及确认字段(确认接收方是否正确接收了整个数据包)。

  • 可撤销的路由记录包括withdrawn routes;
    • 路径属性具体说明可参考下文(path attributes are detailed in the next chapter),由三个组成部分构成(attribute type, attribute length, attribute value);
    • 属性类型(attribute type)占用2个字节空间, 其中第一个字节用于标记功能(flags), 第二个字节用于标识类型代码(code). BGP通过不同属性传递各类信息;

路径属性类型:

标志位被用来区分不同类型的字段,在数据库设计中主要包括:公有必传字段(publicandatorycolumns)、公有非传字段(publicnontransitivecolumns)、可传字段(transitivecolumns)以及公有非传字段(publicnontransitivecolumns)。

代号位用于标记信息的类型,主要类型有ORIGIN、AS_PATH、NEXT_HOP等。

网络层的可达性信息(NLRI),即为 Network Layer 的可达性信息表示方法,在此过程中系统会记录并传递所有任何路径上的路由节点能够到达的所有目标地址的前缀

3. 通告NOTIFICATION消息

当BGP协议检测到错误时,发送此消息,此消息发送时,BGP连接立即中断。

通告消息格式:

错误代码含义:

4. 保持连接KEEPALIVE消息

根据BGP协议规定,在建立双向BGP连接时要求对等体之间必须持续交换KEEPLIVE报文以维持路由信息的可靠性。具体而言,在双方协商确定的Hold Timer基础上设定KEEPLIVE报文的发送周期为其三分之一值,并规定该报文最小发送频率不应低于每秒一次。

5. 路由刷新ROUTE-REFRESH消息

用于BGP对等体重新发送指定的路由信息。

3、路径属性(path attributes)

路径属性主要包括以下4种类型:WLLN强制属性(acker enforced)、WLDJ非强制属性(well-known discretionary)、可选传递属性(optional transitive)和可选非传递属性(optional non-transitive)。

所有BGP路由器均需支持公认可用属性。
这些公认为 mandatory 的特性应包含携带有路由信息(NLRI)的 update update 消息所需携带的字段。
而非mandatory 特性则可在发送 update 消息时根据具体情况灵活应用。

1. 起源origin

这些NLRI路由信息的初始属性被原始发送者标记携带,而这些原始发送者无法修改。

  • 0代表IGP,在该场景下NLRI生成于内部AS;
  • 1代表EGP,在该情况下NLRI基于EGP的学习完成;
  • 2代表INCOMPLETE,在此情形下NLRI则采用其他方式实现;

2. AS路径AS_PATH

记录NLRI路由信息经过的所有AS路由。

  • 当网络设备向内部网络实体发送数据时, AS_PATH无需修改;
  • 通过外部对等实体进行数据传输时, 网络设备会将其自身AS号纳入AS_PATH中。

用作检测路由环路的指标之一是当接收的信息中包含自身AS号码时

3. 下一跳NEXT_HOP

指示携带的NLRI路由信息的下一跳。

4、选路策略

BGP 协议主要用于传递 routing 信息,在引入 local routing table之前,通过以下步骤确定 BGP 路由。

根据预定策略计算路由优先级(多根据路由器默认设定,或自定义规则)。

路由选择:

  • 排除下一跳不可达路由;
  • 排除AS_PATH出现环路的路由:
  1. 当目标地址相同时,在所有候选路由中选择优先级最低的那个;
  2. 若目标地址仅有一条路径可达,则直接对该路径进行配置;
  3. 在AS_PATH列表中选取包含最少AS编号的路径;
  4. 检查IGP范围内是否存在对应的目标地址;
  5. 如果IGP范围内未找到对应的目标地址,则转而检查EGP范围内的对应接口;
  6. 如果IGP和EGP范围内均未找到对应的目标地址,则查看是否有 incomplete 路由信息;
  7. 在EBGP信息源提供的第一条匹配项将被选为主干;
  8. 对于所有候选路径,在下一跳步长最小的情况下将被选为主干;
  9. BGP邻域中具有较小识别号的目的地接口会被选为主干;
  10. 当存在多个候选节点时,则会选择IP数值较小的那个作为目标节点。

5、BGP配置案例

网络拓扑:

R1重命名为yidong,R2重命名为liantong。

配置BGP AS自治系统号码:

复制代码
 [ISP-01-yidong]bgp 4134

    
 [ISP-02-liantong]bgp 5678
    
    
    
    
    AI助手

该网络中的BGP AS标识(Autonomous System Identifier)是其身份信息的一部分,在同一AS号网络内部实现自我管理功能。

可以向IANA 组织申请,本地测试 使用64512-65535 私有 BGP AS 号码。

配置BGP邻居:

复制代码
 [ISP-01-yidong-bgp]peer 12.1.1.2 as-number 5678

    
 				# 邻居地址 | 邻居的AS号码
    
 [ISP-02-liantong-bgp]peer  12.1.1.1 as-number 4134
    
    
    
    
    AI助手

查看BGP邻居设备状态:

复制代码
    dis bgp peer 
    
    AI助手

established 该状态表示正常建立,协商时间1min。

建立不成功的原因有:

  1. 时间没到;
  2. 地址不通;
  3. AS号码写错;

查看路由信息:

发布内部网络7.7.7.0的路由信息进入到BGP:

复制代码
 [ISP-01-yidong-bgp]network   6.6.6.0 24

    
  
    
 [ISP-02-liantong-bgp]network  7.7.7.0 24
    
  
    
 [ISP-01-yidong-bgp]
    
 bgp 4134
    
  peer 12.1.1.2 as-number 5678
    
   network 6.6.6.0 255.255.255.0
    
  
    
 [ISP-02-liantong-bgp]
    
  bgp 5678
    
  peer 12.1.1.1 as-number 4134
    
   network 7.7.7.0 255.255.255.0
    
    
    
    
    AI助手

发布的内部网络路由,必须和路由表中的子网号与掩码一致才能发布。

查看学到的路由:

两边用户可以互相访问:

全部评论 (0)

还没有任何评论哟~