1.IP编址与地理分布-物理与逻辑的边界
IP路由的效率和路由器以及主机的地理分布关系重大,地理分布零散带来的后果就是路由表的庞大,因为在这个无线核心网络还远未实现的时期,网络的本质就是一根根的线缆连接着的一台台的设备,同时在这个总线型架构早已被淘汰的年代,一根线缆只能连接两台设备,一根线缆构成了一个物理网络或者多根线缆构成了一个同一网段的链路层,而线缆是实实在在铺设在地面或者地下的,虽然CIDR已经使路由表的条目大大减少,地理分布的不均衡还是会造成路由表数目的上升。互联网初期,美国人使用类似老鼠打洞的方式分配IP地址,结果搞的整个互联网千疮百孔,IP地址一旦分配出去,再收回就很难了,这种无意的失误实则在和CIDR唱反调,也可以说CIDR在给这种随意的分配行为擦屁股。
注:CIDR更加灵活地适应地理环境,决策权可以代理给各个地理区域的ISP,最大的益处就是减少了Internet路由表的条目数量
2.BGP和IGP有效的规定了人为策略和纯技术策略的边界
如果你上BGP的官网看一下,就会发现很多的图表,这些图表类似股票期货的K线图那样动态更新,实时地反映着整个全球网络的动态信息,这些信息包括某核心路由器上的路由表项条目,全球IP地址分布等,仔细分析这些图,会发现有很多看起来很怪异的现象,比如:一个很大的运营商为何只持有少量的IP地址;一个很小的机构,为何IP路由条目会如此之多;诸如此类。实际上,全球网络被划分成了一个个的AS,在AS内部,那是纯技术的领域,大量耳熟能详的协议有条不紊的运行的,比如OSPF,比如EIGRP,然而在AS之间,那是另一个更高一些的层次,你可以把一个AS看作是一个路由器,所有的AS之间的关系正如同一个网络一样,可是在这里,纯技术起到的作用将减到最少,这里更多的是人为的政策上的控制,BGP的复杂性不是它在技术实现上有多么复杂,而是它内置了N多个属性,这些属性全都是要被人来配置的,如何根据需求来配置这些属性就是困难所在。互联网的控制权上升到不能再上升的地方,那就是国家政府机关的政策,IGP的运行只是在一个足够可信的环境里面运行,这里,策略比较简单,看起来的最短路径实际上也真的是最短路径。
在BGP中,看起来的最短路径可能是不能通过的。举一个简单的例子,大连到东京的距离看起来很近,大连到昆明的距离看起来很远,可是后者却是轻易可达的,而前者却不是那么容易。
突然想起Open×××,IPv6,也和BGP一样可以动态推送网络前缀,路由等信息,而这些基本和BGP没有关系,×××基本都是在一个机构内运行,IPv6的动态配置基本也是机构内部。这些和BGP的配置方式一致,对于Open×××来讲,安全本身就有很多策略性的东西,因此英雄所见略同,而对于IPv6的自动配置,那纯粹是为了自动化,难道你没发现IPv6主机接收的配置都是类似DHCP那样无条件接受的吗?
3.第三层和第二层的边界
在上海traceroute过N多美国东海岸以及欧洲的路由器,你将会发现一个奇怪的现象,数据包在国内的跳数比在国外的总数还要多。如果你对骨干网有一定的了解,就不难解释这个现象,同时也就知道了为何国内网速会很慢。traceroute无法展现链路层,然而骨干网(Internet接入层专线,大型ISP汇聚层,核心层)几乎使用了很少的路由器,大多数都是二层WAN交换机,比如ATM交换机,帧中继交换机,以及2.5层的MPLS交换机,这些设备都能很好的和光链路比如OC-X,SDH等进行对接,在如此高速的骨干网上放一个三层路由器,无疑等于掐住了脖子。构建高速网络实际上就是构建一个高速链路层。在得到了灵活的寻址方案后,需要一种高速灵活的转发方案。三层路由真的是一套灵活的寻址方案,AS内IGP,AS间BGP,可是三层路由却不是一套高效的转发方案,链路层专注于转发而不是寻址,我们可以看到,对于NBMA链路层,寻址方案是在通信前就配置好的,对于BMA链路层,寻址也是通信前就通过arp搞定的,那么对于第三层IP层,实际上也能借鉴链路层的方案,事先建立转发表,类似Cisco的CEF方案。另外MPLS是一种穿插于链路层和网络层之间的一套独立的解决方案,十分好!