自治系统 AS 及 BGP 协议的基础知识


1. 自治系统 (Autonomous System, AS)

1.1. 基本概念

维基百科定义:
An autonomous system (AS) is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain, that presents a common and clearly defined routing policy to the Internet.
自治系统 AS 是在一个或多个网络运营商代表单个管理实体或域的控制下,连接的 Internet 协议 IP 路由前缀的集合,它向 Internet 提供了一个通用且明确定义的路由策略。

AS 示意图

  • AS 是在单一技术管理体系下由唯一自治系统号标识的多个路由器的集合;是具有(同种或多种)路由协议策略的巨型网络或网络群组。
  • 通常情况下,每个 AS 由单个大型组织(如:Internet 服务提供商 (IPS)、大型企业技术公司、大学或政府机构)运营;其中,每个 ISP 下可以掌管多个 AS。
  • AS 与 IP 是多对多关系。

1.2. 自治系统号 (Autonomous System Number, ASN)

每个 AS 都被分配唯一一个 ASN 用来相互区分。

  • 分类:
    • 按位数分为 2 字节 (1-65535) 和拓展的 4 字节 (1-4294967295) 两种。
    • 理论上,2 字节编号方式得到的末尾 1024 个 ASN 是私有的(无法连入公网)。
    • 支持 4 字节 ASN 的设备可以与 2 字节 ASN 的设备兼容,然而后者一般不能兼容前者。
  • 获取途径:
    • ASN 是由区域互联网注册机构 (Regional Internet Registry, RIR) 来管理和分配的,全球共有 5 个这样的机构:
      • 美洲互联网号码注册管理机构 (American Registry for Internet Numbers, ARIN) 管理北美、南极洲和部分加勒比地区事务;
      • 欧洲 IP 网络资源协调中心 (RIPE Network Coordination Centre, RIPE NCC) 管理欧洲、中东和中亚地区事务;
      • 亚太网络信息中心 (Asia-Pacific Network Information Centre,APNIC) 管理亚洲和太平洋地区事务;
      • 拉丁美洲及加勒比地区互联网地址注册管理机构 (Latin American and Caribbean Internet Address Registry, LACNIC) 管理拉丁美洲和部分加勒比地区事务;
      • 非洲网络信息中心 (African Network Information Centre, AfriNIC) 管理非洲事务。
    • 机构可以直接将 IP 地址和 ASN 分配给最终使用的组织或个人(需要满足申请需求),也可将某段地址空间和 AS 号段授权给其下的国家级注册组织进行具体分配(如中国的电信、联通、移动)。

1.3. 相关查询网址

  • bgp.tools 【推荐】(查询内容全面,且均免费可查)
  • ipinfo.io(可调用 API,但全面功能需要收费)
  • ip.sb(核心内容简洁)


2. 边界网关协议 (Border Gateway Protocol, BGP)

2.1. 基本概念

BGP 是一种实现自治系统 AS 之间的路由可达(通过维护 IP 路由表或前缀表来实现自),并根据性能优先和策略约束对路由进行决策的路径矢量协议(区别于距离矢量链路协议),是外部网关协议 (Exterior Gateway Protocol, EGP) 的典型代表。

  • 版本:早期发布的三个版本分别是 BGP-1 (RFC1105)、BGP-2 (RFC1163)、BGP-3 (RFC1267),1994 年开始使用 BGP-4 (RFC1771)、2006 年之后使用的版本是 BGP-4 (RFC427),其他网络使用版本是 MP-BGP (RFC4760)。

2.1.1. 对等体 (Peer)

按照 ASN 的一致性与否,可将 BGP 的对等体关系分为 AS 之间的 EBGP (Internal BGP) 以及 AS 内部的 IBGP (Internal BGP) 两类。

对等体关系示意图

