我们使用 Cisco ASA 5505 作为我们网络上的防火墙和 IPSec VPN 端点。
我们使用分割隧道来减少互联网链路的负载。换句话说,当有人连接到 VPN 时,他们的 DNS 查询将通过我们的内部 DNS 服务器,并且解析为 10.0.0.0/8 的主机的所有流量都将通过隧道发送。其他流量将通过其本地互联网网关发送。这对于 IPv4 流量非常有效。
我现在已经将 IPv6 连接(SixXS 6in4 隧道)推广到 LAN 上的所有服务器和台式机。我们的用户中有一部分(希望数量会越来越多)在家中拥有自己的 IPv6 连接。
当我将内部服务器的 IPv6 地址添加到内部 Bind9 DNS 时,一些外部用户无法再正确连接到内部服务器。我假设他们从我们的 DNS 获得 AAAA 记录,并且他们的应用程序偏好 AAAA 地址,尝试通过 IPv6 直接连接到服务器,而不是使用 IPSec 隧道。他们遇到我们的防火墙,最终超时并通过 IPv4 连接。作为回应,我从我们的 DNS 中删除了 AAAA 记录。
根据此论坛帖子Cisco IPSec 客户端不支持 IPv6,因此我必须花费高昂的费用升级到 AnyConnect。
我想到的一个解决方法:
- 制作一个裂脑 DNS,为 LAN 主机提供 AAAA 记录,仅为 VPN 客户端提供 A 记录。VPN 客户端位于特定的 IPv4 范围内,但不知道如何设置裂脑 DNS。
- 只需在内部 DNS 中不提供 AAAA 记录即可。这会将我们的 IPv6 使用限制在从内部客户端到通告 AAAA 记录的互联网服务器的连接上。内部流量将保持 IPv4 不变。
请问您有什么想法?有没有一种解决方案可以让我继续使用 IPSec VPN,同时在服务器上宣传 IPv6?
答案1
虽然这不是最优雅的解决方案,但您可以在 DNS 级别使用 BIND 拆分视图来解决这个问题,它允许您向不同的客户端显示不同的 DNS 信息。由于您的 VPN 客户端被整齐地隔离,因此过滤将很简单。设置区域文件以便您不必为每个服务器创建多个条目需要一点技巧,但并不太难。请参阅这个例子或 BIND9 文档。