DeepFloodbeta

BGP和ASN是如何运作的?

知道是什么东西,就是不知道中间是怎么运作的,有路由表这东西为什么还要有BGP?求高人解惑!

  • ai回复

    一、 ASN 与自治系统 (AS):互联网的骨架

    在深入 BGP 之前,我们首先需要理解 BGP 运作的宏观背景——自治系统 (Autonomous System, AS)

    1. 什么是 ASN?

    ASN (Autonomous System Number) 是一个全球唯一的数字标识符,用于识别一个独立的网络实体或组织(如一个大型 ISP、一家超大型科技公司、一所大学网络)。

    2. 什么是自治系统 (AS)?

    一个 AS 是一个拥有统一的路由策略,并在单个管理实体控制下的网络集合。

    • AS 的内部: AS 内部的路由器使用 内部网关协议 (IGP),如 OSPFEIGRP,来学习和共享路由信息。
    • AS 之间: 不同的 AS 之间必须使用 外部网关协议 (EGP) 来交换路由信息,这个 EGP 就是 BGP

    小结: 互联网不是一个扁平的巨大网络,而是由成千上万个独立、拥有自己管理边界的 AS 构成的集合。ASN 是这些“网络国家”的“国籍编号”。


    二、 BGP 与路由表的根本区别:为什么需要 BGP?

    这是您问题的核心。简单来说,路由表"做什么" 的工具,而 BGP"如何知道" 外部信息的机制,并且是实施 "基于策略" 路由的关键。

    特性 路由表 (Routing Table) BGP (Border Gateway Protocol)
    定义 路由器上用于存储所有已知路由信息(目标网络、下一跳)的数据库/数据结构,用于本地转发决策 一种协议 (Protocol),用于在不同 AS 之间安全、可靠地交换路由路径信息,并实施复杂的选路策略
    作用范围 本地路由器 (无论内部/外部路由,都储存在这里)。 全球互联网 (主要负责 AS 之间的路径学习)。
    主要目标 根据数据包的目的 IP 快速查找最佳的下一跳接口进行转发 发现到达全球数百万个目标网络的最优路径,并根据商业策略选择一条。
    运作方式 查找(Look-up)和转发(Forwarding)。 邻居建立、路径通告(Advertisement)、策略决策

    核心解答:BGP 的必要性

    BGP 存在的根本原因,是为了解决大规模互联网下的 信任策略可扩展性 问题:

    1. 跨 AS 边界 (Inter-AS Routing): 路由表需要知道如何到达另一个 AS 中的网络。BGP 专门负责将这些来自外部 AS 的信息(即外部路由)学习到路由表中。IGP(如 OSPF)无法在 AS 之间有效运作,因为它不具备路径属性、信任和策略控制能力。
    2. 路径和策略控制 (Policy Control): 这是 BGP 最重要的价值。
      • IGP 关心的是 “最短路径” (例如,基于带宽或跳数)。
      • BGP 关心的是 “最佳路径”,这里的“最佳”是根据 商业协议、成本、客户关系流量工程策略 来定义的。例如,一个 AS 可能希望所有去往某个方向的流量都走其付费的“优质”上游 ISP,而不是免费的对等 ISP。BGP 通过其丰富的路径属性来实现这种精细的策略控制。
    3. 可扩展性 (Scalability): BGP 是一种路径矢量协议,它不计算全网最短路径(这在大规模网络中不可行),而是只通告到达一个目标网络的完整路径 (即 AS_PATH 属性),极大地降低了每个路由器的计算负担。

    三、 BGP 的运作机制:路径、属性与选路

    BGP 是一种运行在 TCP (端口 179) 上的应用程序层协议,这保证了其更新的可靠性。

    1. 关键术语与通告内容

    • Prefix (前缀): BGP 通告的主要内容,即一个 IP 网络块,例如 203.0.113.0/24
    • 路径信息 (Path Information): BGP 的核心。它不仅通告目的地,还会附带一系列路径属性 (Path Attributes),这些属性是进行策略选路的基础。

    2. 核心路径属性

    BGP 的选路决策是基于对这些属性的分析和比较:

    • AS_PATH: 这是最重要的属性之一。它记录了数据包要到达目的地需要经过的所有 AS 编号。BGP 路由器会拒绝包含自己 ASN 的路径,从而防止路由环路。AS_PATH 越短,通常代表路径越优 (但会被策略覆盖)。
    • Local Preference (本地优先级): 仅在一个 AS 内部使用。用于决定该 AS 内部的出站流量应该走哪条出口路径。值越高越优先
    • MED (Multi-Exit Discriminator): 用于相邻 AS 之间,影响入站流量。当一个 AS 有多条链路连接到另一个 AS 时,MED 帮助另一个 AS 决定通过哪条链路将流量发过来。值越低越优先

    3. BGP 选路决策过程 (Decision Process)

    BGP 路由器不会简单地选择 AS_PATH 最短的路径,而是遵循一个严格、分层、长达十几个步骤的选路流程。排在最前列的步骤都是关于策略的:

    1. 选择 Local Preference (本地优先级) 最高的路径。
    2. 选择 AS_PATH 最短的路径。
    3. 选择 Origin Type 最优的路径。
    4. 选择 MED 最低的路径。
    5. ... 还有更多步骤,包括路径新旧程度、邻居类型(eBGP vs. iBGP)以及最终的路由器 ID 和 IP 地址等。

    总结: BGP 运作的核心在于 交换带有丰富属性的路径信息,并通过一个复杂的决策算法来基于策略选择一条“最佳”路径,然后将这个最佳路径(下一跳信息)安装到 本地路由表 中,供数据包转发时使用。

  • @moonl #0 路由表在asn内部用,bgp跨asn用

  • 我i直接去问AI了

  • 学习到了

  • 这个说来话长了