我遇到过类似的问题关于局域网中错误 IP 的问题。但是,NIC 上的标准地址别名技巧没有帮助。我无法直接访问服务器控制台,如果幸运的话,我可能会在一周或更长时间内获得物理访问权限,但我希望我能找到更快的方法。
我可以从一台(据称)位于同一 L2 网段的10.0.0.1
服务器(Linux,IP 为)的地址上对(Linux)服务器进行 arping ,它会回复该服务器的正确和预期 MAC 地址$MY_IP
$TARGET_MAC
root@host:~# arping -c 3 -I $IFACE 10.0.0.1
ARPING 10.0.0.1 from $MY_IP $IFACE
Unicast reply from 10.0.0.1 [$TARGET_MAC] 0.746ms
Unicast reply from 10.0.0.1 [$TARGET_MAC] 0.796ms
Unicast reply from 10.0.0.1 [$TARGET_MAC] 0.807ms
Sent 3 probes (1 broadcast(s))
Received 3 response(s)
由于这些机器是公开可访问的,所以我隐藏了我的 IP 和 MAC。
如果我为该接口添加地址别名,我仍然可以对目标进行 arping,但无法对其进行 ping。没有其他接口具有 10.0.0.0/24 范围,即使使用 也会失败ping -I $IFACE
。
root@host:~# ip addr add 10.0.0.2/24 dev $IFACE
root@host:~# arping -c 3 -I $IFACE 10.0.0.1
ARPING 10.0.0.1 from 10.0.0.2 $IFACE
Unicast reply from 10.0.0.1 [$TARGET_MAC] 0.788ms
Unicast reply from 10.0.0.1 [$TARGET_MAC] 0.766ms
Unicast reply from 10.0.0.1 [$TARGET_MAC] 0.794ms
Sent 3 probes (1 broadcast(s))
Received 3 response(s)
root@host:~# ping -c 3 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2015ms
目标服务器监听 SSH 连接,但 ssh 无法通过
root@host:~# ssh -vvv 10.0.0.1
OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 10.0.0.1 [10.0.0.1] port 22.
debug1: connect to address 10.0.0.1 port 22: Connection timed out
ssh: connect to host 10.0.0.1 port 22: Connection timed out
我曾尝试通过向目标发送 ARP REPLY 数据包来强制其更新其 ARP 表,但这似乎没有帮助。
root@host:~# arping -A -c 3 -s 10.0.0.2 -I $IFACE 10.0.0.1
ARPING 10.0.0.1 from 10.0.0.2 $IFACE
Sent 3 probes (3 broadcast(s))
Received 0 response(s)
root@host:~# ping -c 3 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
有可能存在一些 L3 组件,因为服务器向我发送了电子邮件更新(apt-listchanges
输出),但电子邮件标头包含分配给某个交换机的 IP,而标头中的主机名是正确的(目标的主机名)。其他管理员告诉我它应该在同一个 L2 网段上,arping 似乎也表明了这一点。还有其他方法可以排除 L3 组件吗?
目标是与目标服务器建立 SSH 连接,以便我可以解决问题。
答案1
显然,您位于同一个 L2 以太网段上,使用同一范围内的 IP 1 和 2。我能想到两个它不起作用的原因:
- 具有 IP 的服务器
10.0.0.1
启用了某种类型的第 3 层过滤(很可能是 IPTable),并丢弃您发送的 ICMP 数据包,尽管从网络角度来看,所有设置都正确,可以使其正常工作。尝试其他探测器(、、ssh
或已知在服务器上监听的任何网络服务)。telnet
http
- 无论出于什么原因,您的
ping
探测器都无法通过 $IFACE 离开(例如,如果另一个接口上也配置了相同的 IP 范围)。尝试使用ping -i $IFACE