战略性是指关于IP包的路由是以网络管理员依据需求定下的一些战略为首要依据进行路由的。例如咱们能够有这样的战略:“一切来直自网A的包,挑选X途径;其他挑选Y途径”,或许是“一切TOS为A的包挑选途径F;其他选者途径K”。
Cisco 的网络操作系统 (Cisco IOS) 从11.0开端就选用新的战略性路由机制。而Linux是在内核2.1开端选用战略性路由机制的。战略性路由机制与传统的路由算法比较首要是引入了多路由表以及规矩的概念。
多路由表(multiple Routing Tables)
传统的路由算法是仅运用一张路由表的。可是在有些景象底下,咱们是需求运用多路由表的。例如一个子网经过一个路由器与外界相连,路由器与外界有两条线路相连,其间一条的速度比较快,一条的速度比较慢。关于子网内的大多数用户来说对速度并没有特别的要求,所以能够让他们用比较慢的路由;可是子网内有一些特别的用户却是对速度的要求比较严苛,所以他们需求运用速度比较快的路由。假如运用一张路由表上述要求是无法完成的,而假如依据源地址或其它参数,对不同的用户运用不同的路由表,这样就能够大大提高路由器的功能。
规矩(rule)
规矩是战略性的关键性的新的概念。咱们能够用自然语言这样描绘规矩,例如我门能够指定这样的规矩:
规矩一:“一切来自192.16.152.24的IP包,运用路由表10, 本规矩的优先等级是1500”
规矩二:“一切的包,运用路由表253,本规矩的优先等级是32767”
咱们能够看到,规矩包含3个要素:
什么样的包,将运用本规矩(所谓的SELECTOR,可能是filter更能反映其效果);
契合本规矩的包将对其采纳什么动作(ACTION),例如用那个表;
本规矩的优先等级。优先等级越高的规矩越先匹配(数值越小优先等级越高)。
战略性路由的装备办法
传统的linux下装备路由的东西是route,而完成战略性路由装备的东西是iproute2东西包。这个软件包是由Alexey Kuznetsov开发的,软件包地点的首要网址为ftp://ftp.inr.ac.ru/ip-routing/。
这儿简略介绍战略性路由的装备办法,以便能更好了解第二部分的内容。具体的运用办法请参阅Alexey Kuznetsov写的 ip-cfref文档。战略性路由的装备首要包含接口地址的装备、路由的装备、规矩的装备。
接口地址的装备IP Addr
关于接口的装备能够用下面的指令进行:
Usage: ip addr [ add | del ] IFADDR dev STRING
例如:
router># ip addr add 192.168.0.1/24 broadcast 192.168.0.255 label eth0 dev eth0
上面表明,给接口eth0赋予地址192.168.0.1 掩码是255.255.255.0(24代表掩码中1的个数),播送地址是192.168.0.255
路由的装备IP Route
Linux最多能够支撑255张路由表,其间有3张表是内置的:
表255 本地路由表(Local table) 本地接口地址,播送地址,已及NAT地址都放在这个表。该路由表由系统主动保护,管理员不能直接修正。
表254 主路由表(Main table) 假如没有指明路由所属的表,一切的路由都默许都放在这个表里,一般来说,旧的路由东西(如route)所增加的路由都会加到这个表。一般是一般的路由。
表253 默许路由表 (Default table) 一般来说默许的路由都放在这张表,可是假如特别指明放的也能够是一切的网关路由。
表 0 保存
路由装备指令的格局如下:
Usage: ip route list SELECTOR
ip route { change | del | add | append | replace | monitor } ROUTE
假如想检查路由表的内容,能够经过指令:
ip route list table table_number
关于路由的操作包含change、del、add 、append 、replace 、 monitor这些。例如增加路由能够用:
router># ip route add 0/0 via 192.168.0.4 table main
router># ip route add 192.168.3.0/24 via 192.168.0.3 table 1
第一条指令是向主路由表(main table)即表254增加一条路由,路由的内容是设置192.168.0.4成为网关。
第二条指令代表向路由表1增加一条路由,子网192.168.3.0(子网掩码是255.255.255.0)的网关是192.168.0.3。
在多路由表的路由系统里,一切的路由的操作,例如网路由表增加路由,或许在路由表里寻觅特定的路由,需求指明要操作的路由表,一切没有指明路由表,默许是对主路由表(表254)进行操作。而在单表系统里,路由的操作是不必指明路由表的。
规矩的装备IP Rule
在Linux里,一共能够界说 个优先级的规矩,一个优先等级只能有一条规矩,即理论上一共能够有 条规矩。其间有3个规矩是默许的。指令用法如下:
Usage: ip rule [ list | add | del ] SELECTOR ACTION
SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ]
[ dev STRING ] [ pref NUMBER ]
ACTION := [ table TABLE_ID ] [ nat ADDRESS ]
[ prohibit | reject | unreachable ]
[ flowid CLASSID ]
TABLE_ID := [ local | main | default | new | NUMBER
首要咱们能够看看路由表默许的一切规矩:
root@netmonster# ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
规矩0,它是优先等级最高的规矩,规矩规矩,一切的包,都必须首要运用local表(254)进行路由。本规矩不能被更改和删去。
规矩32766,规矩一切的包,运用表main进行路由。本规矩能够被更改和删去。
规矩32767,规矩一切的包,运用表default进行路由。本规矩能够被更改和删去。
在默许情况下进行路由时,首要会依据规矩0在本地路由表里寻觅路由,假如意图地址是本网络,或是播送地址的话,在这儿就能够找到适宜的路由;假如路由失利,就会匹配下一个不空的规矩,在这儿只要32766规矩,在这儿将会在主路由表里寻觅路由;假如失利,就会匹配32767规矩,即寻觅默许路由表。假如失利,路由将失利。重这儿能够看出,战略性路由是往前兼容的。