首先,让我们从一张图片来说明我的问题......
当然,出于安全原因,IP 地址已经被混淆。
我有一个内部局域网,192.168.1.x,位于 ISA Server 2004 后面。此网络上驻留着许多固定工作站、一个 POP3 邮件服务器(不是 Exchange)和一个支持移动客户端的 WAP。所有设备都由 DHCP 提供服务(尽管在适用的情况下使用保留地址)。
在互联网方面,我有一个 ADSL 连接的路由器,它有一系列公共 IP 地址。路由器上的 WAN 端口的 IP 地址为 123.0.0.241,LAN 端口的 IP 地址为 123.0.0.246。
在这两者之间,我有一台带有两块网卡的 ISA Server 2004。第一块网卡连接到路由器,具有公用 IP 地址 123.0.0.242。路由器配置为路由流量,而不是使用 NAT。ISA Server 在其 123.0.0.242 公用 IP 地址上发布 POP3 邮件服务器。
问题是这个...
当移动设备在现场并连接到 WAP 时,它们属于 192.168.1.x 子网并直接连接到邮件服务器,而无需打扰 ISA 服务器。
然而,当他们离开现场时,他们现在必须通过 123.0.0.242 上的 ISA 服务器访问 POP3 服务器。
我想要的是移动设备的单一配置,无论它们是在现场还是在场外都可以工作。
如果我为他们配置 ISA 服务器的公网 IP(123.0.0.242),他们在现场时就无法联系邮件服务器,因为该 IP 位于 ISA 服务器的错误一侧。
显然,如果我为他们配置邮件服务器的私有 IP,他们在异地时就无法访问它。
我尝试过一种拆分 DNS 方法,其中邮件服务器的 FQDN 在现场解析为 192.168.1.2,在场外解析为 123.0.0.242。问题是 DNS TTL 太长,所以我必须等待很长时间才能让设备刷新 IP 地址。面向互联网的 DNS 服务器不是我的,我无法控制 TTL。
我尝试将邮件服务器的 FQDN 与公用和专用 IP 地址关联起来,依靠 DNS 客户端的循环故障转移最终选择正确的 IP 地址。除了在别人的网络上使用专用 IP 地址是个非常糟糕的主意之外,当您从现场移动到异地或反之亦然时,某些设备似乎不太愿意故障转移到备用地址。
我无法将公共 IP 地址绑定到 ISA Server 上的内部和外部适配器,因为 ISA Server 抱怨颇多(我不能说我责怪它)。
所以,我被难住了。我想要的是内部和外部客户端都能够使用公共 IP 地址访问邮件服务器。我有一些备用地址,所以我可以使用其他地址,如果这有帮助的话。
但我不知道下一步该去哪里。任何建议都将不胜感激!
答案1
分割 DNS 应该是可行的。
我认为在切换无线网络时系统的本地 DNS 缓存会重置..但现在我想起来,我以前没有尝试过(并且我找不到任何相关文档)。
如果是操作系统缓存,则很容易克服:
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\MaxCacheTtl
时间以秒为单位,因此将其缩短到几分钟;对 LAN 上的 DNS 服务器进行更频繁的查询不会对任何人造成伤害。
但是,我怀疑这不是问题所在。我怀疑邮件客户端应用程序是保留旧主机解析数据的罪魁祸首……这让事情变得更加困难。这取决于您的邮件应用程序,但最坏的情况是,如果客户端应用程序无法清除不再连接的网络的数据,用户可能需要重新启动客户端应用程序。
最后,强制性的安全说明:
如果您使用的是普通端口 110 POP3,而连接中没有 SSL 组件,那就糟糕了;在公共 wifi 网络上,这会变得非常非常糟糕。POP3 是一种明文协议;所有身份验证数据和所有邮件都是明文,同一 wifi 网络上的任何人都可以获取。
如果您坚持使用未加密的 POP3,那么请抛弃这种架构并使用远程访问 VPN。