在Linux系统中配置路由主要通过`ip route`命令、`route`命令或修改配置文件实现,以下是详细方法和相关技术细节:
1. 临时路由配置(重启失效)
使用`ip route`命令(推荐)
添加默认网关:
bash
sudo ip route add default via <网关IP> dev <接口名>
添加特定网络路由:
bash
sudo ip route add <目标网络/子网掩码> via <下一跳IP> dev <接口名>
删除路由:
bash
sudo ip route del <目标网络/子网掩码>
传统`route`命令
添加默认网关:
bash
sudo route add default gw <网关IP>
添加主机路由:
bash
sudo route add -host <目标IP> gw <下一跳IP>
2. 永久路由配置
Debian/Ubuntu系统
修改`/etc/network/interfaces`,在接口配置中添加:
up ip route add <目标网络/子网掩码> via <下一跳IP>
RHEL/CentOS系统
创建路由配置文件`/etc/sysconfig/network-scripts/route-<接口名>`,内容示例:
<目标网络/子网掩码> via <下一跳IP> dev <接口名>
通用方法(systemd-networkd)
在`/etc/systemd/network/10-static-route.network`中配置:
ini
[Route]
Destination=<目标网络/子网掩码>
Gateway=<下一跳IP>
3. 策略路由与高级功能
多路由表配置
编辑`/etc/iproute2/rt_tables`自定义路由表,通过`ip rule`指定规则:
bash
echo "200 custom" >> /etc/iproute2/rt_tables
ip rule add from <源IP> lookup custom
ip route add default via <网关IP> table custom
路由重定向和策略
使用`iptables`或`nftables`标记流量并配合策略路由:
bash
iptables -t mangle -A PREROUTING -j MARK --set-mark 1
ip rule add fwmark 1 lookup 100
4. 排错与监控
查看当前路由表:
bash
ip route show
测试连通性:
bash
traceroute <目标IP>
ping <目标IP>
检查路由决策路径:
bash
ip route get <目标IP>
5. 动态路由协议(高级场景)
使用`Quagga`或`FRRouting`实现OSPF/BGP等协议:
bash
sudo apt install frr
配置位于`/etc/frr/*.conf`。
注意事项
配置永久路由需确保网络服务(NetworkManager、systemd-networkd等)支持对应配置格式。
多网卡环境需注意路由优先级(metric参数)和源地址策略。
云服务器可能依赖SDN的路由表配置(如AWS路由表、阿里云VPC路由)。
通过以上方法可以实现静态路由、策略路由及复杂网络拓扑的流量控制。实际应用中需结合网络架构和安全需求设计路由策略。