配置电信网通双线双IP的解决办法

配置电信网通双线双IP 的解决办法做互联网网站,最头疼的事情之一就是电信和网通的互联互不通了,为了能够让北方网通和南方电信用户都可以快速的访问网站,解决办法就是托管到双线机房。双线机房有两类,一类是通

配置电信网通双线双IP 的解决办法

做互联网网站,最头疼的事情之一就是电信和网通的互联互不通了,为了能够让北方网通和南方电信用户都可以快速的访问网站,解决办法就是托管到双线机房。双线机房有两类,一类是通过BGP 技术实现互联互通,服务器只需要一个网卡一个IP 地址就可以了,由机房进行路由的智能判断,选择合适的路由访问,这样对于网站来说是很方便的,比方说上海移动的怒江机房,上海地面通的自建机房,科技网的机房,但BGP 机房一般带宽都比较少,流量高一些的话可能就没有办法了。另外一种就是双线双IP 的机房,带宽可能更高一些,但是路由配置极其复杂,比方说上海电信的市北机房。

因为和谐的原因,JavaEye 网站服务器最近被迫从原来的移动怒江双线机房当中搬了出去,由托管商推荐到了上海市北双线机房,市北双线机房实际上是电信机房,但是从天津网通拉了2G 专线过来,因此服务器需要至少两个网卡,一个网卡接电信网关,一个网卡接网通网关,来实现互联互通。如果多台服务器的话,还需要第3个网卡组建内网进行内网通讯。

对于双线双IP 的服务器来说,要解决两个问题:

一、你的网站用户究竟走那个IP 来访问你的服务器

二、你的网站内容究竟走那个IP 返回给用户

对于第1个问题,可以使用智能DNS 解析来解决,即DNS 服务器判断用户所在IP 地址,如果用户是电信接入,就把服务器的电信IP 解析给他;如果用户是网通接入,就把服务器的网通IP 解析给他。

智能DNS 可以自己基于开源的DNS 软件来定制,不过国内有一个很好的免费智能DNS 服务器提供商:,推荐使用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,添加内容:

C 代码

然后手工添加路由规则,在Console 里面执行如下命令:

C 代码

即让从电信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 用户智能解析域名别名设置方法

双线双IP 用户智能解析域名别名设置方法 1、在双线服务器中, 您可以选择自动识别, 也可以选择手动识别, 我们送的二级域名在试用时, 连接的为网通IP , 电信用户访问较慢, 所以, 应该用自己的一个域名绑定电信的IP . 2、双线双IP 自动识别: 双线双IP 用户要实现双线路自动识别需用别名解析,不在A 记录解析。例如,, 解析中, 别名的别名主机为:222199.vip.myedns.com. 网通/电信 202.75.208.119/202.75.217.183 别名主机为:15.aiqiwood.com. 网通/电信 211.155.234.231/211.155.231.172 别名主机为:14.aiqiwood.com. 网通/电信IP :202.75.211.81/211.155.225.31 别名主机为:12.aiqiwood.com. 网通/电信IP :211.155.234.252/211.155.225.27 别名主机为:11.aiqiwood.com. 网通/电信IP :

[color=red]60.190.168.43/221.12.130.235 别名主机为:22432.vip.myedns.com. [/color] 网通/电信IP :60.190.168.49/221.12.130.241 别名主机为:

,

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=none

IPADDR=218.57.200.242

NETMASK=255.255.255.0

GATEWAY=218.57.200.1

TYPE=Ethernet

USERCTL=no

IPV6INIT=no

PEERDNS=yes

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=none

IPADDR=222.173.254.21

NETMASK=255.255.255.240

GATEWAY=222.173.254.17

TYPE=Ethernet

USERCTL=no

IPV6INIT=no

PEERDNS=yes

# vi /etc/sysconfig/network-scripts/route-eth1

GATEWAY0=218.57.200.1

NETMASK0=255.255.255.0

ADDRESS0=218.57.200.242

# vi /etc/sysconfig/networking/profiles/default/resolv.conf

nameserver 202.102.152.3

nameserver 202.102.128.68

三、配置路由表

# vi /etc/iproute2/rt_tables,增加网通和电信两个路由表

252 cnc

251 tel

设置网通的路由表

# ip route add 218.57.200.0/24 via 218.57.200.242 dev eth0 table cnc # ip route add 127.0.0.0/8 dev lo table cnc

