For all the harping I do on this blog about IPv4 address depletion and the need to prepare yourselves for IPv6, there is another number resource that is also being quickly depleted, and that I haven’t written about before: the 2-byte autonomous system numbers (ASNs).
16位数字空间为您提供65,536个可能的数字(如数字0 - 65535)。其中,其中的IANA储量1,026:64512 - 65534用于私有,可重用ASN(类似于私有RFC1918 IPv4地址)以及其他一些和65535等,与本文重要的其他人,23456.目前49,150 asns已经分配了公共池,所以有15,360名可用ASN剩余:约23.8%的公共池。
分析2字节ASN的分配率显示可用池将在2011年中期耗尽。近距离接近我们将用完IPv4地址的日期。
幸运的是,关于ASN耗尽的令人担忧的原因远远不如IPv4耗尽,有两个原因:
与IP地址不同,任何想要连接到IP网络的人所必需的,只对运行BGP的网络时,自动系统号码物质。
- 正如IPv6创建以解决IPv4问题,通过提供大小的地址大小,已创建4字节ASN以解决2字节ASN耗尽问题。但是,由于IPv4和IPv6之间缺乏互操作性,到IPv6的过渡可以复杂,但过渡到4字节ASN的转换更简单。
这篇文章描述了4字节ASN的格式,它如何与2字节ASN互操作,以及您需要做什么(如果有的话)为他们准备网络。
4字节ASN格式
4字节ASN提供232.或者4,294,967,296自治系统编号范围为0到4294967295.首先要注意到这些数字的首先是它们包括所有较旧的2字节ASN,0到65535.这极大地有助于使用2字节ASN的自治系统之间的互操作性那些使用4字节ASN的人。(关于IPv6的OFT-HEATD投诉是,如果已保留有43亿IPv6地址作为现有IPv4地址的代表,则可以更容易地支持与IPv4的互操作性,但这是另一个故事。)
0到65535之间的4字节ASN称为a可口ASN,因为它可以在仅2字节中表示;前面16位是所有零的每个案例。
令人担忧的是,32位ASN可能难以编写和管理,有三种方式表示4字节ASN:
·asplain.是ASN的简单十进制表示,从0到4294967295。
·Asdot +.将数字达到低阶和高阶16位值,由点分隔。所有较旧的2字节ASN可以在低位值中表示,高阶值设置为0.因此,例如,65535为0.65535。一个以上,65536,超出了单独的低阶范围内的值,因此表示为1.0。65537将是1.1,65680为1.144,等等。您可以通过从中减去65,536的倍数来计算低阶和高阶值asplain.ASN的表示,具有代表65536的倍数的高阶值。然后,ASN 327700为5.20:5倍65536加20。最大的ASN,4294967295,65535倍,65535次,加上65535次。
·asdot.是Asplain和Asdot +的混合物。在0 - 65535的2字节范围内的任何ASN都写入ASPLAIN(所以65535写入“65535”),并且在该范围内的任何ASN写入ASDOT +(所以65536写入“1.0”)。
asplain显然是理解新ASN的最直接的方法,尽管较大的数字可能会令人不安地写作,因此在书面文档或路由器配置中易于打印错误。
Asdot +更简单地写入,但从其简单的十进制等价物中难以计算。如果您定期使用这种格式,它可能是值得笔记的简单脚本,这对您进行了处理,以防止计算错误。
Asdot可能看起来有限。毕竟,写出“0.3657”而不是写“3657”并没有任何难以写入“3657”,当你走到65535以上时,需要做一些计算的必要性;Asdot没有什么可以帮助你的。但是,有一个微妙之处。区域编号分配机构 - 区域互联网注册机构或RIRS - 区分16位数字,该数字是一个较旧的2字节ASN和映射的4字节ASN(再次,第一个16的32位ASN集合位为所有0)。因此,“3657”是2字节ASN,“0.3657”是一个4字节ASN。
当然,这使我们能够在RIRS的策略用于分配4字节ASN的情况下简要介绍。
ASN分配政策
所有五个RIR(AFRINIC,APNIC,ARIN,LACNIC和成熟NCC)对4字节ASN具有相同的分配策略:
·自2007年1月1日以来已有4字节ASN。如果您要求ASN,则为默认分配,如果您为您提供2字节ASN,并且只有特定请求,只会分配4字节ASN。
·从2009年1月1日开始(是的,从现在开始大约一个月!)策略反转:4字节ASN将是默认值。您仍然可以获得2字节的ASN,但只有您专门请求它。
·一年后,2010年1月1日,所有ASN分配将是4字节。您接收的ASN可能是0.xx的表单(其中高阶16位全部0并且低阶16位不是),但RIR将在这些数字和任何其他4字节之间进行区分asn。虽然它不会以任何方式影响您的网络,但在RIR的眼中,您可能多年来一年的16位ASN将是一个邮报32位ASN。例如,2010年初,第3级通信'AS3356成为RIR的眼中,0.3356。
这些政策提出了几个问题:
·如果您计划在2009年开始申请新的ASN分配,您需要做什么来准备它?
·新的4字节ASN如何使用2字节ASN与旧的自治系统互操作?
·如果您有现有的2字节ASN,则有任何变化吗?
ASN在BGP中的角色
简要介绍如何BGP.使用自主系统编号将有助于了解新格式如何影响BGP网络。大多数人都知道BGP的基础;如果你这样做,请随时跳跃。
与任何IGP(OSPF,IS-IS,EIGRP和RIP)不同,BGP的目的是在单独的管理控制下的域之间路线 - 即彼此自主的系统。如果您要在这些自主路由域之间进行路线,您需要某种方式来识别单个屁股。该标识符是自主系统编号。
ASN在BGP中有两个基本函数:
首先,它有助于BGP确定目的地的最短路径。当BGP在更新消息中向邻居发出路由时,它会附加几个路径属性到路线。当路由器向同一目的地学习多个BGP路由时,BGP决策过程在优先顺序中评估路由的路径属性以确定最优选的路由。(可以在所有各种方法中添加,删除或更改BGP路径属性以影响BGP决策过程。这是BGP路由策略的基础。)连接到每个BGP路由的这些属性之一称为AS_Path。当路由器在其自己的邻居中向邻居宣布到另一个邻居时,它将其本地ASN放在AS_Path中。随着路由向后续自治系统宣传,每个边区路由器将其自己的ASN添加到属性。然后,AS_Path成为将路径返回到目标的ASN列表。路由器可以通过选择AS_Path中列出的最少ASN的路由来选择最短路径。
第二ASN函数是一个非常简单的循环避免机制。因为路由器在另一个循环的路由向邻居广告路由之前将其ASN添加到AS_PATH上 - 即,随后向其宣传返回相同的路由,因此通过检查AS_PATH可以轻松检测到与之宣传返回相同。如果路由器在邻居发布的路由的AS_PATH中列出了自己的ASN,则它会丢弃路由。
ASN还会显示在称为聚合器的路径属性中。概述了多个路由(聚合)时,路由详细信息可能会丢失。可以将聚合器属性添加到聚合路由以指示执行聚合的路由器的路由器ID和ASN。此属性不会影响BGP决策过程,但它对于追溯汇总路由可能很有用。
使用ASN的第三个属性是社区。此可选属性可帮助您在适用于大量路由时管理路由策略;使用许多方法,您可以将一个或多个社区属性分配给前缀,然后将路由策略应用于社区而不是单个路由。例如,您可能会定义名为cutt_routes的Communitys属性,然后将该属性添加到所有客户的所有路由中。然后在您的网络中的任何地方需要将策略应用于所有客户路由,您可以将策略应用于具有Customer_Routes属性的路由,而不是必须识别每个前缀(并且可能会在客户路线中使用所有前缀列表添加或删除)。
Community属性是32位值,其中前16位是ASN,最后16位由您被任意分配给您想要的任何含义。
然而,这里的重要点并不是那么多的聚合器或社区的函数,但它们类似于AS_Path,格式化以携带2字节ASN;因此,必须调整这些属性的格式以携带较大的32位ASN。
除了这三条路径属性外,BGP打开消息还引用了ASN,在一个名为我的自治系统的16位字段中。BGP在邻居之间的TCP会话之上运行;建立TCP会话后,邻居使用已打开消息来协商BGP会话。每个邻居都表示其路由器ID,ASN,它正在运行的BGP版本(始终在现代网络中的版本4),其保持时间(在关闭会话之前从邻居等待keepalive的时间)以及可能一些可选参数。
bgp比在此描述的内容更多。对此讨论很重要的是,有四个BGP数据实体携带ASN:
·AS_PATH属性;
·聚合器属性;
·comunites属性;和
·打开的消息
必须考虑到这些实体中的每一个,不仅可以将它们调整为4字节ASN,而且还要使用旧的BGP实现可互操作的适配,该实现仅了解2字节ASN。
邻居互操作性
为简单起见,我们会打电话支持4字节ASN的BGP实现new_bgp,以及只支持2字节ASNS Old_BGP的遗留BGP实现。
新_BGP实现的第一个要求是发现邻居是否是new_bgp或old_bgp。它通过使用来实现这一点BGP能力广告打开BGP会话时。除了向新_BGP广告本身之外,它还包括其在能力广告中的4字节ASN。
如果邻居响应它也是新的扬声器,则邻居在其自己的能力广告中包括其4字节ASN。因此,两个新姓名邻居可以在不使用打开消息中的2字节我的自主系统字段中互相通知其4字节ASN。(如果邻居是new_bgp但具有2字节的ASN或含有4字节ASN,它们仍然可以在电容广告之外仍然可以将ASN放在我的自主系统字段中。)
如果邻居是旧的BGP,它要么响应它不支持4字节ASN功能,或者根本没有响应能力广告。在这种情况下,New_BGP邻居仍然可以与旧BGP邻居进行会话,但不能宣传其4字节ASN。邻居不明白。相反,New_BGP使用Reserved 2字节ASN,23456,称为AS_TRANS(由于其2-3-4-5-6序列,as_trans很容易被铭记)。这是数字添加到我的自主系统字段的打开消息。因为AS_TRANS保留,所以没有Old_BGP扬声器可以用它作为自己的ASN;只有新_BGP扬声器可以使用它。
那么,互操作性凝视,是因为New_BGP扬声器“知道”它的邻居是一个旧的扬声器并适应它;Old-BGP扬声器简单地使用旧版BGP规则继续。
路径属性互操作性
因为New_BGP发言者知道其邻居是否是New_BGP或Old_BGP,它知道在向邻居广告路由时要遵循哪些规则。