了解Linux的路由机制

欢迎进入网络技术社区论坛,与200万技术人员互动交流 >>进入

Linux历经无数岁月的洗礼后,在Linux 2.2版本正式加入了Advanced Routing机制,使得Linux系统的路由机制超越了大多数的商用路由器,因此,也使得Linux系统的路由表变得更加复杂。图10-4显示了当今Linux系统的路由表,从图中可以看到,Linux系统可同时存在多个路由表,一般的操作系统都只有一个路由表,但Linux系统却可多达256个,且每个路由表都各自独立,互不相关。那么,Linux系统在传输数据包时,会根据哪个路由表来传输呢?这个答案就是“路由策略数据库”(Routing Policy Database,RPDB),我们可以在RPDB内填写一些路由规则来确定“哪类数据包”应该“根据哪个路由表”来传输,如此,系统管理人员就会有更大的自主性来决定数据包的传输路径。

图10-4 Linux路由表

路由策略数据库与路由表 如图10-5所示,可以使用ip rule show命令将RPDB的内容显示出来,可将这些信息大概分为三个字段,其中字段。为Priority,简单来说,就是Rule被匹配的优先顺序,数字越小,代表优先级别越高,也就是越早被匹配;字段。是Rule的规则,也就是匹配数据包的依据,在此可以是Source IP、Destination IP、Type of Service、fwmark及dev等;字段。则是符合条件的数据包要通过哪个路由表送出。

图10-5 规则表

在Linux系统中,路由表是根据ID来区分的,而ID的范围是0~255.由于ID对于管理员而言实在是不好记忆,因此基于策略路由的管理工具–iproute提供了一个ID与名称的对应表:/etc/iproute2/rt_tables,方便我们使用名称来记忆特定的路由表。下面使用图10-6及图10-7来说明rt_table对应表的用法,如图10-6,先使用ip命令加入一条规则。,这条规则的意思是说,如果来源端IP位于192.168.2.0/24网段,那么就使用ID编号为10的路由表加以处理,接着使用ip rule show命令将RPDB的内容显示出来,我们可以从。的位置看到多了一条规则,且这条规则使用ID来代表路由表。

图10-6 路由表的命名(一)

接着以图10-7为例,在rt_table文件中加入一行如。所示,保存文件后,再使用ip ruleshow命令来查看RPDB,这时就可以发现原来使用ID来代表路由表的地方,已经改为我们在rt_table之中所设置的名称了。

图10-7 路由表的命名(二)

伟人之所以伟大,是因为他与别人共处逆境时,

了解Linux的路由机制

相关文章:

你感兴趣的文章:

标签云: