Linux的路由和策略路由

1、 Linux路由的配置 IP Route

   Linux最多可以支持255张路由表,其中有3张表是内置的:

  表255 本地路由表(Local table)本地接口地址,广播地址,已及NAT地址都放在这个表。该路由表由系统自动维护,管理员不能直接修改。

  表254 主路由表(Main table)如果没有指明路由所属的表,所有的路由都默认都放在这个表里,一般来说,旧的路由工具(如route)所添加的路由都会加到这个表。一般是普通的路由。

  表253 默认路由表(Default table)一般来说默认的路由都放在这张表,但是如果特别指明放的也可以是所有的网关路由。

  表 0 保留

  路由配置命令的格式如下:

  ip route list ( table 【 main | local | default | route_id数字 】 )  查看路由表

  ip route 【 change | del | add | append | replace | monitor 】 ROUTE (table 【 main | local | default | route_id数字 】) 增删改 

       
       例如添加路由可以用:
        ip route add 0/0 via 192.168.0.4 table main  
  --向主路由表(main table)即表254添加一条路由,路由的内容是设置192.168.0.4成为网关。

  ip route add 192.168.3.0/24 via 192.168.0.3 table 1  

  --向路由表1添加一条路由,子网192.168.3.0(子网掩码是255.255.255.0)的网关是192.168.0.3


2、Linux策略路由

  策略路由 是指对于 IP 包的路由是以网络管理员根据需要定下的一些策略为主要依据进行路由的。例如我们可以配置这样的策略路由:“所有来直自网 A 的包,选择 X 路径;其他选择 Y 路径”,或者是“所有 TOS A 的包选择路径 F ;其他选者路径 K”

 Linux是在内核2.1开始采用策略性路由机制的。策略性路由机制与传统的路由算法相比主要是引入了上面的多路由表以及规则的概念。

 要配置一个策略路由有2步:

 1、在自定义路由表中添加要走的路由  ip route add xxx table table_num

 2、增加策略,使得符合该策略的流量走第一步所定义的路由表 ip rule add 策略 【table tablenum 或 动作】


 Linux里,总共可以定义232个优先级的规则,一个优先级别只能有一条规则,其中有3个规则是默认的,优先级别越高的规则越先匹配(数值越小优先级别越高)。

 

2.1 规则的配置命令

 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 】 


  例子:

 

 # ip rule list    【系统默认的三条路由策略】

 0: from all lookup local

 32766: from all lookup main

 32767: from all lookup default 

 

 ip rule add from 0/0 table 1 pref 32800  --向规则链增加一条规则,规则匹配的对象是所有的数据包,动作是选用路由表1的路由,这条规则的优先级是32800

 ip rule add from 192.168.3.112/32 tos 0x10 table 2 pref 1500      将向规则链增加一条规则,规则匹配的对象是IP192.168.3.112tos等于0x10的包,动作是使用路由表2,这条规则的优先级是1500

 ip rule add from 192.168.3.112/32 tos 0x10 prohibit  pref 1500     将向规则链增加一条规则,规则匹配的对象是IP192.168.3.112tos等于0x10的包,动作是丢弃报文并发送 COMM.ADM.PROHIITEDICMP信息这条规则的优先级是1500

 ip rule add from 192.168.3.112/32 tos 0x10 reject  pref 1500       将向规则链增加一条规则,规则匹配的对象是IP192.168.3.112tos等于0x10的包,动作是单纯丢弃报文,这条规则的优先级是1500

 ip rule add from 192.168.3.112/32 tos 0x10 unreachable pref 1500       将向规则链增加一条规则,规则匹配的对象是IP192.168.3.112tos等于0x10的包,动作是丢弃该包并发送 NET UNREACHABLEICMP信息,这条规则的优先级是1500

 

2.2 策略路由的作用

1 基于源地址选路( Source-Sensitive Routing)
2 根据服务级别选路( Quality of Service)
3 节省费用的应用
4 负载平衡(Load Sharing)


 



你可能感兴趣的:(Linux的路由和策略路由)