客户端程序调用部署在服务端的WebService服务,身份认证方式设置为Windows集成身份认证,平时都是正常使用,但某次域控服务器重启后无法正常调用,具体表现为:
1)绝大部分WebService服务能够正常调用,但少数服务无法调用,客户端浏览器中可以访问服务地址,telnet端口也是通的,但就是调不通。同时在WebService服务器上访问和调用服务没有问题;
2)少数无法调用的WebService服务在客户端会报超时错误;
3)少数无法调用的WebService服务偶尔也会报错:"此工作站和主域间的信任关系失败"。
从第三种现象可以大致判断是身份认证出了问题,但大部分WebService服务在客户端又能调通,排查WebService服务器的IIS设置及域控服务器的事件查看器均未发现问题。排查防火墙策略一开始没有发现问题,但后续从防火墙的阻断日志发现特别多的从WebService服务器到域控服务器的某一端口的阻断日志,在防火墙中放开该端口后问题解决。
后续分析原因时发现该端口属于RPC服务(Remote Procedure Call,远程过程调用)。RPC服务是底层最核心的通信机制,几乎所有关键功能都依赖其运行,也包括域控相关的服务,RPC服务的端口属于动态端口,服务器重启后端口数量及具体端口号通常都会发生变化,变化范围通常为 49152-65535,本文涉及的问题应该就是域控服务器重启后的端口未全部在防火墙列表中导致的,最好的方式就是在防火墙中将域控服务器的49152-65535端口全部放行。
参考文献:
1\]https://blog.csdn.net/weixin_29044713/article/details/112353813 \[2\]https://learn.microsoft.com/zh-cn/troubleshoot/windows-server/networking/configure-rpc-dynamic-port-allocation-with-firewalls