# ip route add default via 218.57.200.1 dev eth0 table cnc

,

设置电信的路由表

ip route add 222.173.254.0/24 via 222.173.254.21 dev eth1 table tel

ip route add 127.0.0.0/8 dev lo table tel

ip route add default via 222.173.254.17 dev eth1 table tel

制定策略,让222.173.254.21的回应数据包走电信的路由表路由,218.57.200.242的回应数据包走网通的路由表路由

ip rule add from 222.173.254.21 table tel

ip rule add from 218.57.200.242 table cnc

修改IP 转发文件

# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

net.ipv4.conf.default.rp_filter = 1

kernel.sysrq = 0

设置静态路由表文件

# vi /etc/sysconfig/static-routes

eth0 net 218.57.200.242 netmask 255.255.255.0 gw 218.57.200.1

eth1 net 222.173.254.21 netmask 255.255.255.240 gw 222.173.254.17

将从两个WAN 口出去的数据包进行IP 伪装masquerade

# /sbin/modprobe ip_conntrack_ftp

# /sbin/modprobe ip_nat_ftp

# /sbin/iptables -t nat -A postrouting -o eth0 -j masquerade

# /sbin/iptables -t nat -A postrouting -o eth1 -j masquerade

设置默认网关为网通

# route add default gw 222.173.254.17

增加出口路由策略,客户端是网通的走网通线路,其余走电信线路。

ip rule add to 121.16.0.0/13 table cnc

ip rule add to 121.24.0.0/14 table cnc

ip rule add to 121.28.0.0/15 table cnc

ip rule add to 121.30.0.0/16 table cnc

ip rule add to 121.31.0.0/16 table cnc

其余省略...

刷新路由表

ip route flush cache

四、配置DNS

在服务器上配置自己的DNS 解析,将域名服务器商处的域名解析指向服务器。

,

这样,来自网通的查询,将反馈网站网通的IP ,其余反馈电信的IP 。

配置named.conf

view "cnc" {

match-clients

{121.16.0.0/13;121.24.0.0/14;121.28.0.0/15;121.30.0.0/16;121.31.0.0/16;121.47.0.0/16;121.76.0.0/16;121.77.0.0/16;122.192.0.0/14;122.198.192.0/18;123.199.128.0/20;124.108.40.0/21;124.128.0.0/13;124.160.0.0/16;124.161.0.0/16;124.162.0.0/16;124.163.0.0/16;其余省略...;}

recursion yes;

zone "zhyh.org" {

type master;

file "/var/named/zhyh.org.cnc";

};

};

view "other" {

match-clients { any; };

recursion no;

zone "zhyh.org" {

type master;

file "/var/named/zhyh.org";

};

};

配置zhyh.org.cnc ,对应网通IP

$TTL 86400

@ IN SOA zhyh.org. root (

2006111800 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS zhyh.org.

IN A 218.57.200.242

IN MX 10 mail

www IN A 218.57.200.242

ns1 IN A 218.57.200.242

ns IN A 222.173.254.21

mail IN A 218.57.200.242

1 IN PTR localhost.

配置zhyh.org ,对应电信IP

$TTL 86400

@ IN SOA zhyh.org. root (

,

2006111800 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS zhyh.org.

IN A 222.173.254.21

IN MX 10 mail

www IN A 222.173.254.21

ns IN A 222.173.254.21

ns1 IN A 218.57.200.242

mail IN A 222.173.254.21

1 IN PTR localhost.

配置222.173.254.zone 、218.57.200.zone 做反向解析;

$TTL 86400

@ IN SOA zhyh.org. root.zhyh.org. (

2006111813

3600

7200

3600000

86400 )

IN NS localhost. 242 IN PTR ns1.zhyh.org.

242 IN PTR mail.zhyh.org.

五、配置apache ,做好虚拟主机设置

# vi /usr/local/apache/conf/httpd.conf

NameVirtualHost 218.57.200.242:80

NameVirtualHost 222.173.254.21:80

ServerName xxx.com

DocumentRoot /www/html/

ServerAdmin [url=mailto:webmaster@xxx.com]webmaster@xxx.com[/url]ErrorLog logs/zhyh.org-error_log

DocumentRoot /var/www/html/zhyh.org ErrorLog logs/zhyh.org-error_log

CustomLog "|/usr/local/sbin/cronolog /var/log/httpd/zhyh.org-access_log.Ymd" combined

,
标签: