背景: 产品界面提供 ip 修改功能,并且在保存的时候会去测试该 ip 是否被占用(原理:ping 得通表示被占用,ping 不通则表示可以使用)
问题: 如果目标 ip 在 ping 测试的时候没有被 ping 通,但该 ip 实际已经已经被其他主机占用,且该主机开启禁 ping 选项,则会出现误判导致产品的 network 服务起报错不来( CentOS 7 )
尝试: 我有尝试用 nmap 来扫描指定 ip,但是耗时较长且效果不好
不知道各位有什么解决方案没
1
lhx2008 2020-02-29 16:08:18 +08:00 via Android
没看懂这个是什么骚操作
|
2
BingoXuan 2020-02-29 16:13:04 +08:00
要不试一下 arp ?
|
3
xratzh 2020-02-29 16:15:56 +08:00
没看懂意思,猜一下答案:
ssh 试试? ip 没被占用和 ip 占用后,ssh 的回传信息不一样 |
4
ThirdFlame 2020-02-29 16:16:13 +08:00
nc 一下这个 ip 某个端口(端口开不开放都无所谓,开放更好,就直接连上了)。如果不开放次端口, 你会发现存活的 和 不存活的错误代码不同。端口开不开放都无所谓。
但是如果主机或者网络设备专门设置的有 drop 规则,那么此方法无效。 |
5
singerll 2020-02-29 16:17:39 +08:00 via Android
云平台分资源时用的吗?。。。。个人感觉没啥办法,考虑极端下别人防火墙全开,只出不进的情况。
话说没有元数据库吗? |
6
villivateur 2020-02-29 16:39:23 +08:00
tcping 试试
|
7
binux 2020-02-29 16:42:13 +08:00 via Android
既然 IP 修改功能是你产品提供的,用没有你自己不知道?
|
8
zmj1316 2020-02-29 17:11:24 +08:00 via Android
同网段的话,能不能用 arp 扫一下?
|
9
gamexg 2020-02-29 17:14:43 +08:00
看意思是同网段,那么 arp 就行
|
10
yubai9366 OP @ThirdFlame 这个方法有效,测了十几台机器都可以用,不过还是得加个异常判断回滚机制,虽然我这边主机群应该都是常规配置,但是还是得上个保险
|
12
billlee 2020-02-29 17:25:06 +08:00
arping
|
13
trepwq 2020-02-29 18:52:25 +08:00 via iPhone
@ThirdFlame 都禁 ping 了,肯定有防火墙规则了,估计不行
|
14
ThirdFlame 2020-02-29 18:59:25 +08:00
@trepwq 你试试就知道了。 防火墙好多是 deny 规则,而不是 drop 规则。nc 连过去 错误代码是不一样的。
|
15
trepwq 2020-02-29 19:10:06 +08:00 via iPhone
@ThirdFlame 我知道不一样,我一般都是用 drop,哈哈
|