そのIPアドレスがすでに他の場所で使用されているかどうかを確認するために最初にarpingを送信せずに仮想インターフェイスを起動する方法はありますか?
私は、ifupスクリプトをコピーして、arpingチェックセクションをコメントアウトすることを推奨する独自の製品を使用しています。ただし、そのカスタムバージョンのifupスクリプトはどこかに保存する必要があり、維持するのが最も良い方法ではありません。
Arpingチェックなしでインターフェースを起動するより良い方法はありますか?
あなたは、Red Hatのネットワークスクリプトの範囲内でこれを実行できるはずです。ただし、これらのスクリプトのバグが原因である可能性はありません。
これは私がそれについて行ったであろう方法です:
まず、インターフェイスが起動している間、ARPを完全に抑制します。次に、インターフェイスが起動した後で再度有効にします。 (ARPを再度有効にする必要があります。そうしないと、マシンはまったく通信できなくなります。)
インターフェイスの初期化中にARPを抑制するには、/etc/sysconfig/network-scripts/ifcfg-eth0
に追加します。これは実際には カーネルレベルでARPを無効にします 、arping
を使用しようとすると失敗します。
ARP=no
インターフェイスが起動した後にARPを再度有効にするには、必要なコマンドを使用してファイル/sbin/ifup-local
を作成します。
#!/bin/bash
ip link set dev $1 arp on
ただし、これはarping
が失敗する原因となるために失敗します。 /etc/sysconfig/network-scripts/ifup-eth
スクリプトは実際にはarping
からのリターンコードを十分に注意深くチェックしないため、実際にARP=no
を設定すると、初期化は失敗し、IPアドレスがすでに存在するという誤ったエラーメッセージが表示されます。使用中で。
これにより、ベンダーが推奨する元のオプションが残ります。スクリプトをハックし、(オプションで)バグをRedHatに報告します。
私はこれが古いことを知っていますが、私は今日これを調べていました
あなたは付け加えられます ARPCHECK=no
任意のインターフェース定義ファイルに移動して、チェックをスキップします。
CentOS6.7でのみテスト済み
Ifupスクリプトを使用する必要はまったくありません。 ifconfigを使用できますか?
問題は、インターフェースを上げたり下げたりするときに起こりたいことが次々と必要になる可能性があり、それからifupシステムを再発明することになるということです。
私は現在redhatシステムを使用していないので、あなたが話しているスクリプトをいじくり回すのに適していません。 ifupスクリプトのバリエーションを維持するのはそれほど悪くないだろうと私は難しいと思っていたので、それはあなたが望む振る舞いを説明するのに適切な場所です。あなたが話している種類の環境では、とにかく構成管理ソフトウェアを実行している必要があります。 (人形、シェフ、または同様のもの)。したがって、アップグレードで変更が失われないようにすることは、それほど難しいことではありません。
aRPをブロックするファイアウォールルール?
しかし、真剣に、なぜARPを正常に動作させたくないのでしょうか。
他の誰かがすでに持っているアドレスを使いたいと私が考えることができる理由のほとんどは、正直ではありません。