有没有办法启动虚拟接口,而不先发送一个arping来检查IP地址是否已被其他地方使用?
我正在使用专有产品,build议复制ifup脚本并注释arping检查部分。 但是那个定制版本的ifup脚本需要存储在某个地方,这不是最好的维护。
没有arping检查提供界面有更好的方法吗?
你应该能够在红帽的networking脚本的范围内做到这一点。 但是,你不能由于这些脚本中的错误。
我就是这么想的:
首先,在接口被唤醒的时候完全禁止ARP。 然后在界面启动后重新启用它。 (您必须重新启用ARP,否则机器将无法通讯。)
要在接口初始化期间抑制ARP,请添加到/etc/sysconfig/network-scripts/ifcfg-eth0 。 这实际上禁用内核级别的ARP ,这会使任何尝试使用arping失败。
ARP=no
要在接口启动后重新启用ARP,请使用必要的命令创build一个文件/sbin/ifup-local :
#!/bin/bash ip link set dev $1 arp on
然而,这个失败,正是因为它导致了失败。 由于/etc/sysconfig/network-scripts/ifup-eth脚本实际上并没有真正地从arping检查返回代码, arping如果你实际设置了ARP=no那么初始化失败,并显示错误消息,声称IP地址已经正在使用。
这会给您提供您的原始选项,供应商推荐:黑客脚本,(可选)向红帽报告错误。
你根本不需要使用ifup脚本。 你可以只使用ifconfig?
问题在于,当你提升或者降低界面时,你可能会遇到另外一个需要发生的事情,然后你将重新创buildifup系统。
我目前还没有使用redhat系统,所以我不能很好地解决你正在谈论的脚本。 我曾经想过,在ifup脚本中保留一些变化并不算太坏,这是描述你想要的行为的正确的地方。 对于你所说的环境,你应该运行configurationpipe理软件。 (木偶,厨师或类似)。 所以确保你的改变不会迷失在升级中不应该太难。
防火墙规则阻止ARP?
说真的,为什么你不希望ARP正常运行?
我可以想到的,想要使用别人已经拥有的地址的大部分原因都是不诚实的。
我知道这已经很老了,但我今天正在看这个
您可以将ARPCHECK=no添加到任何接口定义文件以跳过检查。
只在CentOS 6.7中testing过