虽然 192.168/16 甚至 10/8 上存在各种各样不可路由的私有网络,但有时考虑到潜在的冲突,这种情况仍然会发生。例如,我曾经在 192.168.27 上设置了内部 VPN 网络的 OpenVPN 安装。这一切都很顺利,直到一家酒店将该子网用于 27 楼的 wifi。
我将 VPN 网络的 IP 重新设置为 172.16 网络,因为酒店和网吧似乎很少使用这个网络。但这是解决问题的合适方法吗?
当我提到 OpenVPN 时,我很想听听人们对其他 VPN 部署(包括普通的 IPSEC)上存在此问题的看法。
答案1
我们与合作伙伴和客户建立了多个 IPSec VPN,偶尔会与他们的网络发生 IP 冲突。我们的情况的解决方案是源NAT或者目的地址转换通过 VPN。我们使用的是 Juniper Netscreen 和 SSG 产品,但我认为大多数高端 IPSec VPN 设备都可以处理这个问题。
答案2
我认为无论你使用什么,你都会面临冲突的风险。我想说很少有网络使用 172.16 以下的范围,但我没有证据支持这一点;只是直觉认为没有人能记住它。你可以使用公共 IP 地址,但这有点浪费,你可能没有足够的空闲地址。
另一种方法是使用 IPv6 作为 VPN。这需要为您想要访问的每个主机设置 IPv6,但您肯定会使用一个唯一的范围,尤其是当您为您的组织分配了 /48 时。
答案3
不幸的是,保证您的地址不会与其他地址重叠的唯一方法是购买一块可路由的公共 IP 地址空间。
话虽如此,您可以尝试查找 RFC 1918 地址空间中不太流行的部分。例如,192.168.x 地址空间通常用于住宅和小型企业网络,可能是因为它是许多低端网络设备的默认地址。不过我猜至少 90% 使用 192.168.x 地址空间的人都在 C 类大小的块中使用它,并且通常从 192.168.0.x 开始子网寻址。您可能是很多不太可能找到使用 192.168.255.x 的人,所以这可能是一个不错的选择。
10.xxx 空间也常用,我见过的大多数大型企业内部网络都是 10.x 空间。但我很少看到有人使用 172.16-31.x 空间。我敢打赌,你很少会发现有人已经在使用 172.31.255.x 空间。
最后,如果您要使用非 RFC1918 空间,至少要尝试寻找不属于他人且将来不太可能分配给公众使用的空间。有一篇有趣的文章这里在 etherealmind.com 上,作者谈到了使用为基准测试保留的 RFC 3330 192.18.x 地址空间。这对于您的 VPN 示例来说可能可行,除非您的 VPN 用户之一就职于制造或基准测试网络设备的公司。:-)
答案4
使用不太常见的子网,例如 192.168.254.0/24,而不是 192.168.1.0/24。家庭用户通常使用 192.168.xx 块,企业使用 10.xxx,因此您可以使用 172.16.0.0/12,几乎不会出现问题。
使用较小的 IP 地址块;例如,如果您有 10 个 VPN 用户,则使用 14 个 IP 地址池;/28。如果有两个到同一子网的路由,路由器将首先使用最具体的路由。最具体 = 最小子网。
使用点对点链接,使用 /30 或 /31 块,这样 VPN 连接上只有两个节点,并且不涉及路由。这需要为每个 VPN 连接设置一个单独的块。我使用 Astaro 版本的 openVPN,这就是我从其他位置连接回家庭网络的方式。
至于其他 VPN 部署,IPsec 在站点到站点的基础上运行良好,但在旅行中的 Windows 笔记本电脑上配置起来却很麻烦。PPTP 最容易配置,但很少在 NAT 连接后工作,并且被认为是最不安全的。