2.1.1.1. 防环机制
  • 原则:
    • 从 EBGP 对等体获得的路由,BGP 设备发布给它所有 EBGP 和 IBGP 对等体;
    • 从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。
  • EBGP 水平分割:通过AS间传递携带的 AS_Path 路径属性信息标记途径的 AS 列表,从而避免 EBGP 对等体的环路传播。
  • IBGP 水平分割:通过不传播 AS 内路由信息(详见上述两条原则),从而避免 IBGP 对等体的环路传播。
    • 优点:当 AS 内多个 BGP 路由器具有环形结构时(如连接呈现三角型),可有效避免其环路传播。
    • 问题:当 AS 内多个 BGP 路由器并无环形结构时(如连接呈现链条型),可引发路由信息传递障碍。
    • 解决办法(三种):
      1. 建立全连的对等体关系。将所有 IBGP 对等体进行两两连接;但当网络规模较大时,该方法会造成大量资源浪费并降低网络扩展能力。
      2. 路由反射器 (Route Reflector, RR)。将一台 IBGP 配置为 RR,在一定条件下将反射学习到的路由信息。传输时通过添加 Originator_id(起源ID)和 Cluster_list(簇列表)两个属性来防止成环。
      3. 联邦 EBGP。联邦 EBGP关系(并非真正意义上的EBGP对等体)之间仅继承 EBGP 的路由传递的规则,采用 EBGP 水平分割的机制防环,但不能修改路由属性。
2.1.1.2. 路由黑洞
  • 产生原因:由于 BGP 协议可以非直连建邻,故可能出现 BGP 协议跨越未运行 BGP 的路由器设备,导致 BGP 路由信息传递后,路由控制层面可达,但在数据层面上无法通过,从而形成路由黑洞。
  • 解决办法(四种):
    1. 所有路由设备均运行 BGP 协议。方法不现实,路由信息量大,承载设备价格高。
    2. BGP 重发布到 IGP 协议。方法不现实,通过重发布将 IBGP 所有路由导入到 AS 内所有路由使用的 IGP 协议里,需要 AS 内所有设备可以承载所有路由信息;除非充分过滤,只引入所需路由信息。
    3. 物理和逻辑均全连接。可以用 GRE/MGRE 等 VPN 技术,通过虚拟链路连接 IBGP 对等体。
    4. 非 BGP 设备底层采用多协议标签交换 (Multi-Protocol Label Switching,MPLS)。MPLS 不给通过 BGP 学习到的路由条目分发标签号,但在访问 BGP 学习的目标时,会封装该目标 BGP 下一跳地址所在网段的标签号,使得非 BGP 设备可基于标签号将流量转发到 BGP 的下一跳处。
  • EBGP 对等体之间一般采用直连建邻的方法(默认 TTL 值为 1,可根据实际情况手动修改),IBGP 对等体之间往往是非直连建邻(默认 TTL 值为255)。

2.1.2. 特点

  • 运行 BGP 的设备称为 BGP Spearker;
  • 相比 IGP 协议,BGP 可以承载大批量的路由前缀;
  • BGP 采用 TCP 协议传输(目的端口为 179),保证可靠性;
  • 由于采用 TCP 协议传输:
    • BGP 可实现非直连建邻,前提条件是对等体双方网络可达
    • BGP 需单播传输,无法通过组播或广播自动发现并建立对等体关系。
  • BGP 支持无类别域间路由 CIDR (Classless Inter-Domain Routing);
  • BGP 将 AS 视为一个单位(一跳),以 AS-BY-AS 方式传递信息;
  • BGP 本身只负责控制路由,数据转发依然靠静态或 IGP 路由协议;
  • BGP 本身不产生路由、不发现路由、不计算路由,而是传递路由信息;
  • BGP 可以支撑 MPLS 以及 VPN 等应用拓展,扩展力强;
  • 与 IGP 周期刷新路由不同的是,当路由更新时,BGP 只发送更新的信息(增量更新),减少传播所占用的带宽
  • 缓解路由震荡:BGP 有路由惩罚措施,当一条路由频繁震荡,则会惩罚其为不可用路由,直到其稳定后才可成为可用路由

2.2. 报文类别

BGP 报文结构

2.2.1. Open

