双线机房双网卡双ip 路由设置
做互联网网站,最头疼的事情之一就是电信和网通的互联互不通了,为了能够让北方网通和南方电信用户都可以快速的访问网站,解决办法就是托管 到双线机房。双线机房有两类,一类是通过BGP技术实现互联互通,服务器只需要一个网卡一个IP地址就可以了,由机房进行路由的智能判断,选择合适的路由 访问,这样对于网站来说是很方便的,比方说上海移动的怒江机房,上海地面通的自建机房,科技网的机房,但BGP机房一般带宽都比较少,流量高一些的话可能 就没有办法了。另外一种就是双线双IP的机房,带宽可能更高一些,但是路由配置极其复杂,比方说上海电信的市北机房。
因为和谐的原因,JavaEye网站服务器最近被迫从原来的移动怒江双线机房当中搬了出去,由托管商推荐到了上海市北双线机房,市北双线机房实际上 是电信机房,但是从天津网通拉了2G专线过来,因此服务器需要至少两个网卡,一个网卡接电信网关,一个网卡接网通网关,来实现互联互通。如果多台服务器的 话,还需要第3个网卡组建内网进行内网通讯。
对于双线双IP的服务器来说,要解决两个问题:
一、你的网站用户究竟走那个IP来访问你的服务器
二、你的网站内容究竟走那个IP返回给用户
对于第1个问题,可以使用智能DNS解析来解决,即DNS服务器判断用户所在IP地址,如果用户是电信接入,就把服务器的电信IP解析给他;如果用户是网通接入,就把服务器的网通IP解析给他。
智能DNS可以自己基于开源的DNS软件来定制,不过国内有一个很好的免费智能DNS服务器提供商:DNSPod,推荐使用DNSPod的服务。他就可以实现上述的智能DNS解析。
对于第2个问题,则需要在服务器上面配置路由规则,来决定究竟如何处理数据的返回路径问题。
1、填写静态路由表
因为服务器有两个IP,分别在不同的网段,你使用电信IP的网关做路由,那么网通的IP地址用户压根就访问不到,反之亦然。目前流行的解决办法,就 是使用电信网关做默认的路由,然后自己手工填写所有网通IP地址段的路由规则。这个办法可以Google搜索到一大把,不展开了。
这种办法的缺点是添加规则太多太麻烦,而且难免挂一漏万,如果你漏了一些网段,那这些网段的用户就访问不了你的网站了。况且网段地址的分布总是在不断变化的,你还必须定期更新路由表。
2、根据用户访问进来的路径设定动态路由
就是说如果用户是通过电信IP地址访问过来的话,那么使用电信网关做路由,返回内容走电信网关;如果用户通过网通IP地址访问过来的话,那么使用网 通网关做路由,返回内容走网通的网关,这样就不必那么麻烦的维护路由表了。以JavaEye网站服务器为例,具体配置方法如下:
JavaEye网站服务器电信IP:114.80.66.199,电信网关:114.80.66.1
JavaEye网站服务器网通IP:60.29.231.190,网通网关:60.29.231.1
1) 默认网关使用电信网关作为路由
在Linux上面配置默认网关,如果是RedHat,应该是在/etc/sysconfig/network文件里面添加一 行:GATEWAY=114.80.66.1,如果是SuSE,应该是在/etc/sysconfig/network/routes里面添加一 行:default 114.80.66.1 – - 或者可以直接使用YaST2来配置。
2)添加路由表
修改/etc/iproute2/rt_tables,添加内容:
252 tel 电信路由表
251 cnc 网通路由表
然后手工添加路由规则,在Console里面执行如下命令:
#添加原路返回路由
ip route flush table tel
ip route add default via 114.80.66.1 dev eth0 src 114.80.66.199 table tel
ip rule add from 114.80.66.199 table tel
ip route flush table cnc
ip route add default via 60.29.231.1 dev eth1 src 60.29.231.190 table cnc
ip rule add from 60.29.231.190 table cnc
即让从电信IP过来的请求按照电信路由返回,从网通IP过来的请求从网通路由返回。这样就搞定了,是不是很简单?这个办法是bobo同学提供的,感谢他。
3) 把路由规则写入启动脚本
如果服务器重启,或者网络服务重启,上述的路由规则就失效了,所以你需要把上面这段命令写入系统启动脚本和网络启动脚本
如果是RedHat,系统启动脚本是/etc/rc.d/rc.local
如果是SuSE,可以自己写一个启动脚本,链接到S99上,比方说/etc/init.d/rc.local
如果是RedHat,网络启动脚本是/etc/rc.d/init.d/network
如果是SuSE,网络启动脚本是/etc/init.d/network
双线机房双网卡双ip 路由设置的更多相关文章
- Linux双线双网卡双IP双网关设置方法
机房上架了一台测试机,系统是Ubuntu 9.04 X64的系统,母机IBM X336机器.用户需求是双线,故采用一个网卡配置电信地址,另一个网卡配置联通地址,安装好系统后配置好IP发现联通地址和电信 ...
- ubuntu 双线双网卡双IP实现方式
昨天金桥机房上架了一台多玩的测试机,系统是ubuntu9.04 X64的系统,母机IBM X336机器.用户需求是双线,故采用一个网卡配置电信地址,另一个网卡配置联通地址,安装好系统后配置好IP发现联 ...
- CentOS双网卡双IP设置
CentOS双网卡双IP设置 系统环境:CentOS Linux 网络环境: 两个IP地址,192.168.0.10和10.10.30.2,掩码是255.255.255.0,这两个子网的网关地址分别是 ...
- 双网卡单IP实现网卡冗余与负载均衡
WINDOWS下: 所谓双网卡,就是通过软件将双网卡绑定为一个IP地址,这个技术对于许多朋友来说并不陌生,许多高档服务器网卡(例如intel8255x系列.3COM服务器网卡等)都具有多网卡绑定功能, ...
- widnows2008双网卡双ip不同Ip段
机房内有不同段ip,因为线路不一样,比如普通带宽和cn2带宽,现有需求配置双网卡双ip ip1: 121.7*.*.* 255.255.255.192 121.7*.*129 ip2: 103.11 ...
- 烂泥:VMWare Workation双网卡配置IP地址
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天给一个客户做远程项目实施,客户那边的服务器是Windows OS的,我们这边的业务 ...
- Ubuntu实现双网卡双IP双待机
Ubuntu实现双网卡双IP双待机 待机是借用了手机中的说法,其实是电脑上有两个网卡,一个无线,一个有线的.要实现无线访问外网Google Baidu查资料,有线网卡直接连接开发板.在Ubuntu上配 ...
- linux双网卡双网关设置
https://blog.csdn.net/wangliang888888/article/details/60139499 在给客户做软件部署的时候,客户提出了一个需求,需要用到双网卡双网关,我研究 ...
- Linux 双网卡双网段通信
/********************************************************************************* * Linux 双网卡双网段通信 ...
随机推荐
- [转] hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询
不同数据库 自增长ID配置 正对不同的数据库可以同时使用 @Id @GeneratedValue(strategy = GenerationType.AUTO) 2 针 ...
- CDK上安装kube-dashboard
首先把addon的代码下载下来 git clone https://github.com/minishift/minishift-addons 然后进入相应的目录,运行 ericdeMacBook-P ...
- iOS:quartz2D绘图(显示绘制在PDF上的图片)
quart2D既可以用来绘制图像到pdf上,也可以从pdf上读取图像并显示出来.在使用这种方式之前,还有一种方式可以用来读取显示pdf上的图像,即使用UIWebView网页视图控件- (void)lo ...
- 对自助提卡系统EDLM的一次代码审计
前言 并非有意愿要审计该站,前面的走的黑盒没有过于精彩部分就不在贴上了,对于此系统站你们懂的,多说无益,这套程序是开源的,像这种自助提卡系统相信大家已经不在陌生了,很多违法网站通过这种平台方式提卡密的 ...
- 天台人满为患,不如来看下这个Ramnit蠕虫DesktopLayer.exe分析
今年的世界杯越来越看不懂,想去天台吹吹风都不一定有位置,心凉了,事儿还得做,先从网上抓个可疑样本压压惊!上手分析才发现并没有我想得那么简单…… 一.基本信息 MD5 ff5e1f27193ce51ee ...
- .NET Fframework
.NET框架示意图: 该框架是微软推出的完全面向对象的软件开发与运行平台.其有两个主要 组将:CLR:公共语言运行库(Common Language Runtime,简称CLR)和.NET Frame ...
- Jquery事件冒泡
事件冒泡 什么是事件冒泡 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么 ...
- springmvc实现简单的拦截器
SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方 ...
- hdu 1408 acdearm "Money, Money, Money"
#include<stdio.h> int main() { long long int x; while(~scanf("%lld",&x)) { if(x% ...
- phpcms v9自定义HTML文件名
用过织梦.Wordpress.Zblog等程序的网友都知道,发布内容的时候可以自定义生成的HTML文件名,这个功能对于SEO来说非常有好 处,但是到了V9之后却很遗憾, 这个功能却没有了,现在你只要对 ...