linux中为虚拟网卡(如bond0)配置独立路由表需遵循策略路由流程:先配ip地址,再注册路由表、添加路由规则、绑定源地址策略,并关闭rp_filter以确保转发正常。

Linux 系统中为特定虚拟网卡(如 bond0、br0、veth* 或 docker0)绑定独立的路由表空间,本质仍是策略路由(Policy-Based Routing)的应用,核心步骤与物理网卡一致,但需特别注意虚拟网卡的生命周期、命名规范及地址归属关系。
关键点:虚拟网卡本身不自带 IP,必须先配置有效 IPv4 地址,再按该源地址绑定路由表;不能直接用接口名(如 iif bond0)做主路由依据,除非明确走入接口策略。
一、确认虚拟网卡已启用且有有效 IP
先检查接口状态和地址:
ip link show bond0 # 确保 state UP ip addr show bond0 # 必须有 inet 地址(如 172.16.10.5/24)
若无地址,需先配置(例如静态地址):
ip addr add 172.16.10.5/24 dev bond0 ip link set bond0 up
⚠️ 注意:某些虚拟网卡(如
docker0)由服务自动管理,手动加地址可能被覆盖,建议在服务启动后或通过其配置机制(如 Docker daemon.json)固化。
二、注册专属路由表名称
编辑 /etc/iproute2/rt_tables,追加一行(ID 建议 ≥100,避免冲突):
echo "105 table_bond0" >> /etc/iproute2/rt_tables
表名仅支持小写字母、数字、下划线;table-bond0 会报错,必须用 table_bond0。
三、为该虚拟网卡配置专属路由表
假设 bond0 地址为 172.16.10.5/24,网关为 172.16.10.1:
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
# 添加直连子网路由(指定 src,确保出包带正确源 IP) ip route add 172.16.10.0/24 dev bond0 src 172.16.10.5 table table_bond0 # 添加默认路由(指向本子网网关) ip route add default via 172.16.10.1 dev bond0 table table_bond0
✅ 验证:ip route show table table_bond0 应显示以上两条。
四、用源地址规则绑定路由表
策略路由依赖“源 IP”,不是接口名:
ip rule add from 172.16.10.5/32 table table_bond0 priority 105
-
/32表示精确匹配该主机地址(推荐);也可用/24匹配整个子网(适用于该网段所有本地地址都走此表)。 -
priority 105保证优先级高于 main 表(32766),低于 local(0)。
? 查看效果:
ip rule show | grep 105
五、关闭反向路径过滤(rp_filter)
虚拟网卡常被用于桥接或容器场景,rp_filter 易误判丢包:
echo 0 > /proc/sys/net/ipv4/conf/bond0/rp_filter echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
永久生效:在 /etc/sysctl.conf 中添加
net.ipv4.conf.bond0.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0
然后执行 sysctl -p。
六、持久化配置(避免重启失效)
把上述命令写入网络启动脚本或 systemd service:
-
推荐方式:在
/etc/network/if-up.d/下新建可执行脚本(Debian/Ubuntu) -
通用方式:追加到
/etc/rc.local(需确保rc-local.service已启用):# wait for bond0 to be ready sleep 2 ip route flush table table_bond0 ip route add 172.16.10.0/24 dev bond0 src 172.16.10.5 table table_bond0 ip route add default via 172.16.10.1 dev bond0 table table_bond0 ip rule add from 172.16.10.5/32 table table_bond0 priority 105
不复杂但容易忽略










