ip rule 和 ip route

ip ruleip route 是 Linux 中网络配置工具 iproute2 套件的两个重要命令,虽然它们都与路由有关,但作用和使用场景不同。下面是它们的主要区别:

1. 功能

  • ip route: 主要用于配置和管理系统的 路由表,决定如何将数据包从源地址传递到目标地址。使用 ip route,你可以查看、添加、删除、修改路由信息。 例如: ip route add 192.168.1.0/24 via 192.168.0.1 这条命令表示将 192.168.1.0/24 网络的数据包通过网关 192.168.0.1 路由。
  • ip rule: 用于配置 策略路由,即在多路由表的环境下,基于特定条件(如源 IP、目标 IP、入接口、出接口等)选择使用不同的路由表。ip rule 允许用户制定规则,以决定在某些条件下,应该使用哪一张路由表来进行路由查找。 例如: ip rule add from 192.168.1.0/24 lookup 100 这条命令表示来自 192.168.1.0/24 网络的流量会使用路由表编号为 100 的路由。

2. 工作方式

  • ip route: 配置的是 路由表,它用于实际的路由选择。 每条路由通常由目标地址、网关(或下一跳)、子网掩码等组成。 默认情况下,Linux 系统使用默认路由表(表号 255)进行路由决策。
  • ip rule: 配置的是 路由规则,这些规则决定了流量应该查询哪个路由表。 它不直接管理路由,而是根据条件(例如源地址、目标地址、网络接口等)将流量导向特定的路由表。 ip rule 可以用来实现复杂的 策略路由,允许多个路由表并行工作。

3. 使用场景

  • ip route: 用于一般的路由配置,适用于单一的路由表。例如: 配置默认路由。 配置静态路由。 配置特定网络的路由。 ip route add 192.168.1.0/24 via 192.168.0.1 ip route add default via 192.168.0.1
  • ip rule: 用于在多个路由表的情况下,控制流量如何选择特定的路由表。适用于复杂的路由决策场景,如: 多网络接口的路由。 多 ISP 的路由选择。 基于源地址、目的地址、端口等条件的流量分流。 ip rule add from 192.168.1.0/24 lookup 100 ip rule add from 10.0.0.0/8 lookup 200

4. 路由表与规则

  • ip route: 配置 路由表 中的条目,决定数据包在路由表中查找的路径。 ip route add 192.168.1.0/24 via 192.168.0.1 table 100 ip route add default via 192.168.0.2 table 200 在这个例子中,table 100 和 table 200 是不同的路由表,ip route 配置了这两个表的路由。
  • ip rule: 配置 规则,指示哪些流量应该使用哪些路由表。 ip rule add from 192.168.1.0/24 lookup 100 ip rule add from 10.0.0.0/8 lookup 200 这些规则表示来自不同网络段的流量将被引导到不同的路由表。

5. 示例

  • ip route 示例: 配置一条静态路由,指示流向 192.168.1.0/24 的流量通过 192.168.0.1 路由: ip route add 192.168.1.0/24 via 192.168.0.1
  • ip rule 示例: 添加一个规则,指示来自 192.168.1.0/24 子网的流量使用路由表 100: ip rule add from 192.168.1.0/24 lookup 100 然后,你可以在路由表 100 中添加具体的路由: ip route add default via 192.168.0.1 table 100

6. 关系

  • ip rule 和 ip route 的结合
    ip ruleip route 常常一起使用,以实现更复杂的路由策略。在配置多路由表时,ip rule 决定流量应该使用哪个路由表,而 ip route 则在指定的路由表中配置具体的路由条目。

7. 总结

命令功能配置内容应用场景
ip route配置路由表,决定如何到达目标网络目标地址、网关、路由表条目配置静态路由、默认路由等
ip rule配置策略路由规则,选择路由表流量的来源、目标、接口等多路由表选择、基于源地址等的路由

简而言之,ip route 是配置 路由表,而 ip rule 是配置 路由规则,两者通常结合使用以实现复杂的路由策略。


文章标签:

评论(0)