Open 消息是 BGP 设备在 TCP 连接建立后发送的第一个消息,用于协商 BGP 对等体的各项参数并建立连接关系,正常情况下收发一次即可。

  • 主要包括 BGP 版本、ASN、保活时间 (hold time)、BGP 标识符以及扩展参数等。
  • 路由器号 (Router-ID, RID):
    • 主要用于区分和标定路由器,一般为 32 位值,通常是 IPv4 地址的形式;
    • 每个 BGP 设备都必须有唯一的 RID,否则对等体之间不能建立 BGP 连接;
    • 该 ID 可手动配置,也可以自动配置(缺省情况下默认为 Loopback 接口最大的地址,若没有配置环回接口,系统则会选择所有物理接口中最大的地址作为 RID);
    • 一旦选出 RID,除非发生接口地址删除等事件,否则将保持原来的编号。

2.2.2. Keeplive

BGP 中类似心跳机制的存在,主要用于保持 BGP 对等体间的连接(保活作用)。

  • 在收到对方发送的 Open 报文后,该 Keeplive 消息可临时充当确认包的作用;
  • Keeplive 报文的发送周期为保活时的三分之一,默认保活时间为 180s,因而默认周期发送时间为 60s;
  • Keeplive 只包含头部信息。

2.2.3. Update

Update 消息用于在对等体之间交换路由信息,包括要更新的路由前缀、掩码以及属性列表等。

  • Update 报文中存在撤销路由字段,可直接将不可达的路由信息放在该字段下进行通告,以达到传递失效信息的目的;
  • 一个 Update 消息可以携带多个路由信息。

2.2.4. Notification

BGP 的告警机制,用于发现错误后中断 BGP 连接。

  • 当 BGP 检测到错误的时候,会用 Notification 包进行告警,告知错误类型、细节编码、具体内容等,并立即中断连接;
  • 具体错误可参考协议标准,或详见关于 BGP 的 Notification 错误码的解释

2.2.5. Route-refresh

用来要求对等体重新发送指定地址族的路由信息。

  • 比如当 BGP 路由器中的路由策略发生变更后需要让其他对等体重新刷新路由;
  • 只有支持 Route-refresh 能力的 BGP 设备会发送和响应此报文。
BGP 报文总结

2.3. 状态机制

BGP 状态机制关系图

2.3.1. 空闲状态 (Idle)

  • 启用 BGP 协议进行初始化时处于 Idle 状态;
  • 在该状态下,系统分配不到任何资源,也拒绝所有进入 BGP 的连接;
  • Start Event 配置 BGP 后,BGP 协议会首先检查指定的IP地址在本地路由表中是否可达:
  • 如果可达,则开始尝试建立 TCP 会话,进入下一个状态;
  • 如果不可达,则将停留在 Idle 状态。
  • 收到 Notification 报文或TCP 拆链通知等 Error 事件后,BGP 会转至 Idle 状态。

2.3.2. 连接状态 (Connect)

  • 在该状态下,BGP 等待 TCP 连接消息:
    • 如果连接成功,发送 Open 报文给对等体,并进入 OpenSent 状态;
    • 如果连接失败,则移到 Active 状态。

2.3.3. 活跃状态 (Active)

  • 该状态会反复尝试 TCP 连接:
    • 如果连接成功,发送 Open 报文给对等体,并进入 OpenSent 状态;
    • 如果连接失败,则重置重传计时器,停留在 Active 状态继续发送;
    • 如果重传定时器超出一定次数后还没收到对等体 TCP 响应,则退回到 Connect 状态。

2.3.4. Open报文已发送 (OpenSent)

  • 该状态表明现阶段已经成功建立了 TCP 会话并发送了 Open 报文;
  • 等待对等体的 Open 报文,并且检查其中信息:
    • 如果正确,就发送 Keepalive 报文,并转入 OpenConfirm 状态;
    • 如果错误,就发送 Notification 给对等体,并转入 Idle 状态。

2.3.5. Open报文已确认 (OpenConfirm)

  • 等待对等体确认 Open 消息并根据返回的报文进行状态转移:
    • 如果收到 Keepalive 报文,则转入 Estabilished 状态;
    • 如果收到 Notification 报文,则转入 Idle 状态。

