高级路由

策略路由背后的概念

Linux内核在默认情况下使用两张路由表:一张表用于本地路由,另一张可以由管理员来配置。如果内核编译支持策略路由,那么可以有多大255张不同的、相互独立的路由表。策略路由背后的主要思想是允许用户除了可以根据目的IP地址配置路由外,还可以根据其他多个参数来配置路由。

策略路由查找

  1. 根据配置策略选择要用的路由表,这个额外任务不可避免地增加了路由查找时间
  2. 从选择的路由表中查找路由

选择路由表

内核可以给予以下参数作为在选择路由表时所用的策略:

源IP地址and/or目的IP地址

入口设备:在某些情况下,接收设备可能是比源IP地址更适合的路由策略标准

    1. 当同一个设备上有多个,范围不连续的源IP地址,我们希望将这些地址与同一张路由表相关联。这时并不对每个不同范围的IP地址添加一条规则,而是基于设备使用一条规则来简化配置
    2. 当选择路由表时,针对物理网络拓扑要比流量来源做更多处理时。

TOS:与基于流量的源地址与目的地址参数相比,使用TOS参数有助于划分流量类型

Fwmark,这是表示Linux防火墙威力的一个特性,可以根据防火墙分类来定义策略路由规则。当然,要使之成为可能,防火墙就要在流量进入路由系统之前进行分类。

多路径路由背后的概念

多路径是指管理员可以为一条路由的目的地指定多个下一跳。大多数时间内,一个路由器只用一个ISP,当由于某种原因第一个ISP失效时转向另一个ISP。多路径的另一个应用是保持一条路径为备用状态,只有在带宽需求超过预定的阀值时才启用该路径。Linux允许管理员通过weight关键字为每一个下一跳分配一个权值,从而为选择算法提供了很大的灵活性。下一次被选择的次数与其权值对所有其他下一跳的权值的比例成正比。如果所有的下一跳分配的权值相同,那么,该算法就成为所谓的等价多路径算法。但要注意,在下一跳之间分配流量的粒度不是以封包来衡量,而是以路由缓存项的数量来衡量。

选择下一跳

根据加权循环算法来选择下一跳

支持多路径缓存

随机算法

加权随机算法

循环法

设备循环法,设备循环算法就是要将流量在一组设备之间平均分配,而不是基于每条多路径路由来分配流量。对配置了使用该算法的路由项,与这些路由项匹配的流量被视为单个流量集,它们在设备间平均分配。注意,虽然一个纯粹的循环算法假定转发路径中的瓶颈是目标路由器的CPU,但设备循环算法目标是优化设备带宽的使用,以及降低目标CPU的重要性。

基于流,基于连接和基于封包的流量分配

基于流per flow

根据每个源IP地址和目的IP地址的唯一组合来选择下一跳。所以,在主机之间存在多个连接时,将只能选择一个下一跳

基于连接Per connection

每当启动一个新连接时选择一个下一跳。这意味着在主机之间的多个连接可以分配给多个下一跳。标识一个连接一般需要5个元素。

基于封包Per Packet

根据每个封包来选择下一跳。属于相同连接的封包可以分配给多个下一跳。

为了使像TCP等面向连接的协议工作正确,需要基于连接和基于流来分配流量。而基于封包的流量分配能与类似用户数据报协议等无连接协议配合很好。

与其他内核子系统的交互

 

image

基于路由表的分类器

在流量控制子系统可用的许多分类器中,有一种称为基于路由表的分类器,它能够基于realm来将路由分类。Realm是可以在策略和路由上指定的数字标签。每一条路由和每一个策略最多可以指定两个realm:入口realm,出口realm。

image

策略路由与基于防火墙的分类器

Netfilter防火墙软件可以根据自己的过滤标准将流量分类,判断是否需要将封包丢弃或毁坏。防火墙也可以配置为使用其功能强大的分类引擎将封包简单分类,只是为其他内核子系统提供一个服务。防火墙在网络协议栈中有多个钩子。如果其中一个钩子放置了一个标签后,路由子系统或流量控制子系统正在运行,这些子系统可以看到并使用该标签。

路由协议守护进程

可以通过以下三种方式将路由插入到内核的路由表中:

  1. 通过用户命令静态配置(ip route, route)
  2. 通过路由协议(BGP,RGP,OSPF),这些协议的实现是作为用户空间的路由守护进程。
  3. 由于配置不理想而由内核接收和处理的ICMP重定向消息

共享介质

当配置为不同子网的主机被连到同一个LAN时,IP路由文档中称之为共享介质。这个术语是指网络配置而不是设备能力。

转载于:https://my.oschina.net/longscu/blog/62033

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值