实践基于ISA环境的双线路策略路由访问
国内Internet发展迅速,可是中国网通和中国电信之间的互联互通问题总是得不到改进而且越演越烈,就像那句话中讲到的,世界上最远的距离不是中国到美国,而是网通到电信!两大ISP间的竞争直接影响到了广大的网民,但是也是因为这样的竞争才又养活了不少靠互通产品发财的商人们!互通真的就这么难么?是的,互通就是这么难,大家想尽了办法去解决这个难题,用软件用设备统统上来,国内双WAN路由器卖的也是异常火爆,不少企业、特别是网吧成为支撑这些产品的大客户!软件方面好像并没有太好的产品出现,本身就受ISP的共享限制,谁还有精力去研发这些产品呢,虽然网上已经有不少通过类似VPN 技术实现的互联互通产品,可是毕竟中间存在一些应用兼容性、使用便捷性、安全性等诸多的问题!
在IDC应用上,目前最为成熟地实现双向多线路的主要技术就是BGP,但是对于企业和个人来说简直就是登天!对于我们的应用而言,我们只需要实现双线路访问就可以了!是购买设备好呢?还是使用纯软件方式来实现呢?之前已经说过软件的实现主要是通过一些开发商制作的程序连接到他们的多线路网络环境访问互联网,但是安全确实隐患要知道所有的数据都要经过他们,那么应用中涉及到的明文密码该如何解决安全问题呢?看似这种方式也不是一种很好的解决办法,玩玩还是可以的!而硬件方式也不乐观,有些网络环境可能使用硬件会制约整个企业应用,虽然这些硬件的内部系统功能也非常强大!我个人不考虑购置硬件!
难道就没有办法了么?有人使用基于xNIX系统来实现,可是xNIX的维护成为也是比较高的,毕竟大部分企业都在使用基于Windows的平台。虽然Windows平台不支持多个默认网关,但是支持多个路由。所以我们要实现双线路访问的关键技术就是路由,并且要使用的是策略路由!废话说了不少,只是为了找个开场白,我也不多罗嗦什么,现在就将自己的实践总结一下与大家分享。
最近由于公司的大部分服务器转至网通和双线路IDC上,所以在电信线路上的应用月来越少,这几天电信系统升级导致线路经常中断,我们的工作无法继续!而办公室的线路还必须使用电信的专线,网通的光缆是上不来的,如果要使用网通也只能申请ADSL,难以取舍!最终决定两条线路一起上,公司要求实现双线路的自动选择访问,而且在一条线路瘫痪时不会影响整个网络的访问,另外由于服务器没有键盘、鼠标、显示器而且每天要自动关机第二天再人工打开,那么还要解决自动拨号等问题。总结了一些问题之前已经发表过Blog,可以参考这里:http://goxia.maytide.net/index.php?job=art&articleid=a_20061221_205219
以下是本次实践环境的一些信息:
使用一台ISA服务器作为代理网关和网络防火墙,内部的一些对外应用及测试也是通过ISA发布出去的。这台ISA服务器的基本配置是PIV1.7G/256M/40G/3*NIC-100M,安装了Windows Server 2003 SP1 ST版和ISA2004 SP2 ST版。三块网卡分别命名为LAN、CTC、CNC,分别与内部局域网、电信大厦100M专线、网通ADSL拨号器相连。
局域网:IP192.168.0.0/24,DNS192.168.0.253,GW192.168.0.254(ISA)
电信网:IP219.150.157.3/24,DNS219.150.150.150,GW219.150.157.1
网通ADSL:DHCP+方式的自动获取,并且是防共享的线路(鄙视CNC)
下面的网络接入示意图应该能够想尽地展示当前接入方式等信息供大家参考!
前面我们已经说过,本次实现双线路访问的关键所在就是策略路由,那么我们需要先收集到中国网通和中国电信的IP地址范围,虽然这些东西不是那么好搞,可是中国人还是很有办法地,要获取他们的地址范围可以访问:http://goxia.maytide.net/index.php?job=art&articleid=a_20060301_163818,这里我贴出本次环境所使用的电信地址范围:
中国电信
中国电信 | |
58.32.0.0/13 | 202.97.32.0/19 |
58.40.0.0/15 | 202.97.64.0/19 |
58.42.0.0/16 | 202.97.96.0/20 |
58.43.0.0/16 | 202.97.112.0/20 |
58.44.0.0/14 | 202.98.32.0/21 |
58.48.0.0/13 | 202.98.48.0/20 |
58.59.128.0/17 | 202.98.64.0/19 |
58.60.0.0/14 | 202.98.96.0/21 |
58.208.0.0/12 | 202.98.128.0/19 |
59.32.0.0/13 | 202.98.160.0/21 |
59.40.0.0/15 | 202.98.168.0/21 |
59.42.0.0/16 | 202.98.192.0/21 |
59.44.0.0/14 | 202.98.200.0/21 |
59.48.0.0/16 | 202.98.208.0/20 |
59.49.0.0/17 | 202.98.224.0/21 |
59.49.128.0/17 | 202.98.232.0/21 |
59.50.0.0/16 | 202.98.240.0/20 |
59.51.0.0/17 | 202.99.192.0/21 |
59.51.128.0/17 | 202.100.96.0/21 |
59.52.0.0/14 | 202.100.104.0/21 |
59.56.0.0/14 | 202.100.112.0/20 |
59.60.0.0/15 | 202.100.136.0/21 |
59.62.0.0/15 | 202.100.160.0/21 |
60.160.0.0/15 | 202.100.168.0/21 |
60.162.0.0/15 | 202.100.176.0/20 |
60.164.0.0/15 | 202.100.192.0/21 |
60.166.0.0/15 | 202.100.208.0/20 |
60.168.0.0/13 | 202.100.224.0/19 |
60.176.0.0/12 | 202.101.0.0/18 |
61.133.128.0/17 | 202.101.64.0/19 |
61.134.0.0/18 | 202.101.96.0/19 |
61.134.64.0/19 | 202.101.128.0/18 |
61.136.128.0/17 | 202.101.224.0/21 |
61.137.0.0/17 | 202.102.0.0/19 |
61.138.192.0/18 | 202.102.32.0/19 |
61.139.0.0/17 | 202.102.64.0/18 |
61.139.192.0/18 | 202.103.0.0/21 |
61.140.0.0/14 | 202.103.8.0/21 |
61.144.0.0/14 | 202.103.16.0/20 |
61.152.0.0/14 | 202.103.32.0/19 |
61.157.0.0/16 | 202.103.96.0/21 |
61.159.64.0/18 | 202.103.192.0/19 |
61.159.128.0/17 | 202.103.224.0/21 |
61.160.0.0/16 | 202.104.0.0/15 |
61.161.64.0/18 | 202.107.128.0/17 |
61.164.0.0/15 | 202.109.0.0/16 |
61.166.0.0/16 | 202.110.128.0/18 |
61.169.0.0/16 | 202.111.0.0/17 |
61.170.0.0/15 | 218.4.0.0/15 |
61.172.0.0/14 | 218.6.0.0/16 |
61.177.0.0/16 | 218.13.0.0/16 |
61.178.0.0/16 | 218.14.0.0/15 |
61.180.0.0/17 | 218.16.0.0/14 |
61.183.0.0/16 | 218.20.0.0/16 |
61.184.0.0/14 | 218.21.0.0/17 |
61.188.0.0/16 | 218.22.0.0/15 |
61.189.128.0/17 | 218.62.128.0/17 |
61.190.0.0/15 | 218.63.0.0/16 |
125.64.0.0/13 | 218.64.0.0/15 |
125.72.0.0/16 | 218.66.0.0/16 |
125.73.0.0/16 | 218.67.0.0/17 |
125.74.0.0/15 | 218.70.0.0/15 |
125.76.0.0/17 | 218.72.0.0/13 |
125.80.0.0/13 | 218.80.0.0/12 |
125.88.0.0/13 | 219.128.0.0/12 |
125.104.0.0/13 | 219.144.0.0/13 |
125.112.0.0/12 | 219.152.0.0/15 |
202.96.96.0/21 | 219.159.64.0/18 |
202.96.104.0/21 | 219.159.128.0/17 |
202.96.112.0/20 | 220.160.0.0/11 |
202.96.128.0/21 | 221.224.0.0/13 |
202.96.136.0/21 | 221.232.0.0/14 |
202.96.144.0/20 | 221.236.0.0/15 |
202.96.160.0/21 | 221.239.128.0/17 |
202.96.168.0/21 | 222.72.0.0/15 |
202.96.176.0/20 | 222.75.0.0/16 |
202.96.200.0/21 | 222.76.0.0/14 |
202.96.208.0/20 | 222.80.0.0/15 |
202.96.224.0/21 | 222.82.0.0/16 |
202.97.0.0/21 | 222.83.0.0/17 |
202.97.8.0/21 | 222.83.128.0/17 |
202.97.16.0/20 | 222.84.0.0/16 |
222.219.0.0/16 | 222.85.128.0/17 |
222.220.0.0/15 | 222.86.0.0/15 |
222.240.0.0/13 | 222.90.0.0/15 |
58.56.0.0/15 | 222.92.0.0/14 |
58.58.0.0/16 | 222.172.128.0/17 |
58.59.0.0/17 | 222.176.0.0/13 |
221.238.0.0/16 | 222.184.0.0/13 |
221.239.0.0/17 | 222.208.0.0/13 |
222.74.0.0/16 | 222.216.0.0/15 |
222.85.0.0/17 | 222.218.0.0/16 |
222.88.0.0/15 | 222.172.0.0/17 |
222.168.0.0/15 | 222.173.0.0/16 |
| 222.174.0.0/15 |
| 222.222.0.0/15 |
之所以本次实践选择电信IP做策略路由是因为电信线路使用的是固定IP和网关,而网通的是动态的,所以只能以网通的ADSL为主线路,否则需要经常性的修改路由注册中的网关地址,这样非常不便利,所以……
有了以上的IP地址范围,下来讲讲实现的原理,其实就是将这些地址范围与电信的网关所关联,这样当路由选择的时候就会根据我实现写入的路由表进行选择访问,最终实现如果是电信IP则走电信的网关,网通IP则走系统默认网关。
下面就是最终写入路由表后的显示结果(节选了部分内容):
======================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x10003 ...11 11 11 11 11 11 ...... Intel 8255x-based PCI Ethernet Adapter (10/100) #2
0x10004 ...22 22 22 22 22 22 ...... Intel 8255x-based PCI Ethernet Adapter (10/100)
0x10005 ...33 33 33 33 3333 ...... ADMtek AN983 10/100 PCI Adapter
======================================================================
======================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 219.155.195.254 219.155.195.172 20
58.32.0.0 255.248.0.0 219.150.157.1 219.150.157.3 1
219.150.157.0 255.255.255.0 219.150.157.3 219.150.157.3 20
219.150.157.3 255.255.255.255 127.0.0.1 127.0.0.1 20
219.150.157.255 255.255.255.255 219.150.157.3 219.150.157.3 20
219.152.0.0 255.254.0.0 219.150.157.1 219.150.157.3 1
219.155.195.0 255.255.255.0 219.155.195.172 219.155.195.172 20
219.155.195.172 255.255.255.255 127.0.0.1 127.0.0.1 20
219.155.195.255 255.255.255.255 219.155.195.172 219.155.195.172 20
224.0.0.0 240.0.0.0 192.168.0.254 192.168.0.254 20
224.0.0.0 240.0.0.0 219.150.157.3 219.150.157.3 20
224.0.0.0 240.0.0.0 219.155.195.172 219.155.195.172 20
255.255.255.255 255.255.255.255 192.168.0.254 192.168.0.254 1
255.255.255.255 255.255.255.255 219.150.157.3 219.150.157.3 1
255.255.255.255 255.255.255.255 219.155.195.172 219.155.195.172 1
Default Gateway: 219.155.195.254
======================================================================
Persistent Routes:
None
显示路由表信息的命令是:
向路由表添加策略路由访问的命令如:
这段命令的意思就是:添加子网为255.248.0.0的58.32.0.0 IP地址段使用219.150.157.1路由访问,并设定跃点数为1
OK,是否基本上对我的讲解明白了,如果不明白那就建议你再看看其他人的资料文章!
现在策略路由已经解决,那么在ISA中该如何应用呢?其实很简单,因为本次环境下我已经做过了ISA的访问规则并且没有特别要求所以新添加的这条网通ADSL线路的访问规则与之前电信的相同,也就是将网通ADSL设置为外部即可。
为此,我们打开ISA控制器,在左边Menu窗体下的“配置”-“网络”中新添加一个网络,这里为了便于记忆我命名为“CNC ADSL”,网络类型为外部网络,网络地址留空。
然后再新建一个网络规则,设置VPN客户端、被隔离的VPN客户端及内部网络与CNC ADSL网络之间为NAT关系。
完成后检查一下你的访问规则策略,没有问题后你就可以测试一下了。其实我感觉原理高清楚后还是很简单的,其实就是在路由表中加入指定的路由信息即可!不过为了适应应用我采用的是批处理方式写入路由信息,如果永久性写入可能导致一条线路瘫痪后无法快速的切换。而自动拨号的解决办法是采用一个专用的帐号在ISA服务器配置为自动登录,并在此帐号的启动组里添加拨号软件的快捷方式及路由添加批处理文件。这样以来每天早上启动服务器后这个专用帐号就会自动登录,并执行拨号和路由写入等任务。而我要远程管理时则使用另外一个帐号登录就可以避免重复执行自启动任务。我想应该还有其他好办法来实现不过时间比较紧,要求第二天就开始正常使用,所以也只能用这个笨办法了!另外需要说明的是因为网通的ADSL是限制共享的所以我找了一个破解版的拨号软件实现了内部共享,没办法这是让网通逼得!
其他的好像就没什么需要补充的,只是在日后需要经常维护这个路由表,发现新IP段及时更新。并且抽时间再找找更好的自启动方法!也欢迎大家补充和建议!本文因为时间比较仓促,所以看上去比较粗糙还请诸位见谅了。今天可是圣诞节,同时预祝大家今晚玩得高兴!
PS补充一下:如果当一条线路当掉,只需要把路由信息添加批处理移走重新启动服务器,或者直接写个批量删除路由信息的批处理执行一下就可以,实际中我即时测试了一下停止一块外部网卡上网正常,不过路由信息的添加和删除不会立刻生效!
经典的文章,偶第一个捧场了。
学习。。。