自治系统AS

在互联网中,一个自治系统(AS,autonomous system)是指在一个(有时是多个)实体管辖下的所有IP网络和路由器的全体,它们对互联网执行共同的路由策略。参看RFC 1930中更新的定义。

最初时,该定义要求一个自治系统由一个单一实体管辖,通常是一个互联网服务提供商或一个拥有到多个网络的独立连接的大型组织,其遵循一个单一且明确的路由策略。参看RFC 1771,边界网关协议(BGP)的初始定义(现已废止)。由于多个组织可使用各自私有的自治系统编号来与同一个将它们连接到互联网的ISP之间运行BGP协议,因此得到较多应用的是RFC 1930中较新的定义。尽管ISP支持了这多个自治系统,但对互联网来说只能看到该ISP的路由策略。所以ISP必须具有一个公开且正式登记的自治系统编号(ASN)。

用于BGP路由中的每个自治系统都被分配一个唯一的自治系统编号(ASN)。对BGP来说,因为ASN是区别整个相互连接的网络中的各个网络的唯一标识,所以这个自治系统编号非常重要。互联网地址分派机构将64512到65535的ASN编号保留给(私有)专用网络使用。

编号分派正式的自治系统编号由互联网地址分派机构(该机构也负责分配互联网IP地址)成批地分配给各个地区互联网注册中心(RIR)。各地区的RIR则进一步再从IANA分配到的整批ASN里为一个实体分配一个ASN。希望获得ASN的实体必须按其所属的地区中心规定的程序进行申请,在申请得到批准后才会分配到一个ASN。最新的IANA的正式ASN分配情况可在IANA的网站[1]找到。

到2007年为止,自治系统编号都是16位长的整数,这最多能被分配给65536个自治系统。自治系统编号被分成两个范围。第一个范围是公开的ASN,从1到64511,它们可在互联网上使用;第二个范围是被称为私有编号的从65412到65535的那些,它们仅能在一个组织自己的网络内使用。

从2007年初开始,各RIR已开始分配32位长度的ASN。这些编号将以<高16位数值的10进制形式>.<低16位数值的10进制形式>的形式来使用。RFC 4893说明了在BGP中使用32位的ASN的方法。例如编号为“268468224”(16进制则为“10008000”)的ASN写作“4096.32768”。

自治系统可根据其连接和运作方式分为三类。

多出口的自治系统(multihomed AS)是指与其它的自治系统具有多于一个连接的自治系统。一旦那些连接中的某一个完全失效,这个多出口的自治系统也仍然能保持和互联网络的联系。但是,这类自治系统不允许它连接的其它自治系统中的一个穿过它来访问其相连的另一个自治系统。

末端自治系统(stub AS)是指仅与一个其它自治系统相连的自治系统。如果该AS的路由策略与其上游的AS完全相同,这说明该AS其实浪费了一个ASN。这种情况更常发生在互联网路由环境中:表面上的末端自治系统可能实际上与其它未被公共路由显示服务器(参见en:Looking Glass Servers)反映出来的AS之间存在着对等互联关系。具体的例子如(美国)财政和交通部门的专用互联网络。

中转自治系统是指一个自治系统通过自己来为几个隔离开的网络提供连通服务。即,网络A可通过作为中转AS的网络B来连接到网络C。所有的ISP都是这类的中转自治系统,因为这本是就是它们的根本业务目的。因为我们认为ISP是在向客户网络“贩售中转服务”,所以使用中转自治系统这个术语来表示。

### 计算机网络中自治系统AS)的概念 互联网由众多自治系统组成,这些系统构成了网络的基础单元。每个自治系统是一个独立运作并自主决定与其他实体交换流量的实体[^1]。这意味着自治系统能够自行管理内部结构和策略,并对外部世界提供一致的服务接口。 #### 自治系统的构成要素 为了成为有效的自治系统,该系统需满足一定条件: - **唯一标识**:每一个自治系统都有一个全球唯一的编号称为AS ID,在不同地区可能有不同的分配范围。 - **统一管理**:通常情况下,同一自治系统内的所有组件都在单一管理机构下操作;这包括但不限于企业、大学校园或政府机关等组织形式。 - **路由一致性**:在单个自治系统内往往采用相同的路由选择机制和技术标准来进行通信路径规划工作[^3]。 ### 自治系统的作用 自治系统的主要功能在于管理和优化本地及跨区域的数据传输过程。具体来说: - 向外部宣告可达性信息&mdash;&mdash;即告知相邻节点如何到达本区域内目标位置的最佳方式; - 实现高效可靠的包转发服务&mdash;&mdash;确保来自任何地方的信息都能够迅速准确地抵达目的地; - 支持灵活多样的互连模式&mdash;&mdash;既可以作为终端接入点也可以充当骨干传输链路的一部分参与更大规模的互联架构构建活动之中[^5]。 ```python # Python伪代码展示简单的BGP会话建立逻辑 def establish_bgp_session(as_number, neighbor_ip): bgp_config = { "local_as": as_number, "neighbor": neighbor_ip, "remote_as": get_remote_as_from_neighbor(neighbor_ip), # 更多配置项... } configure_router(bgp_config) establish_bgp_session(65000, '192.0.2.1') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值