路由扩散技术

GFW的重要工做方式之一是在网络层的针对IP的封锁。事实上,GFW采用的是一种比传统的访问控制列表( Access Control List,ACL)高效得多的控制访问方式——路由扩散技术。分析这种新的技术以前先看看传统的技术,并介绍几个概念。

  访问控制列表(ACL)redis

  ACL能够工做在网络的二层(链路层)或是三层(网络层),以工做在三层的ACL为例,基本原理以下:想在某个路由器上 用ACL控制(好比说是切 断)对某个IP地址的访问,那么只要把这个IP地址经过配置加入到ACL中,而且针对这个IP地址规定一个控制动做,好比说最简单的丢弃。当有报文通过这 个路由器的时候,在转发报文以前首先对ACL进行匹配,若这个报文的目的IP地址存在于ACL中,那么根据以前ACL中针对该IP地址定义的控制动做进行 操做,好比丢弃掉这个报文。这样经过ACL就能够切断对于这个IP的访问。ACL一样也能够针对报文的源地址进行控制。若是ACL工做在二层的话,那么 ACL控制的对象就从三层的IP地址变成二层的MAC地 址。从ACL的工做原理能够看出来,ACL是在正常报文转发的流程中插入了一个匹配ACL的操做, 这确定会影响到报文转发的效率,若是须要控制的IP地址比较多,则ACL列表会更长,匹配ACL的时间也更长,那么报文的转发效率会更低,这对于一些骨干 路由器来说是不可忍受的。算法

  路由协议与路由重分发服务器

  而GFW的网络管控方法是利用了OSPF等路由协议的路由重分发(redistribution)功能,能够说是“歪用”了这个原本是正常的功能。网络

  动态路由协议spa

  说路由重分发以前先简单介绍下动态路由协议。正常状况下路由器上各类路由协议如OSPF、IS-IS、BGP等,各自计算并维护本身的路由表,全部 的协议生成的路由条目最终汇总到一个路由管理模块。对于某一个目的IP地址,各类路由协议均可以计算出一条路由。可是具体报文转发的时候使用哪一个协议计算 出来的路由,则由路由管理模块根据必定的算法和原则进行选择,最终选择出来一条路由,做为实际使用的路由条目。server

  静态路由对象

  相对于由动态路由协议计算出来的动态路由条目,还有一种路由不是由路由协议计算出来的,而是由管理员手工配置下去的,这就是所谓的静态路由。这种路由条目优先级最高,存在静态路由的状况下路由管理模块会优先选择静态路由,而不是路由协议计算出来的动态路由。路由

  路由重分发get

  刚才说到正常状况下各个路由协议是只维护本身的路由。可是在某些状况下好比有两个AS(自治系统),AS内使用的都是OSPF协议,而AS之间 的 OSPF不能互通,那么两个AS之间的路由也就没法互通。为了让两个AS之间互通,那么要在两个AS之间运行一个域间路由协议BGP,经过配置,使得两个 AS内由OSPF计算出来的路由,能经过BGP在二者之间重分发。BGP会把两个AS内部的路由互相通告给对方AS,两个AS就实现了路由互通。这种状况 就是经过BGP协议重分发OSPF协议的路由条目。io

  另一种状况,管理员在某个路由器上配置了一条静态路由,可是这条静态路由只能在这台路由器上起做用。若是也想让它在其余的路由器上起做用,最 笨的 办法是在每一个路由器上都手动配置一条静态路由,这很麻烦。更好的方式是让OSPF或是IS-IS等动态路由协议来重分发这条静态路由,这样经过动态路由协 议就把这条静态路由重分发到了其余路由器上,省去了逐个路由器手工配置的麻烦。

  GFW路由扩散技术的工做原理

  前面说了是“歪用”,正常的状况下静态路由是由管理员根据网络拓扑或是基于其余目的而给出的一条路由,这条路由最起码要是正确的,能够引导路由 器把报文转发到正确的目的地。而GFW的路由扩散技术中使用的静态路由实际上是一条错误的路由,并且是有意配置错误的。其目的就是为了把原本是发往某个IP 地址的报文通通引导到一个“黑洞服务器”上,而不是把它们转发到正确目的地。这个黑洞服务器上能够什么也不作,这样报文就被无声无息地丢掉了。更多地,能够在服务器上对这些报文进行分析和统计,获取更多的信息,甚至能够作一个虚假的回应。

  评价

  有了这种新的方法,之前配置在ACL里的每条IP地址就能够转换成一条故意配置错误的静态路由信息。这条静态路由信息会把相应的IP报文引导到 黑洞 服务器上,经过动态路由协议的路由重分发功能,这些错误的路由信息能够发布到整个网络。这样对于路由器来说如今只是在根据这条路由条目作一个常规报文转发 动做,无需再进行ACL匹配,与之前的老方法相比,大大提升了报文的转发效率。而路由器的这个常规转发动做,倒是把报文转发到了黑洞路由器上,这样既提升 了效率,又达到了控制报文之目的,手段更为高明。

  这种技术在正常的网络运营当中是不会采用的,错误的路由信息会扰乱网络。正常的网络运营和管控体系的需求差异很大,管控体系须要屏蔽的IP地址 会越 来越多。正常的网络运营中的ACL条目通常是固定的,变更不大、数量少,不会对转发形成太大的影响。而这种技术直接频繁修改骨干路由表,一旦出现问题,将 会形成骨干网络故障。

  因此说GFW是歪用了路由扩散技术,正常状况下没有那个运营商会把一条错误的路由信息处处扩散,这彻底是歪脑筋。或者相对于正常的网络运营来 说,GFW对路由扩散技术的应用是一种小聪明的作法。正常的路由协议功能被滥用至此,并且很是之实用与高效,?朝在这方面真是人才辈出。

  测量

  GFW动态路由系统归纳起来就是:人工配置(c)样本路由器(sr)的静态路由(r),向各ISP的出入口路由器(or)扩散此路由(r),将特定网络流量转到黑洞服务器(fs)进行记录。所以能够进行测量的项目有:

  (r)被封锁的IP列表:能够经过协做报告机制收集用户报告,也可经过扫描着名站点得到;(传言:GFW动态路由系统的容量是几十万条规则)

  (or)受到GFW影响的ISP出入口路由器:经过在广域多ISP内的节点协做traceroute能够测得;

  (or)-(c)从关键词生效到动态路由生效的延迟:经过创建蜜罐并提交给GFW而后观察其响应;

  (fs)黑洞服务器的健壮性:用伪源噪音流量对黑洞服务器进行填充,观测其响应。

相关文章
相关标签/搜索