译自Stefaan Pouseele,"How to Implement VPN Off-Subnet IP Addresses",加以编辑修改
1. 总结
在Tom Shinder的VPN client security - Part 1: Split Tunneling Issues一文中,他谈及了向VPN客户分配脱离内部网络的IP地址来提高内部网络的安全性。但是如果想实现还有一个主要的缺陷,你不能使用DHCP服务器来向VPN客户分配IP地址,因为DHCP服务器和ISA Server的内部接口在一个网段中。在这篇短文中,我将给你展示如何修改你网络的设计,并且超越这个限制。此外,如果你在本地网络中拥有多个LAN或者WAN,这个实例网络也可以作为常规结构。
2. 网络设计
我经常在论坛上阅读到有人想在ISA Server上使用多个内部接口。作为一个经常接触网络的人,我不提供这种结构。我的看法是ISA Server应该只是一个防火墙,而不是一个内部路由器。因为ISA Server不能控制多个内部接口之间的传输。我强烈建议内内部路由的功能放置在一个指定的三层设备,例如路由器或者三层交换机。因为,我计划使用以下的网络设计:

在Jim Harrison的文章Designing An ISA Server Solution on a Complex Network中,很好的阐述了这种场景中该如何配置ISA Server上的路由,所以,我不想重复。首先,这个设计没有什么特别的地方。可是,如果你想避免Split Tunneling 问题并且提高网络的安全性,你必须分配一段不包含在剩余的内网的有类别IP范围的IP段给ISA Server的内部接口。同样的,除了ISA Server和三层设备外,没有其他设备连接到这个网段。 因为这个网络只是一个中继网络,在上图中,我称之为Stub Subnet。
3. 有类别IP地址
在20世纪70年代最初的Internet路由架构发展中,使用Class A、Class B、Class C三个类别中的一个来分配站点的IP地址。这些类别在容量和数量上存在不同。Class A地址是最多的,但是数量最少。Class C包含的地址最少,但是数量最多。同样也定义了Class D和E,但是他们并不用于通常的环境。类别的不同总结如下:
· Class A - 0nnnnnnn hhhhhhhh hhhhhhhh hhhhhhhh
第一位 0,网络位7,主机位24
第一字节:0 - 127
拥有126个网络(0和127保留)
每个Class A网络拥有16,777,214主机
· Class B - 10nnnnnn nnnnnnnn hhhhhhhh hhhhhhhh
前两位 10,网络位14,主机位16
第一字节:128 - 191
拥有16,384个网络
每个Class B网络拥有65,532个主机
· Class C - 110nnnnn nnnnnnnn nnnnnnnn hhhhhhhh
前三位110,网络位 21,主机位 8
第一字节:192 - 223
拥有2,097,152个网络
每个网络可以拥有 254个主机
· Class D - 1110mmmm mmmmmmmm mmmmmmmm mmmmmmmm
前四位1110,28个多播地址位
第一字节:224 - 247
Class D是保留为多播地址用,详细信息参照 RFC 1112
· Class E - 1111rrrr rrrrrrrr rrrrrrrr rrrrrrrr
前四位 1111,28个保留地址位
第一字节:248 - 255
保留为实验使用
在ISA Server安装为防火墙或者集成模式时,你必须指定本地地址表(LAT)。本地地址表列出了位于ISA Server之后的内部网络的所有内部IP地址。ISA Server使用LAT来控制内部网络内的计算机如何和外部进行通信。
典型的,LAT包含了ISA Server计算机内部网卡相关的所有IP地址,另外还有Internet Assigned Numbers Authority (IANA)在RFC 1918: Address Allocation for Private Internets中定义的内部保留IP指定,它们是
10.0.0.0 - 10.255.255.255 (10/8 前缀)
172.16.0.0 - 172.31.255.255 (172.16/12 前缀)
192.168.0.0 - 192.168.255.255 (192.168/16 前缀)
它们分别是Class A、Class B、Class C类网络。
为了给Stub Subnet分配不包含在内部网络的有类别IP地址范围的IP地址,你必须小心的计算你的IP编码。例如,如果你在内部网络中使用保留IP段10.0.0.0/8,你不能给Stub Subnet分配10.0.0.0/8的IP段,因为它们都属于同样的Class A地址。
因此,我建议你按照以下方法来分配保留的IP地址段:
· 首先决定你需要同时支持的VPN客户数量,它决定你需要定义多少个VPN端口;
· 如果你只需要同时支持低于254个的VPN客户,在192.168.0.0/16外分配一个Class C网络;
· 如果你需要同时支持超过254个的VPN客户,在172.16.0.0/16外分配一个Class B网络。
至于如何使用DHCP来为VPN客户分配IP段,请阅读Tom Shinder的文章 Using DHCP with ISA/VPN Server Clients 。
4. 结束
通过使用上述网络设计和给Stub Subnet分配不包含在内部网络有类别IP段的IP地址范围,你可以通过向VPN客户分配脱离内部网络的IP地址来提高内部网络的安全性,而且可以超越不能DHCP来为VPN客户分配IP的限制。
, ,