> Linux教程 > Linux学习 >

Linux服务器双IP永久静态路由设置方法

现有一台Linux服务器,服务器上的两块网卡各设置了一个静态IP 202.65.219.90和152.104.201.58。IP地址202.65.219.90走的是海外路由,方便海外用户可以快速访问到该服务器;IP地址152.104.201.58走的是国内BGP路由,方便国内用户可以快速访问到该服务器。服务器的IP地址配置如下:

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:50:56:b7:01:ff brd ff:ff:ff:ff:ff:ff
    inet 202.65.219.90/27 brd 202.65.219.95 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:50:56:b7:02:00 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.104/24 brd 10.0.0.255 scope global eth1
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:50:56:b7:02:01 brd ff:ff:ff:ff:ff:ff
    inet 152.104.201.58/27 brd 152.104.201.63 scope global eth2
然而,在默认情况下,Linux系统会自动生成一条默认路由,言下之意,第一个IP地址是没有路由的,因此也就无法Ping通IP地址152.104.201.58,这时就需要我们手动来添加一条指向IP地址152.104.201.58的静态路由,操作方法如下:

1. vi /etc/iproute2/rt_tables,添加一条路由表:

252     china
2. 执行下述添加静态路由的shell命令。命令中IP地址及子网掩码根据实际情况进行计算并修改:

ip rule add from 152.104.201.58/27 table china
ip route add 0/0 via 152.104.201.58 dev eth2 table china
上述命令执行后会即时生效,这时就可以Ping通IP地址152.104.201.58了。不过,上述路由设置并非永久生效,在服务器重启或network服务重启后,路由信息也就失效了,这时也就无法Ping通IP地址152.104.201.58了。因此接下来的两步操作可以解决系统重启后路由失效的这个问题:

3. 在/etc/rc.local增加静态路由添加命令,系统启动时就自动添加路由。

vi /etc/rc.local,插入

ip rule add from 152.104.201.58/27 table china
ip route add 0/0 via 152.104.201.58 dev eth2 table china
4. 解决network服务重启后路由失效的问题

vi /etc/sysconfig/network-scripts/route-eth2,新建静态路由配置文件route-eth2,文件命名规则:route-devName,即对应网卡设备名的路由配置文件。然后添加路由信息(注意修改实际情况下的IP地址):

0/0 via 152.104.201.58 dev eth2 table china



(责任编辑:IT)