问题描述:

L2TP ××× 

错误789:L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误.


从Windows XP SP2 开始不再支持与位于网络地址转换器后面的服务器的 IPsec NAT-T 安全关联。(包括XP SP3、Vista、2008、Win7、2008R2等) 

XP用户,请查阅微软知识库编号为818043的文章。

http://support.microsoft.com/kb/818043/ 

警告:注册表编辑器或其他方法使用不当可能导致严重问题。这些问题可能需要重新安装操作系统。Microsoft 不能保证您可以解决这些问题。修改注册表需要您自担风险。 要改变运行 Windows XP SP2 的计算机的 IPsec NAT-T 行为,必须创建 AssumeUDPEncapsulationContextOnSendRule 注册表值。

默认情况下,Windows XP SP2 不再支持与位于网络地址转换器后面的服务器的 IPsec NAT-T 安全关联。因此,如果虚拟专用网络 (×××) 服务器位于网络地址转换器的后面,则在默认情况下,基于 Windows XP SP2 的 ××× 客户端无法与 ××× 服务器进行 L2TP/IPsec 连接。此方案包括运行 Microsoft Windows Server 2003 的 ××× 服务器。

这种默认行为还可以阻止运行 Windows XP SP2 的计算机在目标计算机位于网络地址转换器后面时使用 L2TP/IPsec 进行远程桌面连接。

由于网络地址转换器转换网络流量的方式的原因,您在将服务器放在网络地址转换器后面并使用 IPsec NAT-T 时,可能会遇到意外的结果。因此,如果需要 IPsec 进行通讯,我们建议您对可以直接从 Internet 连接到的所有服务器使用公共 IP 地址。

要创建并配置 AssumeUDPEncapsulationContextOnSendRule 注册表值,请按照以下步骤操作:

  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。

  2. 找到并单击下面的注册表子项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPsec

  3. 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。

  4. 在“新值 #1”框中,键入 AssumeUDPEncapsulationContextOnSendRule,然后按 Enter 键。

  5. 右键单击“AssumeUDPEncapsulationContextOnSendRule”,然后单击“修改”。

  6. 在“数值数据”框中键入下列值之一:

  • 0(默认)
    值 0(零)将 Windows 配置为无法建立与位于网络地址转换器后面的服务器的安全关联。

  • 1
    值 1 将 Windows 配置为可以建立与位于网络地址转换器后面的服务器的安全关联。

  • 2
    值 2 将 Windows 配置为可以在服务器和基于 Windows XP SP2 的客户机都位于网络地址转换器后面时建立安全关联。

单击“确定”,然后退出注册表编辑器。

重新启动计算机。


Vista、2008、Win7、2008R2用户,请查阅微软知识库编号为926179的文章。

http://support.microsoft.com/kb/926179

默认情况下,Windows Vista 和 Windows Server 2008 操作系统不支持 Internet 协议安全 (IPsec) 网络地址转换 (NAT) 遍历 (NAT-T) 安全关联到 NAT 设备后面的服务器。因此,如果虚拟专用网络 (×××) 服务器在NAT 设备的后面时,基于 Windows Vista 的 ××× 客户端计算机或基于 Windows Server 2008 的 ××× 客户端计算机不能进行第二层隧道协议 (L2TP) / IPsec 连接到 ××× 服务器。此方案包括运行 Windows Server 2008 和 Microsoft Windows Server 2003 的 ××× 服务器 

当您把服务器放在 NAT 设备后面,并使用 IPsec NAT-T 环境时,NAT 设备的转换网络流量的方式,可能会遇到意外的结果。因此,如果您必须用 IPsec 通信,建议您对所有服务器都使用公用 IP 地址,这样就可以连接至 Internet。但是,如果您必须把服务器放在 NAT 设备后面,然后使用 IPsec NAT-T 环境,您可以通过更改 ××× 客户机和 ××× 服务器上的注册表值启用通信。 

若要创建和配置

AssumeUDPEncapsulationContextOnSendRule

注册表值,请按照下列步骤操作:

  1. 以管理员组的成员的用户身份登录到 Windows Vista 客户端计算机上。

  2. 单击开始

    开始按钮

    指向所有程序,单击附件,单击运行键入 注册表编辑器然后单击确定。如果用户帐户控制对话框中将显示在屏幕上,并提示您提升管理员令牌,请单击继续

  3. 找到并单击以***册表子项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent

    注意: 您还可以应用

    AssumeUDPEncapsulationContextOnSendRule

    双字节值到 Microsoft Windows XP Service Pack 2 (SP2)-基于 ××× 客户端计算机。若要执行此操作,找到并单击以***册表子项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec

  4. 编辑菜单上,指向新建,然后单击DWORD (32 位) 值

  5. 键入 AssumeUDPEncapsulationContextOnSendRule然后按 enter 键。

  6. 用鼠标右键单击AssumeUDPEncapsulationContextOnSendRule,然后单击修改

  7. 数值数据框中,键入下列值之一:

  • 0
    值为 0 (零) 将 Windows 配置为无法建立与位于 NAT 设备后面的服务器的安全关联。这是默认值。

  • 1
    如果值为 1 将 Windows 配置为可以建立与位于 NAT 设备后面的服务器的安全关联。

  • 2
    值为 2 将 Windows 配置为服务器和基于 Windows Vista 的或基于 Windows Server 2008 的 ××× 客户端计算机均位于 NAT 设备后面,它可以建立安全关联。

单击确定,然后退出注册表编辑器。

重新启动计算机。