Linux 策略路由是一种高级路由机制。相比于传统路由,策略路由允许用户配置多张路由表,根据源地址、目的地址等选择不同路由表,提供了更灵活的路由控制能力。
路由表(Routing Table)
路由表是存储路由规则的集合,Linux 支持配置多张路由表。
rt_tables 文件
/etc/iproute2/rt_tables 是 Linux 中用于定义路由表名称和编号映射的文件。
其中的每一行定义了一个路由表,包括其编号(1~255)和名称,编号和名称都不能重复。
Linux 发行版中,/etc/iproute2/rt_tables 的默认内容如下:
1 2 3 4 5 6 7 8 9 10 11 12
root@ubuntu2404:/# cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep
Linux 默认路由表
Linux 初始的默认状态下,包含下面四个路由表:
local表
编号:255
存储本地接口地址和广播地址
内核自动维护,用户通常不需要修改
1 2 3 4 5 6 7 8 9 10
root@ubuntu2404:/# ip route show table local local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1 local 172.16.19.129 dev ens160 proto kernel scope host src 172.16.19.129 local 172.16.19.133 dev ens256 proto kernel scope host src 172.16.19.133 broadcast 172.16.19.255 dev ens160 proto kernel scope link src 172.16.19.129 broadcast 172.16.19.255 dev ens256 proto kernel scope link src 172.16.19.133 local 172.17.0.1 dev docker0 proto kernel scope host src 172.17.0.1 broadcast 172.17.255.255 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
main表
编号:254
主路由表,传统路由使用的表
通过 ip route 命令配置或展示的都是此表
1 2 3 4 5 6
root@ubuntu2404:/# ip route show table main default via 172.16.19.2 dev ens160 proto dhcp src 172.16.19.129 metric 100 default via 172.16.19.2 dev ens256 proto dhcp src 172.16.19.133 metric 101 172.16.19.0/24 dev ens160 proto kernel scope link src 172.16.19.129 metric 100 172.16.19.0/24 dev ens256 proto kernel scope link src 172.16.19.133 metric 101 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown