入站隧道会选择哪一个 RRAS 站点接口?
RRAS 会依据对端地址、用户名或证书主题来选择入站的站点接口,因此要把这个键与“已启用”和“已连接”两种状态分开阅读。
在拥有多个站点到站点接口的 Windows 服务器上,控制台里的标签并不只是给人看的备注。RRAS 会用入站连接中的某个特定字段来决定哪一个逻辑接口来应答,而该字段会随身份验证方式而变化。键搞错了,你就会不断重命名接口,直到某个站点靠运气连上。选择规则、管理状态和会话状态是三件独立的事实,其中只有一件与命名有关。
误区:重命名后的接口能匹配任何连接
分支连不上时,诱人的做法是新建或重命名站点接口,直到它看起来像呼叫方。这种做法对一种身份验证方式有效,对其它方式则悄悄失效,这正是同一套流程被四处传播却结论矛盾的原因。站点接口是一个逻辑连接对象,有自己的目标、受保护的网段前缀和状态。它并不是承载加密报文的物理网卡,所以只看网络适配器根本无法知道选中了哪个站点对象。
这一选择也与普通远程访问用户无关。如果是员工的 VPN 客户端拨入,那是另一种角色,其用户名从不参与这层映射。在把任何含义读进一个熟悉的名称之前,先确认呼叫方属于哪种角色。
三种身份验证形态,三种选择键
使用预共享密钥时,接口上配置的目标地址会与入站对端的地址进行比对。标签可以随便取,因为决定权在地址。使用基于用户名的身份验证时,接口名称会与呼叫方提供的用户名进行比对。此时标签本身就是键,这也正是一次重命名看起来修好了一个站点、却弄坏了另一个的原因。
使用证书时,接口名称会与所出示证书中的主题名称进行比对。名称必须与该主题对应,运维人员自己编造的好听标签是不行的。
由此产生两个后果。在预共享密钥的配置下,同一个目标只能启用一个接口,因此共享同一个被观测到的公网地址的两个分支,无法靠重复条目同时得到服务。而且无论控制台怎么提示,真正生效的始终是你实际配置的那种方式。
| Authentication in use | The field RRAS compares | Symptom when the two disagree |
|---|---|---|
| Pre-shared key | The peer address in the incoming connection against the interface destination | Renaming the interface changes nothing; a destination that does not match the caller stays unused |
| Username | The caller login against the interface name | A site with a friendly label never answers, while a differently named site may answer instead |
| Certificate | The subject name in the presented certificate against the interface name | An 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 去访问设计明确排除的服务,然后再次读取远程访问事件。一条承载了超出预期前缀的站点链路,或者为策略排除的服务作答的站点链路,是任何状态检查都发现不了的路由错误。
把身份验证方式、选择键和允许的前缀一起记入站点的运行手册。下一位工程师遇到的仍是同一张三值表,而只有把这段上下文写下来,命名约定才有意义。