ip rule 是 Linux 下的一个命令,用于管理和查看路由策略数据库 (RPDB, Routing Policy Database)。
它允许管理员定义基于各种选择条件(如源地址、目的地址、接口等)的路由规则。
以下是 ip rule 命令的一些常用参数及其解释:
# 常用参数 add:添加一条新的路由规则。 del:删除一条现有的路由规则。 list 或 show:显示当前的路由规则。 参数解释 from [ADDRESS[/MASK]]:指定源地址或源地址范围。只匹配来自这些地址的数据包。可以是单个 IP 地址或 CIDR 范围。 to [ADDRESS[/MASK]]: 指定目的地址或目的地址范围。只匹配发送到这些地址的数据包。可以是单个 IP 地址或 CIDR 范围。 iif [NAME]: 指定入接口。只匹配从该接口接收到的数据包。接口名例如 eth0。 oif [NAME]: 指定出接口。只匹配将从该接口发送出去的数据包。接口名例如 eth0。 priority [PREFERENCE]:指定规则的优先级。数值越小优先级越高。规则按优先级顺序进行匹配。规则按从小到大的顺序进行匹配。 table [TABLE_ID]: 指定路由表。数据包匹配此规则后,将在指定的路由表中查找路由。默认路由表 ID 为 main (254), local (255), default (253) 等。 fwmark [MARK]: 指定防火墙标记。只匹配带有该标记的数据包。由 iptables 或 nftables 设置的数据包标记。 uidrange [UID-START-UID-END]:匹配数据包的用户 ID 范围。例如, 0-65535。 sport [PORT[/MASK]]: 指定源端口或源端口范围。只匹配来自这些端口的数据包。可以是单个端口或端口范围。 dport [PORT[/MASK]]: 指定目标端口或目标端口范围。只匹配发送到这些端口的数据包。可以是单个端口或端口范围。 tos [TOS]: 指定服务类型 (Type of Service)。只匹配带有此 TOS 值的数据包。TOS 值用来指定数据包的优先级。 ipproto [PROTOCOL]: 指定 IP 协议。只匹配使用该协议的数据包。例如, tcp, udp, icmp 等。 在方括号内的表达式(“[” 和 “]”之间的字符)是可选的(写命令时要去掉括号)。 在尖括号内的表达式(“<” 和 “>”之间的字符)是必须替换的表达式(而且要去掉尖括号)。 省略号表示该选项可以单个或多个 # 添加规则 ip rule add from 192.168.1.0/24 table 100 priority 100 这条规则表示,来自 192.168.1.0/24 网络的数据包将根据路由表 100 的规则进行处理,优先级为 100。 # 删除规则 ip rule del from 192.168.1.0/24 table 100 priority 100 这条规则表示删除之前添加的规则。 # 显示当前规则 ip rule show 这条命令将显示当前的所有路由规则及其优先级和条件。 ##################################################################### linux中默认有3个路由表,local main default [root@localhost ~]# cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep ip route show 默认就是打印的main表,等于ip route show table main local表是本地路由表,ip route show table local,是系统配置的ip生成的路由信息。 ip route add 是用于向 Linux 内核的路由表中添加路由的命令。 它属于 ip 命令套件的一部分,该套件用于管理网络设备、路由、策略路由和隧道。 ip route add 命令有多种参数,可以配置路由的不同方面。以下是一些常见参数及其解释: 基本语法 ip route add [prefix] via [gateway] dev [device] [additional options] 常用参数及解释 prefix: 指定要添加的目标网络或主机。格式为 IP地址/子网掩码长度,例如 192.168.1.0/24 或 0.0.0.0/0(默认路由)。 via [gateway]: 指定路由数据包的下一跳网关 IP 地址。例如 via 192.168.1.1。这是数据包应通过的中间路由器。 dev [device]: 指定要通过的网络设备接口。例如 dev eth0。这用于指示数据包应发送到的物理或虚拟网络接口。 src [source-address]: 指定用于该路由的数据包的源地址。例如 src 192.168.1.100。这在多源地址环境中非常有用。 metric [value]: 指定路由的优先级(度量值)。度量值越小,优先级越高。用于在多条路由可用时确定使用哪条路由。 table [table_id]: 指定要添加路由的路由表。默认情况下,路由添加到主路由表(table 254)。 scope [scope]: 指定路由的范围。常用范围包括: global: 全球范围,适用于整个互联网。 link: 链路范围,适用于直连网络。 host: 主机范围,仅适用于特定主机。 proto [protocol]: 指定路由协议。常用协议包括: static: 静态路由。 kernel: 由内核生成的路由。 boot: 在系统启动时添加的路由。 dhcp: 由 DHCP 获取的路由。 onlink: 强制将目标视为直接连接,即使没有相关 ARP 条目。这在某些需要绕过常规 ARP 检查的情况下有用。 nexthop: 指定多个下一跳以实现负载均衡或冗余。例如: ip route add 192.168.1.0/24 nexthop via 192.168.1.1 dev eth0 weight 1 nexthop via 192.168.1.2 dev eth1 weight 2 weight:指定每个下一跳的权重,用于流量分配。 示例 添加到特定网络的路由: ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0 将发往 192.168.2.0/24 网络的数据包通过 192.168.1.1 网关,并使用 eth0 接口。 添加默认路由: ip route add default via 192.168.1.1 将所有未知目的地的数据包发送到 192.168.1.1 网关。 添加主机路由: ip route add 192.168.1.10/32 dev eth0 将发往 192.168.1.10 的数据包通过 eth0 接口。 添加带度量值的路由: ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0 metric 100 添加到 192.168.2.0/24 网络的路由,度量值为 100。 添加到特定路由表: ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0 table 100 将路由添加到 ID 为 100 的路由表。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/5468.html