2.3.6. 连接已建立 (Established)

  • 双方信息均确认,建立完成状态,标志着 BGP 对等体关系的建立;
  • 该状态下,BGP 可以和其他的对等体交换 Update、Notification 和 Keepalive 报文:
    • 如果收到了正确的 Update 或者 Keepalive 消息,则认为对端处于正常的运行状态;
    • 若收到了 Notification 消息,则转到 Idle 状态;
    • 如果收到了错误的 Update,本地会发送 Notification 通知对端,并改本地状态为 Idle。
BGP 状态机制总结

2.4. 工作过程

  1. 配置完成后,BGP 对等体间单播 TCP 三次握手,建立 TCP 会话;
  2. 会话建立后,BGP 对等体间正常收发一次 Open 报文,并互发 Keeplive 包进行确认建立 BGP 的对等体关系,从而生成对等体表;
  3. 对等体关系建立后,默认每 1min,使用 Keeplive 周期保活对等体关系,周期保活 TCP 会话;
  4. 对等体关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向 BGP 协议中进行宣告,并通过使用 Updata 数据包进行对等体间路由共享,从而生成 BGP 表;
  5. 本地对 BGP 表中的路由进行选择,默认将最优路径加载于路由表中(最优路径基于 BGP 的选路规则);
  6. 若出现错误信息,对等体间将使用 Notification 报文进行报错操作;
  7. 收敛完成,仅 Keeplive 周期保活即可,默认保活时间为 3min,周期发送时间为 1min;
  8. 若发生结构突变,则将直接发送 Updata 报文进行触发更新。

2.5. 路径属性

路由器发送关于目标网络 BGP 的 Update 报文进行路由通告时,其度量值被称为路径属性

BGP 路径属性

  • 作用:为保证路由传递的可控性(方便管理员干涉选路),BGP 通过路径属性设计选路策略。
  • 分类:
    • 属性可以是公认的或可选的、强制的或自由决定的、传递的或非传递的;
    • 公认属性是公认所有 BGP 实现都必须识别的属性,这些属性被传递给 BGP 对等体;
    • 强制属性是必须出现在路由描述中,而自由决定属性可以不出现在路由描述中;
    • 非公认属性被称为可选的,不要求所有的 BGP 实现都支持;
    • 可选属性可以是传递的或非传递的,这里指是否转发收到的路由信息。

2.5.1. 公认强制 (Well-Known Mandatory)

公认强制指的是必须携带且必须识别的路由属性。

2.5.1.1 Origin(来源)

用于描述 BGP 路由表的来源。

  • 有三个可能的源如图所示,其中路由优选顺序为 IGP > EGP > Incomplete
BGP 路由表来源种类

  • 路由器在多个路由选择的处理中使用这个信息,会选择具有最低 Origin 类型的路径。
2.5.1.2 AS_Path(AS路径)

一条路由在传递过程中经过的所有 ASN 的信息。

  • 作用
    • 防止成环。如果路由器发现了一条路由的 AS_Path 属性包含自己的 ASN,则这个路由器不会转发这条路由;
    • 优选参考。在出现多路由选择时,该属性可作为路径优选参考之一;当含有的 ASN 越多,则表明该路径开销越大,因此该路由就越有可能不会被优选。
  • 四种类型
    • AS_SET:去往特定目的地所经路径上的无序 ASN 列表。
    • AS_CONFED_SET:其用内容与方法同上,区别在于列表中的 ASN 属于本地联邦中的 AS。
    • AS_SEQENCE:一个去往特定目的地所经路径上的有序 ASN 列表。
    • AS_CONFED_SEQUENCE:其用内容与方法同上,区别在于该列表中的 ASN 属于本地联邦中的 AS。
2.5.1.3. Next_hop(下一跳)

声明路由器所获得的 BGP 路由的下一跳。

  • 当路由器学习到 BGP 路由后,需对该属性进行检查,如果不可达则该 BGP 不可用;
  • 在默认(缺省)情况下,对 EBGP 会话来说,下一跳就是通告该路由的对等体路由器的源地址(也就是当前地址);
  • 在默认(缺省)情况下,对 IBGP 会话来说,路由将不会更改 Next_hop 属性;
  • 由于默认情况下 IBGP 的传递可能会造成路由黑洞,因此通常要向 IBGP 对等体手动更改 Next_Hop。

2.5.2. 公认自由 (Well-Known Discretionary)

