You should be able to do this within the confines of Red Hat's network scripts. However, you can't due to a bug in those scripts.
This is how I would have gone about it:
First, suppress ARP completely while the interface is being brought up. Then re-enable it after the interface is up. (You must re-enable ARP or the machine will not be able to communicate at all.)
To suppress ARP during interface initialization, add to /etc/sysconfig/network-scripts/ifcfg-eth0
. This actually disables ARP at the kernel level, which should make any attempts to use arping
fail.
ARP=no
To re-enable ARP after the interface is up, create a file /sbin/ifup-local
with the necessary commands:
#!/bin/bash
ip link set dev $1 arp on
However, this fails, precisely because it causes arping
to fail. Since the /etc/sysconfig/network-scripts/ifup-eth
script doesn't actually check the return code from arping
carefully enough, if you actually set ARP=no
then the initialization fails with an incorrect error message claiming the IP address is already in use.
This leaves you with your original option, that recommended by the vendor: Hack the script, and (optionally) report the bug to Red Hat.