分享

Linux基于策略的路由

 oceanmoon 2013-02-26
目前在计算机网络中使用的传统路由算法都是根据IP包目的地址进行路由选择.然而在现实应用中经常有这样的需求:进行路由选择时不仅仅根据数据报的目的地址,而且根据数据报的其他一些特性如:源地址、IP协议、传输层端口,甚至是数据包的负载部分内容,这种类型的路由选择被称作基于策略的路由。

对于Linux2.1/2.2,启动时内核将包含一个由三条策略规则组成的默认的RPDB,察看这些默认规则的一个方法是使用命令来列出系统的所有规则:
root@netmonster ip rule list
  0:      from all lookup local
  32766:  from all lookup main
  32767:  from all lookup default

首先是最高级别的优先级规则,规则策略0:

规则0: 优先级 0 选择器 = 匹配任何数据

动作=察看本地路由表(routing table local),ID为255。

local表是保留路由表,包含了到本地和广播地址的路由。规则0是特殊的规则,不可被删除或修改。


规则 32766: 优先级 32766 选择器 = 匹配所有数据

动作 = 察看主路由表(routing table main), ID为254。

main路由表是默认的标准路由表,其包含所有非策略路由,main表是存放旧的路由命令(route命令)创建的路由。而且任何由ip route命令创建的没有明确指定路由表的路由都被加入到该路由表中。该规则不能被删除和被其他规则覆盖。


规则 32767: 优先级 32767 选择器 = 匹配所有数据

动作 = 察看默认路由表(routing table default),ID为253。

default路由表是空的,为最后处理(post-processing)所预留,若前面的默认规则没有选择该数据报时保留用作最后的处理。该规则可以被删除.


不要将路由表和规则混淆,规则是指向路由表的。也许会出现多个规则指向同一个路由表,而有些路由表可能并不被任何规则指向。如果删除了指向某个路由表的所有规则,则该表将不发生作用,但是表将仍然存在。一个路由表只有在其中包含的所有路由信息被删除才会消失。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多