站点到站点VPN问题通常可以分成下面几类:
| • |
在连接尝试应该被接受时被拒绝。 |
| • |
L2TP/IPSec身份验证问题。 |
| • |
EAP-TLS身份验证问题。 |
| • |
在连接尝试应该被拒绝是被接受。 |
| • |
无法到达VPN路由器以外的位置。 |
| • |
无法到达VPN路由器的虚拟接口。 |
| • |
无法自动建立请求连接。 |
| • |
无法建立隧道。 |
通过下面的故障诊断技巧,您可以区分导致上述VPN问题的配置或基础构架问题。
在连接尝试应该被接受时被拒绝
| • |
核实呼叫路由器证书正确,包括用户名、密码和域名,并核实应答路由器能够通过该证书。 | ||||||||
| • |
核实呼叫路由器的用户帐户没有发生下列情况:被锁定、过期、被禁用,或建立连接的时间与所配置的登录时间不相符。 | ||||||||
| • |
核实呼叫路由器的用户帐户没有被配置为在下次登录时更改密码,或核实密码是否过期。在连接过程中,呼叫路由器无法更改过期的密码,从而会导致连接尝试被拒绝。 | ||||||||
| • |
核实用户帐户没有远程访问帐户锁定而被锁定。详细信息,请参阅Windows Server 2003帮助和支持的"帐户锁定"。 | ||||||||
| • |
核实在应答路由器上正在运行路由和远程访问服务。 | ||||||||
| • |
核实在路由和远程访问嵌入式管理单元中,从VPN路由器属性的常规选项卡为LAN和请求拨号路由启用了应答路由器。 | ||||||||
| • |
核实在路由和远程访问嵌入式管理单元中,从端口对象的属性中启用了用于请求拨号路由连接(入站的和出站的)的WAN小端口(PPTP)和WAN小端口(L2TP)设备。 | ||||||||
| • |
核实呼叫路由器、应答路由器以及对应于站点到站点VPN连接的远程访问策略被配置为使用至少一种共同的身份验证方式。 | ||||||||
| • |
核实呼叫路由器和对应于站点到站点VPN连接的远程访问策略被配置为使用至少一种共同的加密强度。如果呼叫路由器无法进行128位加密,而在远程访问策略中要求最强加密级别,那么这个连接尝试就会被拒绝。 | ||||||||
| • |
核实连接的参数通过远程访问策略来授权。 为了建立连接,连接尝试的参数必须:
要获得拒绝连接尝试的远程访问策略的名称,请扫描记帐日志,搜索对应于连接尝试的条目以获得策略名称。 | ||||||||
| • |
如果您在运行路由和远程访问服务器安装向导时使用具有域管理员权限的帐户登录,那么它将自动地将RAS和IAS服务器域本地安全组的计算机帐户。这个组的成员关系将允许应答路由器计算机访问用户帐户信息。如果应答路由器无法访问用户帐户信息,请核实:
| ||||||||
| • |
对于使用EAP-TLS和路由器(离线请求)证书的请求拨号连接,请核实正确地配置了呼叫路由器和应答路由器。 在呼叫路由器上,核实在请求拨号接口的高级安全属性中,将EAP配置为身份验证协议。核实智能卡或其他证书(启用加密) EAP类型的属性的设置。核实在配置请求拨号接口的证书时选择了正确的路由器(离线请求)证书。 在应答路由器上,核实在应答路由器上启用了EAP作为身份验证,并在符合的远程访问策略上启用了EAP-TLS。核实在用于站点到站点VPN连接的远程访问策略中,从智能卡或其他证书 EAP类型的配置设置中选择了正确的身份验证服务器(应答路由器或IAS服务器)计算机证书 。 核实为呼叫路由器签署用户证书的CA能够沿着有效的证书链追溯到应答路由器信任的根CA。另外,核实为应答路由器签署计算机证书的CA能够沿着有效的证书链追溯到呼叫路由器信任的根CA。 在默认情况下,在对呼叫路由器进行身份验证时,应答路由器将检查证书撤回列表(CRL)。如果CRL能够在本地获得,那么将对它进行检查。在某些配置中,在连接建立之前是无法对CRL进行检查的。CRL存储在根CA和Active Direcotry(有时)。如果分公司办公室路由器在一个不包含根CA的站点中作为应答路由器使用,那么有两种方法来解决这个问题:
| ||||||||
| • |
当作为混合模式或本机模式域成员的应答路由器被配置为Windows身份验证时,请核实:
| ||||||||
| • |
核实为呼叫路由器和应答路由器上的路由启用了IP。 | ||||||||
| • |
核实呼叫路由器和应答路由器上的所有PPTP或L2TP没有全部被使用。如果需要,请在路由和远程访问嵌入式管理单元的端口对象属性中更改PPTP或L2TP端口的数量,允许更多的同步连接。 | ||||||||
| • |
核实应答路由器支持呼叫路由器的隧道协议。 在默认情况下,具有设置为自动的VPN类型的Windows Server 2003请求拨号接口将尝试首先建立基于PPTP的VPN连接,然后再尝试基于L2TP/IPSec的VPN连接。如果选择了点到点隧道协议(PPTP)或第二层隧道协议(L2TP)服务器类型选项,请核实应答路由器支持所选的隧道协议。 根据您在运行路由和远程防务服务器安装向导所做出的选择,运行路由和远程访问服务的Windows Server 2003计算机将成为拥有5或128个L2TP端口或和5或128个PPTP端口的PPTP和L2TP服务器。要创建一个只拥有PPTP的服务器,请将L2TP端口的数量设置为0。要创建一个只拥有L2TP的服务器,请将PPTP端口的数量设置为1,并在路由和远程访问嵌入式管理单元的端口对象属性中,禁用WAN小端口(PPTP)设备的远程访问入站连接和请求拨号连接。 | ||||||||
| • |
核实身份验证提供者的配置。应答路由器可以被配置为使用Windows和RADIUS来对呼叫路由器的证书进行身份验证。
| ||||||||
| • |
对于使用MS-CHAP、并尝试协商40位MPPE加密的PPTP连接,请核实呼叫路由器的密码长度大约14位。 |
L2TP/IPSec身份验证问题
下面列出了导致站点到站点L2TP/IPSec连接失败的最常见问题:
| • |
无证书 在默认情况下,站点到站点L2TP/IPSec连接要求呼叫路由器和应答路由器交换用于IPSec对身份验证的计算机证书。请使用证书嵌入式管理单元,检查呼叫路由器和应答路由器的本地计算机证书存储库,确定其中拥有合适的证书。 |
| • |
不正确的证书 如果存在证书,那么它们必须是可证实的。与手动配置IPSec规则不同,用于L2TP/IPSec连接的证书授权机构(CA)的列表是不可配置的。相反,L2TP/IPSec连接中的每个路由器都将向它的IPSec对发送一个根CA列表,表明它接受来自这些CA的证书用于身边验证。这个列表中的根CA对应于为计算机签署计算机证书的根CA。例如,如果Router A由根CA CertAuth1和CertAuth2签署计算机证书,那么在主模式协商过程中,它会通知它的IPSec对它只接受来自CertAuth1和CertAuth2的证书用于身份验证。如果这个IPSec对(Router B)没有由CertAuth1或CertAuth2签署的有效的计算机证书,那么IPSec安全协商将会失败。 呼叫路由器必须拥有有效的计算机证书,并且签署这个证书的CA能够沿着有效的证书链追溯到应答路由器信任的根CA。另外,应答路由器必须拥有有效的计算机证书,并且签署这个证书的CA能够沿着有效的证书链追溯到呼叫路由器信任的根CA。 在默认情况下,L2TP/IPSec连接要求呼叫路由器和应答路由器交换用于IPSec对身份验证的计算机证书。请使用证书嵌入式管理单元,检查呼叫路由器和应答路由器的本地计算机证书存储库,确定其中拥有合适的证书。 |
| • |
呼叫路由器和应答路由器之间的NAT 如果呼叫路由器或应答路由器运行Windows 2000 Server,而呼叫路由器和应答路由器之间存在NAT,那么您将无法建立L2TP/IPSec连接。对于站点到站点VPN连接而言,只有Windows Server 2003才支持IPSec NAT-T。Microsoft的Windows 2000 Server不支持IPSec NAT-T。 |
| • |
呼叫路由器和应答路由器之间的防火墙 如果呼叫路由器和应答路由器之间存在防火墙,而您无法建立L2TP/IPSec连接,那么请核实该防火墙允许转发L2TP/IPSec流量。详细信息,请参阅附录A。 |
用于解决IPSec身份验证问题的最佳工具之一就是Oakley日志。详细信息,请参阅本文中的"Oakley 日志"。
EAP-TLS身份验证问题
当将EAP-TLS用于身份验证时,呼叫路由器将提交一个路由器(离线请求)用户证书,而身份验证服务器(应答路由器或RADIUS服务器)将提交一个计算机证书。
为了使身份验证服务器能够证实呼叫路由器的证书,在呼叫路由器所发送的证书链中的每个证书都必须满足下列条件:
| • |
当前的日期必须在证书的有效期内。 在签署证书时,它们具有一个有效期。在有效期之间,它们无法使用,而在有效期过后,它们将被认为是过期的。 |
| • |
证书没有被撤回。 签署的证书可能在任何时候被撤回。每个CA都通过发布最新的证书撤回列表(CRL),来维护一个不再有效的证书列表。在默认情况下,身份验证服务器将检查所有呼叫路由器证书链(从呼叫路由器证书到根CA的一系列证书)中的证书是否被撤回。如果在这个链中的任意证书已经被撤回了,那么这次证书检验将失败。您可以通过注册表设置来更改这种行为,详细内容将在稍后介绍。 要在证书嵌入式管理单元中查看证书的CRL分布点,请获得证书属性,点击细节选项卡,然后点击CRL分布点字段。 证书撤回检验只能在CRL发布和分布式系统中正常工作。如果没有经常更新证书的CRL,那么由于身份验证服务器所检查的公布的CRL已经过时,因此已经被撤回的证书可能仍被认为有效。 |
| • |
证书拥有一个有效的数字签名。 CA在签署证书时会对它们进行数字签名。身份验证服务器将从证书签署CA处获得公共密钥,通过计算检验数字签名,检验证书链中的每个证书(根CA证书除外)。 |
呼叫路由器证书必须还拥有客户端身份验证证书用途(也被称为增强密钥使用[EKU])(OID 1.3.6.1.5.5.7.3.2),而且必须包含有效用户帐户的UPN或有效计算机帐户的FQDN,用于证书的受领方备用名称(Subject Alternative Name)属性。
要在证书嵌入式管理单元中查看证书的EKU,请在内容窗格中双击该证书,点击细节选项卡,然后点击增强密钥使用字段。要在证书嵌入式管理单元中查看证书的受领方备用名称属性,请在内容窗格中双击该证书,点击细节选项卡,然后点击受领方备用名称字段。
最后,为了信任呼叫路由器所提供的证书链,身份验证服务器必须在其信任的根证书颁发机构存储库中安装有签署呼叫路由器证书的CA的根CA证书。
另外,身份验证服务器将核实在EAP-Response/Identity消息中发送的身份与证书受领方备用名称属性的名称相同。这能够避免恶意用户假冒成其他在EAP-Response/Identity消息中指定的用户。
如果身份验证服务器是Windows Server 2003应答路由器或IAS服务器,那么在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\PPP\EAP\13中的下列注册表设置可以更改在执行证书撤回时EAP-TLS的行为:
| • |
IgnoreNoRevocationCheck 在设置为1时,身份验证服务器将允许EAP-TLS客户端进行连接,即使它没有执行或没有完成呼叫路由器证书链(除了根证书)的撤回检查。在通常情况下,撤回检查会因为证书没有包括CRL信息而失败。 在默认情况下,IgnoreNoRevocationCheck被设置为0(禁用)。在身份验证服务器完成客户端证书链(包括根证书)的撤回检查,并证实这些证书都没有被撤回后,EAP-TLS客户端才能进行连接。 您可以使用这个条目,在证书不包含CRL分布点(例如来自于第三方的证书)时对客户端进行身份验证。 |
| • |
IgnoreRevocationOffline 当设置为1时,身份验证服务器将允许EAP-TLS客户端进行连接,即使存储CRL的服务器无法在网络中访问。在默认情况下,IgnoreRevocationOffline被设置为0。 在身份验证服务器完成客户端证书链(包括根证书)的撤回检查,并证实这些证书都没有被撤回后,EAP-TLS客户端才能进行连接。当身份验证服务器无法连接到存储撤回列表的服务器时,EAP-TLS将认为证书没有通过撤回检查。 将IgnoreRevocationOffline设置为1,这样能够避免由于差的网络状况阻止撤回检查顺利完成而导致证书验证失败。 |
| • |
NoRevocationCheck 当设置为1时,身份验证服务器将阻止EAP-TLS执行呼叫路由器证书的撤回检查。撤回检查能够证实呼叫路由器证书及其证书链中的其他证书都没有被撤回。在默认情况下,NoRevocationCheck被设置为0。 |
| • |
NoRootRevocationCheck 当设置为1时,身份验证服务器将阻止EAP-TLS执行路由器根CA证书的撤回检查。在默认情况下,NoRootRevocationCheck被设置为0。这个条目仅排除了对客户端根CA证书的撤回检查。对于呼叫路由器证书链其他证书的撤回检查仍将进行。 您可以使用这个条目,在证书没有包含CRL分布点(例如,来自第三方的证书)时对客户端进行身份验证。同时,这个条目也能够避免在证书撤回列表离线或过期时导致与证书相关的延迟。 |
所有这些注册表设置都必须添加为DWORD类型,它们的有效值是0或1。呼叫路由器不使用这些设置。
为了使呼叫路由器能够为EAP-TLS身份验证证实身份验证服务器的证书,由身份验证服务器发送的证书链中所有证书都必须满足下列条件:
| • |
当前的日期必须在证书的有效期内。 在签署证书时,它们具有一个有效期。在有效期之间,它们无法使用,而在有效期过后,它们将被认为是过期的。 |
| • |
证书拥有一个有效的数字签名。 CA在签署证书时会对它们进行数字签名。呼叫路由器将从证书签署CA处获得公共密钥,通过计算检验数字签名,检验证书链中的每个证书(根CA证书除外)。 |
另外,身份验证服务器证书必须还拥有服务器身份验证EKU(OID 1.3.6.1.5.5.7.3.1)。要在证书嵌入式管理单元中查看证书的EKU,请在内容窗格中双击该证书,点击细节选项卡,然后点击增强密钥使用字段。
最后,为了信任身份验证服务器所提供的证书链,呼叫路由器必须在其信任的根证书颁发机构存储库中安装有签署身份验证服务器证书的CA的根CA证书。
请注意,呼叫路由器并不对身份验证服务器计算机证书的证书链中所有的证书进行撤回检查。这是基于呼叫路由器没有连接到网络的假设,因此可能也无法访问Web页面或其他资源来检查证书的撤回情况。
在连接尝试应该被拒绝是被接受。
| • |
核实用户帐户的远程访问权限设置为拒绝访问或通过远程访问策略来控制访问。如果被设置为后者,请核实第一个符合的远程访问策略的远程访问权限被设置为拒绝远程访问权限。为了获得接受这个连接尝试的远程访问策略的名称,请扫描记帐日志,搜索对应于连接尝试的条目以获得策略名称。 |
| • |
如果您已经创建了一个明确拒绝所有连接的远程访问策略,请核实策略条件、远程访问权限以及配置文件。 |
| • |
对于证书已经被撤回时的基于证书的身份验证,可能还没有发布CA的CRL更改。那么身份验证服务器将使用旧的CRL,没有当前已经撤回的证书。为了缩短证书撤回和身份验证服务器了解到撤回的证书之间的时间,请减少CRL发布时间。在Windows Server 2003 CA中,这个发布时间可以设置为1小时。详细信息,请参阅Windows Server 2003帮助和支持的"撤回证书和发布CRL"。 |
无法到达VPN路由器以外的位置。
| • |
核实启用了IP路由(在VPN路由器的IP选项卡上)。 |
| • |
核实在被路由的协议中添加了合适的请求拨号接口。 |
| • |
核实在呼叫路由器和应答路由器站点的站点路由器中拥有路由,因此双方网络中的位置都可以到达。您可以通过静态路由在每个站点路由器中添加路由,或者通过在呼叫路由器和应答路由器站点接口上启用路由协议来添加路由。 与远程访问连接不同,请求拨号连接不能自动创建默认路由。您需要在请求拨号连接的两端创建路由,使得流量可以被路由进出请求拨号连接的另一端。 您可以手动地将静态路由添加到路由表中,或者通过路由协议来添加静态路由。对于永久请求拨号连接,您可以在请求拨号连接上启用开放式最短路径优先(OSPF)或路由信息协议(RIP)。对于按需请求拨号连接,您可以通过自动静态RIP更新来自动地更新路由。 |
| • |
对于双向初始化的站点到站点VPN连接,请核实应答路由器没有将站点到站点VPN连接错认为远程访问连接。 对于双向初始化的连接,每个路由器都可能是呼叫路由器或应答路由器。用户名和请求拨号接口名称必须正确匹配。例如,在下面的配置中,双向初始化的连接将能够正常工作: Router 1的请求拨号接口名称为NEW-YORK,它被配置为在发送身份验证凭证时使用SEATTLE作为用户名。 Router 2的请求拨号接口名称为SEATTLE,它被配置为在发送身份验证凭证时使用NEW-YORK作为用户名。 在这个例子中,假定Router 2可以验证SEATTLE用户名,Router 1可以验证NEW-YORK用户名。 如果传入呼叫者是一个路由器,接受到这个呼叫的端口状态为活动,相应的请求拨号接口处于连接状态。如果在路由和远程访问嵌入式管理单元中,呼叫路由器凭证的用户帐户名称出现在远程访问客户端中,那么应答路由器将认为这个呼叫路由器是远程访问客户端。 |
| • |
对于单向初始化的请求拨号连接,请核实在呼叫路由器的用户帐户上启用了合适的静态路由,并使用路由协议对应答路由器进行配置。使得在连接建立时,呼叫路由器用户帐户的静态路由能够被广告到相邻路由器上。 |
| • |
核实在呼叫路由器和应答路由器的请求拨号接口上没有IP数据包筛选器阻止TCP/IP的发送和接受。 您可以使用IP入站和出站筛选器来配置每个请求拨号接口,来控制允许进出请求拨号接口的TCP/IP流量的确切特性。 |
无法到达VPN路由器的虚拟接口
| • |
核实呼叫路由器和应答路由器上的IP地址池。 如果VPN路由器被配置为使用静态IP地址池,请核实对于站点的主机和路由器来说,这个静态IP地址池所定义的地址区段的路由是可以到达的。如果不是,那么必须在站点路由器中必须添加由VPN路由器静态地址池所组成的IP路由(由IP地址和区段掩码来定义),或者在VPN路由器的路由基础构架上启用路由协议。如果没有提供到地址池子网的路由,那么呼叫路由器逻辑接口将无法接受来自站点中位置的流量。用于子网的路由可以通过静态路由条目或路由协议(例如开放式最短路径优先[OSPF]或路由信息协议[RIP])来实现。 如果VPN路由器被配置为使用DHCP用于IP地址分配,而又没有可用的DHCP服务器,那么VPN路由器将分配自动专用IP寻址(APIPA)地址范围(从169.254.0.1到169.254.255.254)。只有在VPN路由器所属网络也使用APIPA地址时,为VPN路由器分配APIPA地址才能起作用。 如果在DCHP服务器可用时VPN路由器仍使用APIPA地址,则请核实选择了正确的适配器来获取DHCP分配的IP地址。在默认情况下,VPN路由器根据您在路由和远程访问服务器安装向导中的选择来选择通过DHCP获取IP地址的适配器。您可以在路由和远程访问嵌入式管理单元的VPN路由器属性中,在IP选项卡的适配器列表中手动选择一个LAN适配器。 如果这个静态IP地址池的IP地址范围是VPN路由器所属网络IP地址范围的子网,那么请核实这个静态IP地址池中的IP地址范围没有通过静态配置或DHCP分配给其他TCP/IP节点。 |
无法自动建立请求连接
| • |
核实在呼叫路由器属性的IP选项卡上启用了IP路由。 |
| • |
核实存在正确的静态路由,并且配置有合适的请求拨号接口。 |
| • |
对于使用请求拨号接口的静态路由,核实在请求拨号接口属性中选中了使用这个路由来初始化请求拨号连接。 |
| • |
核实请求拨号接口没有处于禁用状态。 要启用处于禁用状态的请求拨号接口,请在路由和远程访问嵌入式管理单元的网络接口下右键点击请求拨号接口,然后点击启用。 |
| • |
核实呼叫路由器请求拨号接口的拨出时间没有阻止这个连接尝试。 要配置拨出时间,请在路由和远程访问嵌入式管理单元的网络接口下右键点击请求拨号接口,然后点击拨出时间。 |
| • |
核实呼叫路由器请求拨号接口的请求拨号筛选器没有阻止这个连接尝试。 要配置请求拨号筛选器,请在路由和远程访问嵌入式管理单元的网络接口下右键点击请求拨号接口,然后点击设置IP请求拨号筛选器。 |
无法建立隧道
| • |
核实在呼叫路由器和应答路由器之间的路由器接口上的数据包筛选没有阻止隧道协议流量的转发。有关为PPTP和L2TP/IPSec流量必须允许的流量类型的信息,请参阅附录A。 在基于Windows Server 2003的VPN路由器上,可以在高级TCP/IP属性以及路由和远程访问嵌入式管理单元中分别配置IP数据包筛选。请检查这两个地方,查看是否有筛选器可能阻止VPN连接流量。 |
| • |
核实在VPN路由器上没有正在运行Winsock代理客户端。 当Winsock代理客户端处于活动状态时,用于创建隧道和发送隧道数据的Winsock API呼叫将被截取,然后被转发到配置的代理服务器上。 基于代理服务器的计算机允许公司在没有直接连接到Internet的情况下,访问特定类型的Internet资源(通常是Web和FTP)。作为替代,公司可以使用专用IP网络ID(例如10.0.0.0/8、172.16.0.0/12以及192.168.0.0/16)。 在公司中的专用用户需要像直接连接到Internet那样访问公共Internet资源时,通常使用代理服务器。而在授权的公共INternet用户需要像直接连接到专用网络那样访问专用企业资源时,通常使用VPN连接。一个单独的计算机可以既作为代理服务器(用于专用用户),也作为VPN服务器(用于授权Internet用户),从而简化两种信息交换方式。 |
安装WIN VISTA系统硬件升级全攻略[11月11日]
图解Windows Server2008英文版安装配置[11月10日]
内存规格和常见技术解析[11月9日]
无线混和网络高效配置全攻略[11月8日]
教你如何解读主板芯片组的作用[11月8日]
无线路由器打印共享设置详解[11月7日]