Linux策略性由应用及深入分析
策略性是指对于IP包的由是以网络管理员根据需要定下的一些策略为主要依据进行由的。例如我们可以有这样的策略:“所有来直自网A的包,选择X径;其他选择Y径”,或者是“所有TOS为A的包选择径F;其他选者径K”。
CiscoIOS)从11.0开始就采用新的策略性由机制。而Linux是在内核2.1开始采用策略性由机制的。策略性由机制与传统的由算法相比主要是引入了多由表以及规则的概念。
传统的由算法是仅使用一张由表的。但是在有些情形底下,我们是需要使用多由表的。例如一个子网通过一个由器与相连,由器与有两条线相连,其中一条的速度比较快,一条的速度比较慢。对于子网内的大多数用户来说对速度并没有特殊的要求,所以可以让他们用比较慢的由;但是子网内有一些特殊的用户却是对速度的要求比较苛刻,所以他们需要使用速度比较快的由。如果使用一张由表上述要求是无法实现的,而如果根据源地址或其它参数,对不同的用户使用不同的由表,这样就可以大大提高由器的性能。
规则是策略性的关键性的新的概念。我们可以用自然语言这样描述规则,例如我门可以指定这样的规则:
规则一:“所有来自192.16.152.24的IP包,使用由表10,本规则的优先级别是1500”
192.168.1.1 路由器规则二:“所有的包,使用由表253,本规则的优先级别是32767”
我们可以看到,规则包含3个要素:
什么样的包,将应用本规则(所谓的SELECTOR,可能是filter更能反映其作用);
符合本规则的包将对其采取什么动作(ACTION),例如用那个表;
本规则的优先级别。优先级别越高的规则越先匹配(数值越小优先级别越高)。
策略性由的配置方法
传统的
这里简单介绍策略性由的配置方法,以便能更好理解第二部分的内容。详细的使用方法请参考AlexeyKuznetsov写的ip-cfref文档。策略性由的配置主要包括接口地址的配置、由的配置、规则的配置。
对于接口的配置可以用下面的命令进行:
例如:
Linux最多可以支持255张由表,其中有3张表是内置的:
表255本地由表(Localtable)本地接口地址,地址远程盗取ADSL帐号竟如此简单,已及NAT地址都放在这个表。该由表由系统自动,管理员不能直接修改。
表254主由表(Maintable)如果没有指明由所属的表,所有的由都默认都放在这个,一般来说华为认证考试:家用由器有缺陷,旧的由工具(如route)所添加的由都会加到这个表。一般是普通的由。
表253默认由表(Deulttable)一般来说默认的由都放在这张表,但是如果特别指明放的也可以是所有的网关由。
路由配置命令的格式如下:
如果想查看由表的内容,http 192.168。可以通过命令:
第一条命令是向主由表(maintable)即表254添加一条由,由的内容是设置192.168.0.4成为网关。
在多由表的由体系里,所有的由的操作,例如网由表添加由,或者在由寻找特定的由,需要指明要操作的由表,所有没有指明由表,默认是对主由表(表254)进行操作。而在单表体系里,由的操作是不用指明由表的。
在Linux里,总共可以定义个优先级的规则,一个优先级别只能有一条规则,即理论上总共可以有条规则。其中有3个规则是默认的。命令用法如下:
首先我们可以看看由表默认的所有规则:
规则0,它是优先级别最高的规则,规则,所有的包,都必须首先使用local表(254)进行由。本规则不能被更改和删除。
规则32766,所有的包,使用表main进行由。本规则可以被更改和删除。
规则32767,所有的包,使用表deult进行由。本规则可以被更改和删除。
在默认情况下进行由时,首先会根据规则0在本地由寻找由,如果目的地址是本网络,或是地址的话,在这里就可以找到合适的由;如果由失败,就会匹配下一个不空的规则,在这里只有32766规则,在这里将会在主由寻找由;如果失败,就会匹配32767规则,即寻找默认由表。如果失败,由将失败。重这里可以看出,策略性由是往前兼容的。