问题描述:
一台linux服务器,存在多个vhost,现在要将对外提供服务的分离,即部分vhost走第一个外部IP,部分vhost走第一个外部IP。并且这两个外部IP不同网段。网卡设置的是私网地址,对外服务是通过两个网关设备端口映射实现。因主机不可能存在双网关,即不会有两条默认路由。
初步解决办法:
内部访问由eth0响应,外网按需求部分eth0响应。由于内容不能迁移,固需要另外一台服务器做反向代理来响应该服务器eth1的外部访问。
以下为第一步,添加路由解决eth0的请求响应。
处理方法:添加静态路由条目。
复制代码 代码示例:
1、添加方法:
[root@www jbxue]# route add -net 192.168.14.0/24 gw 192.168.0.254
2、防止重启服务器路由表丢失,需将其添加到/etc/rc.d/rc.local文件。
添加到rc.local文件直接在尾部添加即可。
复制代码 代码示例:
[root@www jbxue]# tail -5 /etc/rc.d/rc.local
route add -net 192.168.13.0/24 gw 192.168.0.254
route add -net 192.168.14.0/24 gw 192.168.0.254
route add -net 192.168.88.0/24 gw 192.168.0.254
route add -net 121.8.170.40/29 gw 192.168.0.254
route add -net 121.8.170.120/29 gw 192.168.6.254
3、防止手动重启网络服务路由表丢失,需将其添加到/etc/init.d/network文件。
添加到network文件时请注意,直接放到文件尾部是不行的,一定放到"start)"选项后面。我放在160行的位置。
复制代码 代码示例:
[root@www jbxue]# vi /etc/init.d/network
159 done
160 route add -net 192.168.1.0/24 gw 192.168.0.254
161 route add -net 192.168.2.0/24 gw 192.168.0.254
162 route add -net 192.168.5.0/24 gw 192.168.0.254
163 route add -net 192.168.8.0/24 gw 192.168.0.254
164 route add -net 192.168.12.0/24 gw 192.168.0.254
165 route add -net 192.168.13.0/24 gw 192.168.0.254
166 route add -net 192.168.14.0/24 gw 192.168.0.254
167 route add -net 192.168.88.0/24 gw 192.168.0.254
168 route add -net 121.8.170.40/29 gw 192.168.0.254
169 route add -net 121.8.170.120/29 gw 192.168.6.254
170 sysctl -w kernel.hotplug=$oldhotplug > /dev/null 2>&1
在network文件里的163行附件能看到这样一段
复制代码 代码示例:
163 # Add non interface-specific static-routes.
164 if [ -f /etc/sysconfig/static-routes ]; then
165 grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
166 /sbin/route add -$args
167 done
168 fi
还可以将要添加的路由写到 /etc/sysconfig/static-routes文件中。
该文件默认是不存在的,需要手工创建。
格式如下:
复制代码 代码示例:
[root@www jbxue]# tail -5 /etc/sysconfig/static-routes
any net 192.168.12.0/24 gw 192.168.0.254
any net 192.168.13.0/24 gw 192.168.0.254
any net 192.168.14.0/24 gw 192.168.0.254
any net 121.8.170.40/29 gw 192.168.0.254
any net 121.8.170.120/29 gw 192.168.6.254
至此,"永久静态"路由添加完成。
注意事项:
注意默认路由是走哪张网卡。
默认是后启动的网卡(这里为eth1)。
配置默认网关为eth0,在2、3步骤尾部添加:
复制代码 代码示例:
[root@www jbxue]# route del -net 0.0.0.0/0 gw 192.168.6.254
[root@www jbxue]# route add -net 0.0.0.0/0 gw 192.168.0.254