在拥有多个站点到站点接口的 Windows 服务器上,控制台里的标签并不只是给人看的备注。RRAS 会用入站连接中的某个特定字段来决定哪一个逻辑接口来应答,而该字段会随身份验证方式而变化。键搞错了,你就会不断重命名接口,直到某个站点靠运气连上。选择规则、管理状态和会话状态是三件独立的事实,其中只有一件与命名有关。

误区:重命名后的接口能匹配任何连接

分支连不上时,诱人的做法是新建或重命名站点接口,直到它看起来像呼叫方。这种做法对一种身份验证方式有效,对其它方式则悄悄失效,这正是同一套流程被四处传播却结论矛盾的原因。站点接口是一个逻辑连接对象,有自己的目标、受保护的网段前缀和状态。它并不是承载加密报文的物理网卡,所以只看网络适配器根本无法知道选中了哪个站点对象。

这一选择也与普通远程访问用户无关。如果是员工的 VPN 客户端拨入,那是另一种角色,其用户名从不参与这层映射。在把任何含义读进一个熟悉的名称之前,先确认呼叫方属于哪种角色。

三种身份验证形态,三种选择键

使用预共享密钥时,接口上配置的目标地址会与入站对端的地址进行比对。标签可以随便取,因为决定权在地址。使用基于用户名的身份验证时,接口名称会与呼叫方提供的用户名进行比对。此时标签本身就是键,这也正是一次重命名看起来修好了一个站点、却弄坏了另一个的原因。

使用证书时,接口名称会与所出示证书中的主题名称进行比对。名称必须与该主题对应,运维人员自己编造的好听标签是不行的。

由此产生两个后果。在预共享密钥的配置下,同一个目标只能启用一个接口,因此共享同一个被观测到的公网地址的两个分支,无法靠重复条目同时得到服务。而且无论控制台怎么提示,真正生效的始终是你实际配置的那种方式。

Authentication in useThe field RRAS comparesSymptom when the two disagree
Pre-shared keyThe peer address in the incoming connection against the interface destinationRenaming the interface changes nothing; a destination that does not match the caller stays unused
UsernameThe caller login against the interface nameA site with a friendly label never answers, while a differently named site may answer instead
CertificateThe subject name in the presented certificate against the interface nameAn interface named after the office rather than the subject CN is never selected

已启用不等于已连接

管理状态说明这个逻辑接口是否被允许工作。连接状态说明此刻是否存在会话。已启用但没有会话是拨号链路按需触发的正常静息状态,把它当作故障上报,会让人去追一个并不存在的断线。

请使用按名称查询或文档中给出的路由域查询,但不要把两个参数一起用,并在预期的服务器上下文中运行。如果预期的接口不在第一份列表里,问题就在状态之前:根本什么都没有被选中。

要把这一对状态放在一起读,而不是分开看。本应保持建立的链路显示为断开,值得调查;而按需拨号的空闲链路在需要时才连上,正是设计如此。与此同时,被管理性禁用的接口无论对端重启多少次路由器,都会一直是暗的。

这两个值都不能证明身份验证成功、协商的保护方式一致、路由已经安装,或者私有应用已被放行。那是四个不同的问题,有四个不同的答案。

Get-VpnS2SInterface | Select-Object Name, Destination, AdminStatus, ConnectionState
Get-VpnS2SInterface -Name 'Branch-A' | Format-List Name, Destination, AdminStatus, ConnectionState

在启用任何东西之前,先读身份事务

当入站呼叫方被映射到一个你没预料到的接口时,有用的证据是它出示的身份,而不是被禁用接口的清单。把最近的远程访问事件取出来,读呼叫方地址、身份验证结果和所选接口的名称。被禁用的接口可能是故意退役的站点,也可能是被禁止的合作伙伴。为了看一个登录错误会不会消失就去启用它,是一处会牵动路由与访问权限的配置变更,所以要把决定交给该站点关系的负责人,连同它的目标、受保护前缀和策略一起。

如果映射确实是错的,就修键而不是修症状:修证书主题,或者在用户名情形下修接口名称,在预共享密钥情形下修目标地址。然后重连一次,确认同一个呼叫方现在选中的是预期对象。

Get-WinEvent -LogName Application -MaxEvents 50 | Where-Object { $_.ProviderName -like '*RemoteAccess*' }

用一次被允许的操作来闭环

绿色状态不等于验收通过。选中正确接口之后,生成设计允许的流量,从一个受保护前缀中的主机发往另一个前缀中的主机,并确认回应沿同一条路径返回。再从一台本应被拒绝的主机上做同样的尝试,用 Test-NetConnection -ComputerName 10.44.2.10 -Port 445 去访问设计明确排除的服务,然后再次读取远程访问事件。一条承载了超出预期前缀的站点链路,或者为策略排除的服务作答的站点链路,是任何状态检查都发现不了的路由错误。

把身份验证方式、选择键和允许的前缀一起记入站点的运行手册。下一位工程师遇到的仍是同一张三值表,而只有把这段上下文写下来,命名约定才有意义。

相关文章