办公室有台内部的服务器,需要新增一个不同段的IP,很少接触多IP+网关的情况,发现直接配置两个ip上去是不能同时使用的,随手记一下流水账。

操作系统:centos 6.10
正在用的IP1: 10.10.10.98 / Gateway: 11.10.10.1 / NETMASK: 255.255.255.0
需新增的IP2: 10.252.252.98 / Gateway: 10.252.252.1 / NETMASK: 255.255.255.0

一、双网卡配置

配置多IP时非常容易因配置错误导致断网,建议先配置好一个ip,网络正常的情况下,在配置第二块网卡,对于生产上的服务器,怕配置出错可以先备份好网络配置文件,配置好双ip后,用定时任务过几分钟恢复一下网卡配置,如果配置没有问题在去掉定时任务,然后重新配置一次,这样比较保险。

当前在用的IP1.网卡配置如下:

cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.10.10.98
NETMASK=255.255.255.0
GATEWAY=10.10.10.1
DNS1=8.8.8.8


配置第二块网卡ip:

cat  /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=10.252.252.98
NETMASK=255.255.255.0
#GATEWAY=10.252.252.1  //网卡2不要配置网关,否则重启网卡后可能会导致断网或网卡1不通
DNS1=8.8.8.8

重启网络生效:

service network restart

正常情况下你的SSH不会掉线,两块网卡都是正常的,但是因为第二块网卡没有配置网关,所以第二块网卡IP还不能用,需要配置双网关才行

二、双网关配置

当前的情况黙认网关是第一块网卡的网关,配置多网关首先需要增加两个路由表:

vim  /etc/iproute2/rt_tables
255     local
254     main
253     default
0       unspec
#新增以下两行
252 e1 
251 e0

保存退出后,接下来手动添加静态路由,需要流量从哪个网卡进来的,就从相应的网关出去:

ip route flush table e0 
ip route add default via 10.10.10.1 dev eth0 src 10.10.10.98 table e0 
ip rule add from 10.10.10.98 table e0

ip route flush table e1 
ip route add default via 10.252.252.1 dev eth1 src 10.252.252.98 table e1 
ip rule add from 10.252.252.98 table e1

双网关配置重启后会生效,还需添加到开机启动,复制到/etc/rc.local中即可,rc.local不会被网络服务覆盖掉

参考文章:
https://mr21.cc/network-technology/centos-two-gateway-configration.html