一. 背景说明
转自:
http://bbs.51cto.com/viewthread.php?tid=432126&pid=4163553
2007年的资料,比较老,仅供参考。
由于我国目前的网络ISP运营商有中国电信和中国网通, 两者都有大量的用户。有一定网龄的人基本都知道“南电信”、“北网通”的说法, 南北两地用户由于电信和网通的互联互通瓶颈,电信用户访问网通服务器 、网通用户访问电信服务器都很慢, 电信用户访问采用电信线路的网站的速度是非常快的而跨网之间的访问非常慢,这样导致网站运营者的站点无论放在电信机房还是网通机房,都会丢失另一半潜在的客户。
1.1 双线、多线,中小网站解决南北互访的最佳方案
既然南北互访对网站建设者和访问者都存在如此多的不便,那么肯定需要采用一定的方式来解决,目前常见的是以下3种:
(1)电信网通 镜像
一个网站分别租用两个服务器,分别放在电信机房和网通机房,然后让电信用户访问电信站点,网通用户访问网通站点,这样让用户获得最好的网络速度。
(2)CDN网站加速服务
网通分别放一个缓存服务器,用户实际访问缓存服务器,缓存服务器再原网站服务器读取内容,并将已经读取的内容缓存到本地。
(3)双线主机服务
双线服务器实际是一台服务器分别有电信和网通两条线路接入,通过对用户 IP 地址的智能解析,实现电信用户访问电信线路,网通用户访问网通线路,这样实现全国都快速访问的目的。
根据不同的机房接入方式,双线服务接入有分单IP接入、单网卡双IP接入和双网卡双IP共3种接入方式,其中最好的是单网卡双IP接入,分别提供一个电信IP和网通IP。
大型的门户网站比较适合采用 CDN加速服务,这种技术对静态内容加速效果明显,而门户网站基本都是以静态页面为主,但是该技术需要的资金太大,而且对动态页面不适用;
电信网通甚至教育网做多镜像站点的方法也是大站常用的加速方式,这种方式同时也能达到分流减压的效果,但是数据的同步和维护比较麻烦,而且资金投入也不小;
双线、多线在资金和达到的效果方面更能满足中小网站的需求,不过这种技术也有缺陷,就是稳定性不好,因为根据归结到底还是要根据 IP 进行线路选择,在 DNS 解析、路由解析方面过于复杂.
1.2 怎么才是优秀的双线
双线、多线技术效果怎么样,最关键的问题有两个:
一个是采用的网卡、IP工作模式,
二是对用户 IP 地址的智能解析是否稳定可靠。
1.2.1 双网卡双IP的双线
早期一些机房由于自身技术/设备不过关,无法在机房路由器上实现切换,只能采用一台服务器两个网卡,两条网线分别接入电信/网通,这样做会导致服务器路由随机波动,并导致用户访问时快时慢,甚至完全不能访问,这种实际已经是被淘汰的落后方法。
1.2.2单IP的双线
单线单IP实现双线路,这种是新兴的路由技术,这个IP不属于任何电信运营商,当解析的时候,自动判断访问者是那种线路,使该IP走那种线路,满足各线路需要。不过,单IP双线服务是在机房路由器级根据用户线路,切换相应的电信/网通线路,由于大部分双线路机房是从电信、网通获得IP地址,没有权限切换线路,导致根本无法达到全网快速的目的,而一部分有IP自治域的机房,却无法获得从电信/网通获得足够的带宽,导致用户访问速度并不理想。
1.2.3 单网卡双IP的智能双线
单网卡双IP智能双线是一种在单一网卡上绑定2个IP地址的新技术,这两个IP地址可以分别属于电信和网通,并且是电信和网通分配的IP地址,因此它们可以享用这两大网络运营商的带宽.当用户访问服务器上的网页时,网卡会根据用户来自于哪一条线路而分配相应的IP地址进行链接,这样就大大的提高了用户访问商家网站的速度。从而避免单IP双线的弱点,真正实现全网快速访问,并保证电信和网通都有充足的可扩展带宽。
二.单网卡双IP的配置示例
现在有很多DNS的服务站点,都可以对域名提供智能解析,可以把访问网站域名的用户根据电信和网通自动映射到不同的IP地址。
这样我们可以在web服务器上绑定2个IP地址,实现单网卡双IP的功能。
这里我们已linux为例。
[root@dave network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@dave network-scripts]# cat ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.4
PREFIX=24
GATEWAY=192.168.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
--复制eth0 配置:
[root@dave network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1
[root@dave network-scripts]# ls ifcfg-eth0*
ifcfg-eth0 ifcfg-eth0:1
[root@dave network-scripts]# cat ifcfg-eth0:1
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.4
PREFIX=24
GATEWAY=192.168.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
[root@dave network-scripts]#
--修改ifcfg-eth0:1 配置:
[root@dave network-scripts]# catifcfg-eth0:1
DEVICE="eth0:1"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.14
PREFIX=24
#GATEWAY=192.168.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="Systemeth0:1"
[root@dave network-scripts]#
注意:
只需要将网关地址配置在实际存在的ifcfg-eth0文件里,不要配置到虚拟出来的ifcfg-eth0:1之中。
另外,我是在重启OS之后,才使eth0:1 生效,之前重启网络服务或者ifdown 单个网卡,都只能看到eth0,而不能看到eth0:1.
--重启之后验证如下:
[root@dave ~]# ifconfig
eth0 Link encap:Ethernet HWaddr08:00:27:9E:39:72
inetaddr:192.168.1.4 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe9e:3972/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:83 errors:0 dropped:0 overruns:0 frame:0
TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11422 (11.1 KiB) TXbytes:16190 (15.8 KiB)
eth0:1 Link encap:Ethernet HWaddr08:00:27:9E:39:72
inet addr:192.168.1.14 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
--------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Skype: tianlesoftware
QQ: tianlesoftware@gmail.com
Email: tianlesoftware@gmail.com
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware