标签 CentOS 下的文章

CentOS 7 中用 IP 或 nmcli 命令配置网络,如果服务器有多个网络接口,并且想指定多个默认网关时,需要添加多张路由表,并使用策略路由规则(Policy-routing)来实现!

1. 配置 IP 网络

通过 nmcli 命令指定的配置项,在系统重启后会继续生效。而 ip 命令配置的 IP 信息只临时生效,重启系统后失效,要永久生效的话,需要手动修改 /etc/sysconfig/network-scripts/ifcfg-xxx

2. 配置静态路由和默认网关

默认网关 适用于未发往本地网络、且未在路由表中指定首选路由的任何流量
要永久生效的话,请使用 nmcli 命令配置路由,或者手动修改 /etc/sysconfig/network-scripts/route-xxx

3. 策略路由 Policy-routing

策略路由也称为源路由,是一种用于更灵活的路由配置的机制。 通常根据程序包的目标IP地址来做出路由决策。 通过策略路由,可以更加灵活地根据其他路由属性(例如源IP地址,源端口,协议类型)选择路由。
CentOS 默认使用 NetworkManager 来管理网络,所以需要安装一个插件包来支持 Policy-routing

3.1 安装 NetworkManager-config-routing-rules

yum install NetworkManager-config-routing-rules -y

3.2 新增路由表

echo '1 eth1' >> /etc/iproute2/rt_tables

3.3 添加策略路由规则

echo "from 192.168.2.1/24 table eth1" > /etc/sysconfig/network-scripts/rule-eth1

3.4 为新路由表指定默认网关

echo "default dev eth1 via 192.168.0.1 table eth1" > /etc/sysconfig/network-scripts/route-eth1

3.5 重启网卡

systemctl restart network