公认自由指的是必须识别但是不一定携带的路由属性。

2.5.2.1. Local_Preference(本地优先级)

用于通告 AS 内的路由器在有多条路径离开AS的时候的首选路径。

  • 该属性只能够在 AS 内 IBGP 之间互相传递,不能传递给 EBGP 对等体(但可以在 AS 边界的 BGP 设备上配置入站 Local_Preference 属性值);
  • 取值范围 0-4294967295(4字节),值越大越优先;
  • 通常用来控制本 AS 域发放其他 AS 域的流量走向;
  • 在默认情况下,本地优先级为 100。
2.5.2.2. ATOMIC_Agrgregate(原子聚合)

用于告知其他路由器可能出现了路径属性的丢失。

  • 该属性主要用在 BGP 路由聚合中,相当于一个预警。

2.5.3. 可选传递 (Optional Transitive)

可选传递指的是不一定识别、但收到后会传递给其他的人的路由属性。

2.5.3.1. Aggregator(聚合者)

标明了实施路由聚合的 BGP 路由器 ID 和聚合路由的路由器的 ASN。

  • 此属性用于 BGP 路由聚合
2.5.3.2. Community(团体)

此属性指共享一个公共属性的一组路由器(可认为是路由的分类)。

  • 分类:
    • 众所周知的 Community:BGP 预定义的,有固定格式和特定的功能,只能被使用不能被修改;
    • 私有 Community:用户自定义的。
  • no-export:不将路由发送给任何 EBGP 邻居;
  • no-advertise:不将路由发给任何 BGP 邻居;
  • internet:可以将路由器发送给任何 BGP 邻居;
  • local-as:不将路由发到 AS 外。

2.5.4. 可选非传递 (Optional Nontransitive)

可选非传递指的是不一定识别、但收到后不会传递给其他的人的路由属性。

2.5.4.1. MED(多出口区分)

该属性通知 AS 以外的 BGP 路由器进入 AS 的首选路径,其大小也被认为是路由的外部度量

  • MED 值主要用于 AS 间的 BGP 选路,即用来控制别的 AS 流入本 AS 的流量走向;
  • 当 MED 通告给对端 AS 的 EBGP 后,MED 仅在该 AS 内传递,不会继续携带到其他 AS 中(即收到后不再通告给其他 EBGP 设备);
  • MED 值越低优先级越高;
  • MED 值在默认情况下为 0,并且不同的 AS 域通告的 MED 之间一般不能用于比较。
2.5.4.2. Originate_ID(起源ID)

用于描述 BGP 路由的来源。

  • 当一条路由通过 Network 或者 Import 被发布到 BGP 后,该属性就自动加在路由上;
  • 路由反射器会附加到这个属性上,用以防止环路。
2.5.4.3. Cluster_List(簇列表)

显示了采用的反射路径。

  • 此属性主要用于路由反射器
2.5.4.4. Preferred_Value(优先值)

路由器优先级别。

  • 该属性仅在华为产品中出现。
  • 不在对等体间传输,因此该属性不会出现在 Update 报文中;
  • 取值范围在 0-65535,数值越大越优先;
  • 该属性配置在路由上,仅影响所配置的路由优选情况;
  • 默认缺(省值)为 0,同时从其他对等体学到的路由也为 0。

2.6. 路由策略

以下参数和配置以华为为主,不同设备、厂商及型号会有所差异,需仔细阅读 BGP 配置说明。

2.6.1. BGP路由汇总

  • BGP 既支持自动汇总(但只对本地采用 import-route 命令注入的 BGP 路由有效,并按主类网号记录,无法做到精细化展示明细)也支持手动汇总;
