i.MX6ULL开发板路由表优先级配置指南

i.MX6ULL开发板路由表优先级配置指南
1. 理解路由表优先级的基本概念在i.MX6ULL-ElfBoard ELF1开发板的网络配置中路由表优先级是一个关键参数它决定了数据包在网络接口间的传输路径。Metric值跃点数是路由表中表示优先级的核心指标这个值越小表示优先级越高。当系统存在多个网络接口和网关时比如同时连接了有线网卡eth0和无线网卡wlan0操作系统会根据路由表中的Metric值来选择最优路径。举个例子eth0网关192.168.0.1Metric100wlan0网关192.168.1.1Metric200在这种情况下所有出站流量都会优先通过eth0发送因为它的Metric值更低。只有当eth0不可用时系统才会自动切换到wlan0。注意在Linux系统中Metric值的范围通常是0-65535但实际应用中很少会使用极端值。一般来说相差10-20的Metric值就足以形成明显的优先级差异。2. 查看当前路由表配置在修改路由表优先级之前我们需要先了解当前的配置情况。在ELF1开发板上可以通过以下命令查看完整的路由表route -n或者使用更现代的iproute2工具ip route show典型的输出可能如下Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 200 0 0 eth1 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1在这个示例中我们可以看到有两个默认网关0.0.0.0分别对应eth0和eth1接口eth0的Metric值为100eth1为200因此eth0是主用路径每个接口还有自己的本地网络路由192.168.0.0/24和192.168.1.0/243. 修改路由表优先级的详细步骤3.1 删除现有默认路由在调整优先级前需要先移除现有的默认路由。这是为了防止路由规则冲突。执行以下命令route del default gw 192.168.0.1 eth0 route del default gw 192.168.1.1 eth1或者使用iproute2命令ip route del default via 192.168.0.1 dev eth0 ip route del default via 192.168.1.1 dev eth1重要提示执行这些命令会导致网络连接暂时中断建议通过本地终端操作而不是远程SSH连接。3.2 添加带Metric参数的新路由现在可以添加新的默认路由并指定Metric值。假设我们希望eth1成为主用接口可以这样设置route add default gw 192.168.0.1 dev eth0 metric 200 route add default gw 192.168.1.1 dev eth1 metric 100对应的iproute2命令ip route add default via 192.168.0.1 dev eth0 metric 200 ip route add default via 192.168.1.1 dev eth1 metric 100这样设置后eth1Metric100将成为主用路径而eth0Metric200作为备用。3.3 验证修改结果执行修改后再次查看路由表确认变更是否生效route -n预期输出中应该能看到更新后的Metric值Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 200 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth1 ...4. 使路由配置永久生效通过上述命令修改的路由表在系统重启后会丢失。要使配置永久生效有几种常用方法4.1 使用network-scripts传统方法在/etc/sysconfig/network-scripts/目录下找到对应接口的配置文件如ifcfg-eth0添加或修改以下参数GATEWAY192.168.0.1 METRIC2004.2 使用netplanUbuntu等新系统在/etc/netplan/目录下的YAML配置文件中添加metric参数network: version: 2 ethernets: eth0: dhcp4: yes routes: - to: 0.0.0.0/0 via: 192.168.0.1 metric: 200 eth1: dhcp4: yes routes: - to: 0.0.0.0/0 via: 192.168.1.1 metric: 100然后应用配置netplan apply4.3 使用rc.local通用方法在/etc/rc.local文件中添加路由命令确保文件有执行权限route add default gw 192.168.0.1 dev eth0 metric 200 route add default gw 192.168.1.1 dev eth1 metric 100 exit 05. 高级配置与故障排查5.1 多网卡负载均衡在某些场景下我们可能希望利用多个网络接口实现负载均衡。这可以通过策略路由实现ip route add default scope global nexthop via 192.168.0.1 dev eth0 weight 1 \ nexthop via 192.168.1.1 dev eth1 weight 1这种配置下流量会按权重比例分配到两个接口。5.2 常见问题排查问题1路由修改后网络不通检查物理连接是否正常使用ping -I eth0 192.168.0.1测试特定接口的连接使用traceroute查看数据包实际路径问题2路由表不保存确认配置文件语法正确检查服务是否启用systemctl status networking查看日志journalctl -u networking.service问题3Metric值不生效确认内核支持路由优先级cat /proc/sys/net/ipv4/route/metric检查是否有其他路由规则干扰ip rule list6. 实际应用场景建议在ELF1开发板的具体应用中我有以下几点经验分享工业现场应用当开发板同时连接工厂内网(eth0)和4G备份网络(eth1)时建议将内网Metric设为1004G网络设为200。这样既保证了主要业务走内网又能在内网故障时自动切换。多WAN负载均衡如果需要同时使用两个以太网口接入不同ISP可以使用ip route的multipath功能实现出站流量的负载均衡。测试环境配置在实验室环境中我习惯将USB以太网适配器(eth1)的Metric设得比板载网卡(eth0)高这样平时使用板载网卡需要测试USB网卡时只需拔掉板载网线即可自动切换。临时优先级调整调试时可以创建快捷脚本快速切换优先级#!/bin/bash # 切换主用接口到eth1 ip route del default ip route add default via 192.168.1.1 dev eth1 metric 100 ip route add default via 192.168.0.1 dev eth0 metric 200