第三十一章:路由:高级路由

策略路由:

策略路由的主要思想是允许用户除了可以根据目的IP地址配置路由外,还可以根据其他多个参数来配置路由。当使用策略路由时,为目的地址查找路由可以分为两个步骤:根据策略选中要用的路由表;从选中的路由表中查找路由。当然,在执行这两步时,总是先在路由缓存中寻找。

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

    源IP或/与目的IP。

    入口设备。

    TOS。

    Fwmark:这是表示Linux防火墙威力的一个特性,可以根据防火墙分类来定义策略路由规则。

以上参数可以任意组合来确定路由策略。

多路径路由:

多路径路由是指管理员可以为一条路由的目的地址指定多个下一跳。默认情况下,路由缓存不支持多路径,但是从内核2.6.12开始,有一个选项可以使用户激活缓存支持多路径,而且允许管理员针对一条多路径路由,选择一个算法在此路由的不同下一跳之间分配流量。

基于路由表的分类器:

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

配置策略realm:

    ip rule add from 10.0.1.0/24 realm 128:将源于10.0.1.0/24子网的所有流量与策略目的地realm128相关联。

    ip rule add from 10.0.1.0/24 to 10.0.2.0/24 realms 64/128:将源于10.0.1.0/24子网且目的为10.0.2.0/24子网的所有流量与策略源64和策略目的地128关联。

配置路由realm:

    ip route add 10.0.1.0/24 via 10.0.0.3 realms 100:将目的地为10.0.1.0/24子网且通过网关地址10.0.0.3转发的流量与目的地realm100相关联。

    ip route add 10.0.1.0/24 via 10.0.0.3 realm 100/200:将目的地为10.0.1.0/24子网且通过网关地址10.0.0.3转发的流量与源realm100和目的地realm200相关联。

计算路由标签realm:

上图中,策略P1,P2配置了源realm,没有配置目的realm。路由R1,R2没有配置realm。

从A(10.0.1.100)到B(10.0.2.200)。路由子系统为该封包查找路由时,计算路由标签过程如下:

    路由查找返回R1和P1,因为路由R1没有配置realm,所以使用策略P1上的源realmA;

    因为没有配置目的realm,内核计算从10.0.2.200到10.0.1.100的反向路由,这次路由查找返回R2和P2,找到源realmB,所以realmB被用作转发路径上的目的realm。

最终,路由标签初始化为源realmA和目的realmB,当流量稍后通过流量控制层时,Qos层可以使用这两个realm来将封包正确分类。

路由协议守护进程:

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

    通过用户命令(ip route和route)。

    通过路由协议,例如边界网关协议BGP,外部网关协议RGP,OSPF协议等动态配置。这些协议的实现是作为用户空间的路由守护进程。

    内核接收和处理的ICMP重定向消息。

每一个守护进程在用户空间维护自己的路由表,路由选择时并不是直接使用这些路由表,而是用内核中存储的路由表。但是,守护进程可以将自己路由表中的路由项插入到内核路由表中。

    

Verbose监控:

当内核支持verbose监控选项并且激活时,在输入封包的源ip或目的ip地址可疑或无效时,内核将在控制台上输出警告信息。这些信息每5秒输出一条,以避免潜在的DoS攻击。

共享介质:

当配置为不同子网的主机被连到同一LAN时,IP路由文档中称之为共享介质。

如上图所示,在连接到同一LAN上的主机被配置为三个不同的子网,两个路由器RT1和RT2被用于连接IP子网。

子网10.0.0.0/24内的主机将RT1认定为自己的默认网关,通过这个网关可以访问子网10.0.1.0/24。但是这样效率较差,因为从图中可以看到,所有的子网在链路层上是直接相连的。路由子系统使用ICMP RERDIRECT机制克服了这种缺陷。当10.0.0.0/24内的主机A想要与子网10.0.1.0/24内的主机B通信时,A查找路由表,发现可以通过RT1将消息转发给B,于是RT1会收到A的消息,但RT1意识到,A和B可以直接通信,于是它会发送一个ICMP REDIRECT告诉A,有一个更好的路径可以访问B。

但有时候,使用ICMP REDIRECT消息而造成的捷径可能并非我们所期望的,因为这些捷径会绕过某些路由器,而我们在这些路由器上配置了一些流量策略。

反向路径过滤:

Linux的默认行为认为非对称路由是可疑的,因此会丢弃那些通过非对称路径返回的封包。可以通过/proc来调整每个设备的这种行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值