华为路由器的手动汇总参数

  • Detail-Suppressed 是抑制通告的所有明细,即配置该属性的 BGP 设备收到消息后不会再将明细通告给其他对等体,不过会将其内容保存到本地;
  • 如果键入 AS-Set 关键字,则会携带一些公认强制属性(如 Origin、AS-Path、Community 等属性),防止传递中丢失重要属性(与 Detail-Suppressed 搭配则表示抑制所有明细的同时保留所选择携带的部分公认强制属性);
  • Suppress-Policy 用于通告汇总路由以及选定的明细路由,即可以通过策略仅抑制匹配的明细。具体可通过调用已经定义好的 Route-Policy 来过滤路由(注意这里只能用于 if-match 不能用设置 apply);
  • Attribute-Policy 同样可以调用 Route-Policy,但这里可以采用 apply 来修改路由属性;
  • Origin-Policy 用于匹配源路由,只要设置匹配的明细中有一条处于活跃状态则汇总路由将被通告,否则会失效(与 Detail-Suppressed 搭配则表示抑制匹配上该规则的所有源路由)。

2.6.2. As-Path-Filter

正则表达式过滤

  • 该参数可以利用正则表达式的方式匹配 AS_Path,从而进行路由的筛选。
  • 具体正则表达式的方式可以根据路由器规则进行搜索,基本规则大差不差。

2.6.3. Community 策略

  • Community 是一种路由标记,可基于 Community 值而不用网络/掩码信息来抓取并执行相应路由策略,用于简化路由策略的执行;
  • Community 属性值长度为 4 字节,通常以两种形式呈现:
    • 单个十进制整数格式;
    • AA (ASN) : NN(自定义编号)。
Community 属性值

  • 对于未携带 Community 属性的路由,可以在 Route-Policy 中进行匹配应用,如下图所示;
Route-Policy 规则

  • 对于已经携带 Community 属性的路由,可以通过 ip community-filter 可以进行筛选,如下图所示。
Community 策略过滤示例

2.6.4. IP-Prefix

  • IP Prefix List 提供了强大的基于 IP 前缀的过滤机制,除了 access list 之外,还能够基于 IP 掩码和掩码区间进行过滤;
  • 主要通过 deny 命令拒绝某前缀的 IP 通过,或 permit 命令允许某前缀 IP 通过。

2.6.5. Filter-Policy

  • 路由过滤工具,只能过滤路由,无法过滤 LSA,不能修改路由属性;
  • 应用各协议中的 Filter-Policy 工具可通过引用 access list 或地址前缀列表,对接收、发布和引入的路由进行过滤。

2.6.6. Route-Policy

  • Route-Policy 可以用 apply 来设置路由的属性以及对利用 if-match 对路由进行过滤;
apply 配置

if-match 配置

  • Route-Policy 即可以应用在对等体上,也可以用在 Network 上。

2.6.7. Outbound Route Filtering (ORF)

  • ORF 为 BGP 出口路由过滤功能,目的是减少对等路由器之间发送的 BGP 更新的数量;
  • 基于 BGP 的前缀出站路由过滤功能,可以配置为发送、接收、发送和接收三种 ORF 能力:
    • 本地对等体公告 ORF capability 于 send 模式下;
    • 远程对等体接收到 ORFcapability 于 receive 模式,并且应用过滤器当做自己的出站策略本地和远程的对等体交换更新,以保持每个路由器的 ORF;
  • 通过address family(依赖被公告 ORF 前缀列表 capability)在对等体之间交换更新信息。
    • 当远端对等体接收到路由更新请求时,开始发送更新到本地对等体;
    • 在推送入站列表到远程对等体之前,BGP 发言者将继续应用入站前缀列表接收更新。

2.7. 选路规则

不同厂商和设备在 BGP 选路上存在细微差异,需根据实际情况查看。

2.7.1. 基本概念

  • 当 BGP 设备学习到去往同一个目的网络的多条路由路径时,设备将这些路由都装载到 BGP 路由表,并在这些条目中决策出最优的路由,将该路由加载到全局路由表中;
  • BGP 在选择路由时严格按照选路规则的先后顺序比较路由的属性,如果通过当前的属性就可以选出最优路由,BGP 将不再进行后面的比较;
  • BGP 的选路规则与 BGP 路径属性及路由策略紧密相关。

2.7.2. 选路规则

下面以华为 VRP V8 的选路规则作为讲解,其中部分规则通用。

