由于w2k的VPN服务器地址池使用的是和本地内网卡同一段,所以很多网友在配置ISA2004的时候,VPN服务的地址池仍然习惯性的使用和本地内网卡同一段,虽然使用手动输入已经被ISA2004禁止,但是使用DHCP确可以实现这个目的,那么为什么ISA2004要禁止使用已经使用在的地址呢,下面我来谈谈我的看法。
首先来说W2K,为什么使用同一段地址,我们通过微软的一些资料可以看出,W2K对于VPN服务使用的是桥接方式。所以这里不存在路由问题,同一网段的地址是在同一个物理位置。
ISA2004使用的是不是桥接模式呢,我们知道桥接,就好比在一个HUB里面,你无法让网关去控制下面的两个PC是不是能够互相访问。所以为了加强安全性,ISA2004不允许使用桥接模式,而是默认使用路由模式(也可以使用NAT模式,更提高了安全系数,这种情况分配IP地址范围就可以随意了),因为使用桥接怎么控制VPN客户端的访问权限呢。
我通过DHCP,使用和内网卡(192.168.1.1/24)同一段地址,VPN客户拨入后得到IP为192.168.1.201/32,使用VPN客户端,ping内网pc,可以接通,内网用户也可以接通VPN用户,我们知道如果内网用户不以ISA内网卡地址为网关的话,在ISA另一个网卡地址上的PC将不能被接通,但是我修改了网关地址,依然可以接通VPN用户,说明这已经不是在路由了,而是在桥接,为了证实想法,我抓了包,当ping VPN客户端地址的时候,本地arp表里面没有192.168.1.201的地址,于是就发出了对于192.168.1.201的广播请求,ISA内网卡回应了请求,告知192.168.1.201的MAC地址,对比这个MAC地址,和ISA内网卡一致,由此看出,如果使用同段的地址,ISA2004依然使用了桥接模式。那么在ISA2004的防火墙策略里使用VPN客户端这个网络元素就会失效,我禁止VPN客户端访问内部,然而VPN客户端依然可以接通内部PC,内部PC也依然可以接通VPN客户端。当禁止了内部访问内部之后,不能接通。这样做就导致ISA2004的网络元素混乱,不能起到应有的作用。
ISA2004不仅仅禁止VPN地址池加入本地网卡网段的地址范围,也禁止加入整个已经在ISA2004登记过的地址范围,本人无法加入那样的地址,不过为了分析一下原理,下面我模拟一个使用内网已经存在地址的例子,说明问题。
如图模拟构成了一个网络。VPN客户拨入后得到IP为192.168.2.201/32,通过ISA2004的内部环回可以路由到本地网卡192.168.1.254,也可以路由到internet,如果这时候没有路由器增加的那个PC2问题不大,pc1的网关是192.168.1.254,访问都可以完成。那么来看路由器的192.168.2.0/24网段,为了能让该段访问外部,在ISA2004上增加内网地址范围192.168.2.0/24,并且增加路由192.168.2.0/24 192.168.1.1 192.168.1.254,而在路由器上需要增加0.0.0.0/0 192.168.1.254 192.168.1.1,这样pc1和pc2就可以访问internet。
当192.168.2.201访问pc2的时候,查找本地路由表,本地路由表里没有,于是发到默认路由192.168.2.200上,也就是ISA2004的VPN服务器的虚拟网卡, ISA2004的路由表里有192.168.2.0/24 192.168.1.1 192.168.1.254,根据这个路由,送到下面路由器192.168.1.1去,路由器转发到pc2,pc2返回应答信息到路由器,路由器查找自己的路由表,发现192.168.2.0/24在192.168.2.1接口上,但是arp对应表里没有192.168.2.201,在192.168.2.1上发起广播,没有谁来应答,丢弃,访问失败。
从pc2访问192.168.2.201,比较掩码,为同一段,不提交路由器,广播,未果,丢弃。
如果VPN客户端使用了和ISA2004的VPN地址池分配相同的本地地址会怎么样呢。
VPN地址池为192.168.20.0/24,VPN客户端分配给192.168.20.5/32,本地地址192.168.20.9/24。
我们来看一下路由表
Active Routes:
Default Gateway: 192.168.20.5
我们看到出现了两个默认网关,那是不是就无法路由呢,对于双网关,windows区别了优先级,看Metric值,192.168.20.5的值低,那么默认网关就是192.168.20.5,只有当这个网关有问题才会启用192.168.20.9,也就是说原来的网关被屏蔽了,这样我们访问远程网段仍可以接通,通过试验的确可以ping通远程地址的192.168.100.21,上网仍会畅通。但是想要接通192.168.20.0的远程地址就不行了,因为我看到已经有192.168.20.0的路由的interface是192.168.20.9,只要访问192.168.20.0/24的地址就会送到192.168.20.9,也就是只能在本地查找。
那么如果远程网络的ISA2004使用了和本地内网卡同一段地址,这样会怎么样呢。由于存在192.168.20.0/24 192.168.20.9的路由,远程地址上的192.168.20.21终端不能接通,原理上面说的,凡是到192.168.20.0/24都往本地网卡上送,不会使用默认路由192.168.20.5,因为本地路由表里面存在路由。这就是所谓的同一段地址必须在相同的物理位置,如果这样做会造成路由失败。
综上所述,我得出一个结果:ISA2004配置VPN地址池的时候,不能使用在ISA2004已经登记过的IP地址范围,不论是本地网卡的地址范围还是下级路由器的地址范围。