DCN–ROUTE–002–路由基础.ppt
文本预览下载声明
* 如果说路由表里面存在多个路由条目,它们的目的网段相同、AD值相同、Metric值也相同,显然他们的优先权完全相等,怎么办? 路由器为了公平起见,只能将用户数据“平分”处理,也就是这里我们要介绍的负载均衡机制。要注意的是:负载均衡并不是说把传输的数据流量等分成N份,然后平均放在N条线路上传输。 我们都知道,网络上的数据流在传输时是以IP packet为基本单位的。同时,数据包的大小也是不尽相同的,小到64bytes,大到1518bytes。即便每条线路上的IP数据包数量相等,最后计算流量的时候也是不同的; 另外,负载均衡的还分为两种方式:Per packet和Per destination,这两种方式在进行流量均衡时,对于数据包的流量会产生非常大的影响,所以我们要重点介绍一下。要理解他们的差异还需要从路由器的基本工作原理来讲起: 路由器在转发IP数据包时,为了提高转发效率,尤其是同类型IP数据包的速率,引入了路由缓冲ip route-cache的机制。 一个IP包经过路由器的CPU处理(查询路由表并进行转发)之后,会在入口的缓冲中生成一条cache,如果后续还有收到同类型的数据包需要转发,那么CPU只要直接查cache,不需要检查路由表,这样效率就提高了。 同时,由于cache缓冲的容量总是有限的,不可能无限制的存储,所以给每个cache条目增加一个timeout时间是非常必要和实际的做法。这样,长期不用的cache就会自动被删除。 上面截图就是一个ip route-cache的实例: 可以看到,其中包括了源IP地址、目的IP地址、上次查询路由表的得到的出口、及其对应的next-hop地址等。 查ip cache的方法和查路由表的方法是有差别的,前者必须匹配源和目的地址,而后者只需匹配目的IP地址即可。 * 如果说路由表里面存在多个路由条目,它们的目的网段相同、AD值相同、Metric值也相同,显然他们的优先权完全相等,怎么办? 路由器为了公平起见,只能将用户数据“平分”处理,也就是这里我们要介绍的负载均衡机制。要注意的是:负载均衡并不是说把传输的数据流量等分成N份,然后平均放在N条线路上传输。 我们都知道,网络上的数据流在传输时是以IP packet为基本单位的。同时,数据包的大小也是不尽相同的,小到64bytes,大到1518bytes。即便每条线路上的IP数据包数量相等,最后计算流量的时候也是不同的; 另外,负载均衡的还分为两种方式:Per packet和Per destination,这两种方式在进行流量均衡时,对于数据包的流量会产生非常大的影响,所以我们要重点介绍一下。要理解他们的差异还需要从路由器的基本工作原理来讲起: 路由器在转发IP数据包时,为了提高转发效率,尤其是同类型IP数据包的速率,引入了路由缓冲ip route-cache的机制。 一个IP包经过路由器的CPU处理(查询路由表并进行转发)之后,会在入口的缓冲中生成一条cache,如果后续还有收到同类型的数据包需要转发,那么CPU只要直接查cache,不需要检查路由表,这样效率就提高了。 同时,由于cache缓冲的容量总是有限的,不可能无限制的存储,所以给每个cache条目增加一个timeout时间是非常必要和实际的做法。这样,长期不用的cache就会自动被删除。 上面截图就是一个ip route-cache的实例: 可以看到,其中包括了源IP地址、目的IP地址、上次查询路由表的得到的出口、及其对应的next-hop地址等。 查ip cache的方法和查路由表的方法是有差别的,前者必须匹配源和目的地址,而后者只需匹配目的IP地址即可。 * 默认情况下,出于提高转发效率的目的,route-cache总是打开的。 如上图,80这个IP地址去ping 11,第一次ping的数据包会在cache表中留下2个条目。(包括echo request和reply两个方向的IP报文)当第二个ping/IP(跟第一个的IP头相同)包过来时timeout还未超时(默认为80秒),所以CPU直接查询cache进行转发,显然其出口还是F0/0。 以此类推,如果有一些列的数据包,他们具有相同的源IP地址和相同的目的IP地址,且相互之间的时间间隔都不超过cache的timeout时间,他们在转发时,命中的出接口是一致的。这样的数据包序列我们称之为“流”。--这跟internet上流行的流媒体不是一个概念。 注意: 1、route-cache-timeout默认为80秒,可以根据需要调整 2、当一个“流”的第一个数据包经过CPU查询路由表时,如果有多条路由可选,那么路由器选中的出接口是随机的。该流后续的数据包转发时,根据cache中的DstIf,而不是路由表。即便
显示全部