华为 VRP V8 的选路规则

  • 当其他条件相同时,优选本地生成的路由(包括通过 Network 引入、import-route 引入、自动汇总、手动汇总等),其优先级高于从邻居中学来的路由:
    • 汇总路由优先级高于非汇总路由;
    • 汇总优先级:通过 aggregate 生成的手动汇总路由优先级高于通过 summary automatic 生成的自动汇总路由;
    • 非汇总优先级:通过 Network 引入的优先级高于通过 import-route 引入的路由。
  • 可以通过 bestroute as-path-ignore 命令使得在选择最优路径时不对 AS 路径属性进行比较;
  • MED 的选择规则:
    • 通常情况下默认只匹配同 AS 下的,可以通过 compare-different-as-med 来比较不同 AS 对等体路由中的 MED 值;
    • 通常情况下默认缺省 MED 配置的值为 0,可以通过 med-none-as-maximum 将其缺省改为最大值,即 4294967295;
    • med-confederation 命令可以实现仅当 AS_Path 中不包括外部 ASN 时才比较 MED;
    • deterministic-med 功能可以使得在对多个不同 AS 收到的相同前缀的路由选路时,首先按照 AS_Path 最左的 ASN 进行分组,并在组内比较筛选最优后再选择组间最优,消除选路的结果和路由接受顺序的相关性。
  • BGP 路由负载分担:
    • 在大型网络中,仅优选一条最优 BGP 路由将会造成负载不均衡的情况,通过配置路由分担可以使得设备同时将多条等价的 BGP 路由加载到路由表;
    • 尽管 BGP 路由表有多条等价路由,但每次通告仍仅选择最优的一条;
    • 如果实现负载分担,则无论是否配置 bestroute peer next-hop-local,本地设备都会向 IBGP 对等体组发布路由时都会先将下一跳地址改为自己;
    • 在公网中到达同一目的地的路由形成负责分担时,系统会首先判断最优路由的类型,若最优路由为 IBGP 则只是由 IBGP 路由参与负载分担,同理最佳路由为 EBGP 时由 EBGP 来参与,不可同时使用 IBGP 和 EBGP 路由;
    • 如果到达目的地存在多条路由,且这些路由分别经过不同的 AS,在默认情况下,这些路由不能形成负载分担;
    • load-balancing as-path-ignore(路由负载分担时不考虑 AS_Path)和 bestroute as-path-ignore 不能同时使用;
  • 如果路由携带 Originator_ID 属性,则在选路中比较 RID 的时候用该属性进行替代。

参考资料

下列资料按照字母排列,内容无先后顺序

### RIR 插件简介与安装指南 RIR 是一种用于数据分析和可视化的工具,通常集成到其他软件平台中作为插件使用。以下是关于其安装和使用的详细介绍。 #### 安装流程 为了成功安装 RIR 插件,需遵循以下说明: 1. **环境准备** 需要确认目标环境中已安装支持该插件的基础框架或库。例如,在 Python 中可能需要先安装 `pip` 或者特定版本的依赖包[^1]。 2. **下载插件文件** 访问官方文档或者指定资源站点获取最新版的 RIR 插件压缩包或源码链接[^2]。如果通过命令行操作,则可以利用如下方式完成自动拉取: ```bash git clone https://github.com/example/rir-plugin.git ``` 3. **执行配置脚本** 解压后进入目录运行初始化程序来设置必要的参数选项以及路径映射关系等。对于 Linux/Mac 用户来说一般会采用 shell 脚本来简化过程;而 Windows 下则更多借助批处理文件实现自动化部署功能[^3]: ```bash ./configure.sh --prefix=/usr/local/rir make && sudo make install ``` 4. **验证安装状态** 启动对应的应用服务并尝试加载新加入的功能模块看是否存在异常提示信息。可以通过简单的测试用例来进行基本校验工作以确保一切正常运作[^4]。 #### 使用指导 一旦顺利完成上述步骤之后就可以正式启用 RIR 提供的各项特性啦! - 打开主界面找到新增加菜单项即可开始探索各项实用的小工具和服务接口调用了哦~ - 如果遇到任何疑问都可以查阅随附的帮助手册或是在线社区寻求技术支持人员解答疑惑之处呢😊 ```python import rir_plugin as rp data = rp.load_data('example.csv') processed_data = rp.process(data, method='advanced') print(processed_data.head()) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WhiteLie777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值