在尝试设置 MSSQL 集群解决方案时,我遇到了与网络相关的超出我专业知识范围的问题。
我试图为我的节点找到一个可用的 IP。我要求网络管理员给我一个免费的 IP 地址。为了争论,他给了我一个 IP 10.40.1.205,这个 IP 应该是未使用的。
当尝试在集群设置期间使用给定的 IP 时,SQL 抱怨该 IP 已被使用。
我尝试从我的服务器 ping 该 IP,并收到了来自... 10.40.59.69...... 的回复?
知道是什么原因导致这样的事情发生吗?更重要的是如何排除故障?
答案1
这并非闻所未闻,一台机器可能之前已经为网卡分配了一个别名,但网络管理员并不知道这一点,等等。
显而易见的事情是找到响应服务器的 MAC 地址,这应该很容易做到。
从 SQL 服务器上的命令提示符运行“arp -a”,并查找 10.40.1.205 和 10.40.59.69 地址。
您将看到两个设备的 MAC 地址,它们可能相同也可能不同,看起来像“00-22-6b-3b-30-90”。您的网络管理员应该能够通过列出的 MAC 地址识别网卡,但在告诉他之前,可能值得检查一下它不是 SQL 服务器网卡之一,以防万一这不是您在某个过程中自己犯的一个小配置错误。
要检查 Windows 系统 MAC 地址,请从命令提示符运行“ipconfig /all”,您将看到每个网卡的 MAC 地址。
答案2
有几种可能性:
广播地址。如果您的“假设”示例不准确,您可能一直在 ping 子网上的广播地址。假设网络是 10.40.1.0/25(又称掩码 255.255.255.128),并且您 ping 10.40.1.127 - 它可能看起来像一个随机主机,但它实际上是广播地址,并且该子网上的任何人都可以使用自己的地址进行响应(仅供参考,广播地址是子网的最后一个地址)。
VIP。如果您有负载平衡器或服务器集群,您可能已经 ping 过共享/虚拟地址并得到了真实服务器的回复。
辅助地址。如果路由器/服务器的主地址为 .69,辅助地址为 .205(对于像您一样试图保留 ping 扫描发现的额外地址的人来说,这是常见的做法),它可能会回复 .205 的 ping,但回复来源是 .69。
您自己的地址。Unix 笔记本电脑的示例:
ping 192.168.1.199
响应From 192.168.1.3 icmp_seq=1 Destination Host Unreachable
192.168.1.3,其中 192.168.1.3 是笔记本电脑的 IP 地址。
答案3
我想看看输出。你确定这不是 ICMP 错误消息吗?
如果您的子网掩码配置不正确,路由器可能会响应 ping。您获得的子网掩码是什么?
答案4
尝试将该 IP 地址解析为主机名。 ping -a <IP>
在 Windows 中。Linux 可以使用host <IP>
或dig -x <IP>
。该 IP 地址的主机名可能对您或您的网络管理员有用。(我会尝试解析您正在处理的两个 IP)
ping 响应可能是 ICMP 错误消息,这也并非不可能——您可以尝试使用 tcpdump/Wireshark 转储实际数据包,并查看您收到的响应究竟是什么。
您还可以尝试使用 HTTP、HTTPS、SSH、telnet、RDP 等连接到该 IP 地址。如果其中任何一个连接成功,您可能会获得有关该机器的一些真正有用的信息。