ip命令手册(三)
摘要

  有关路由策略管理和多播地址管理的部分

(2002-11-05 10:09:51)


By nixe0n

8.ip route -- 路由策略数据库管理命令

8.1.缩写

  rule、ru

8.2.对象

  路由策略数据库的规则用于控制选择路由的算法。

  Internet上采用的路由算法一般是基于数据包目的地址的。理论上,也能够由TOS域决定,但是这没有实际应用。要了解经典路由算法的周详情况请参考RFC-1812

  而在某些情况下,我们不只是需要通过数据包的目的地址决定路由,可能还需要通过其他一些域:源地址、IP协议、传输层端口甚至数据包的负载。这就叫做:策略路由(policy routing)。

  注意:策略路由(policy routing)不等于路由策略(rouing policy)。

  在这种情况下,传统的基于目的地址的路由表就无法满足需要了,需要使用路由策略数据库(routing policy database,RPDB)代替,通过他选择执行某些路由。这些规则能够由很多不同的状态,而且他们没有天生的次序,要由系统管理员决定。RPDB能够匹配以下的域:

  • 数据包的源地址;
  • 数据包的目的地址;
  • 服务类型(Type of Service);
  • 进入的网络接口;
  •   匹配IP协议和传输层端口也是可能的,但是这要依靠iptablesipchains通过fwmark为某些数据包做标记,并重定向。

      每个路由策略由一个选择符(selector)和一个操作(action)组成。系统按照顺序搜索路由策略数据库,把选择符和等关键词进行匹配,假如匹配成功,就执行action定义的操作。操作或成功返回,或失败并且中止对路由策略。否则,系统继续查询路由策略数据库。

      操作如何定义?最原始的操作是选择下一跳(nexthop)和输出设备(output device)。Cisco IOS使用这种方式,我们姑且把这叫做匹配并配置(match & set)。而Linux的方式则更为灵活,Linux允许的操作包括:基于目的地址的路由表查询连同按照最长匹配的原则从路由表中选择路由。因此,匹配并配置(match & set)的方式只是个最简单的特例而已。

      再系统启动时,内核会为路由策略数据库配置三条缺省的规则:

    优先级 选择符 操作 解释
    0 匹配任何条件 查询路由表local(ID 255) 路由表local是个特别的路由表,包含对于本地和广播地址的高优先级控制路由。rule 0很特别,不能被删除或覆盖。
    32766 匹配任何条件 查询路由表main(ID 254) 路由表main(ID 254)是个通常的表,包含任何的无策略路由。系统管理员能够删除或使用另外的规则覆盖这条规则。
    32767 匹配任何条件 查询路由表default(ID 253) 路由表default(ID 253)是个空表,他是为一些后续处理保留的。对于前面的缺省策略没有匹配到的数据包,系统使用这个策略进行处理。这个规则也能够删除。

      不要混淆路由表和策略:规则指向路由表,多个规则能够引用一个路由表,而且某些路由表能够没有策略指向他。假如系统管理员删除了指向某个路由表的任何规则,这个表就没有用了,但是仍然存在,直到里面的任何路由都被删除,他才会消失。

    8.3.规则类型

      路由策略规则数据库能够包括如下类型的规则:

    unicast 返回从被引用的路由表中发现的路由
    blackhole 丢弃数据包,不做任何反应
    unreachable 产生网络不可达(Network is unreachable)的ICMP错误信息
    prohibit 产生通讯被禁止(Communication is administratively prohibited)的ICMP错误信息
    nat 把数据报的源地址转换为其他的值。详情请参考附录C

    8.4.命令

      add、delete、show(或list)

    8.5.ip rule add -- 插入新的规则
    ip rule delete -- 删除规则

  • 缩写:add、a;delete、del、d

  • 参数
    type TYPE(default) 这个规则的类型。有效的类型上一节已介绍过了。
    from PREFIX 匹配的源地址
    iif NAME 选择数据包进入的设备。假如接口是回环设备,这个规则就只匹配源于本机的数据包。这意味着,您能够为本机发出的数据包和要转发的数据包分别建立路由表,使两者完全隔离。
    tos TOS或dsfield TOS 选择匹配的TOS值
    fwmark MARK 选择要匹配的fwmark
    priority PREFERENCE 配置这个规则的优先级。每个规则的优先级都应该明确配置为一个唯一的数值。实际上,由于历史的原因,ip roule add命令无需任何优先级的值,也不必是唯一的。假如用户没有在命令中提供优先级的值,内核会自动选择。假如用户提供的优先级值已存在,内核也不会拒绝这次请求,而是在相同优先级的规则前面插入新的规则。
    table TABLEID 假如规则选择符匹配,就被查询的路由表识别符。
    realms FROM/TO 假如规则匹配和路由表查询成功,选择的realms值。
    nat ADDRESS 配置要进行网络地址转换的IP地址段。ADDRESS或是进行网络地址转换ip地址段,或是个本机地址,甚至能够是0。

    文章整理:西部数码--专业提供域名注册虚拟主机服务
    http://www.west263.com
    以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!