web-dev-qa-db-ja.com

CentOSでdhclientを構成して特定のDHCPサーバーからIPを取得する方法

VMインスタンスがサブネットの仮想ゲートウェイからIPアドレスを取得するように、サブネットでCentOS 6.6イメージを起動できる状況にあります。これで、このゲートウェイは不安定になり、私はそれを修正するアクセス権がないので、このサブネット上に自分のDHCPサーバーをセットアップしました。

したがって、このサブネットには2つのDHCPサーバーがあり、VMはランダムなIPアドレスを取得しています。1つのDHCPサーバーから、別のDHCPサーバーから取得することもあります。私の質問は、VMでDHCPクライアントを構成して、障害のあるDHCPサーバーではなく自分のDHCPサーバーのみにDHCP要求を送信する方法を教えてください。 man dhcp.confはあまり役に立ちませんでした。

2
xkcd

CentOS 7では、/etc/dhcp/dhclient.confファイルを作成し、次のような行を追加することでこれを実現できます。

reject 192.168.56.0/24;

いずれかのサーバー(またはこの例では、特定のサブネット上のすべてのDHCPサーバー)からのDHCPオファーを拒否します。

特定のインターフェイスでのみDHCPオファーをフィルタリングするには、rejectディレクティブをinterfaceブロック内に配置します。

interface "eth0" {
    reject 192.168.56.0/24;
}

eth0のマニュアルページに示されている例とは異なり、インターフェイス名(ここではdhclient.conf)は引用符で囲む必要があることに注意してください。

すべての場合において、変更を有効にするには、スーパーユーザーとしてsystemctl restart network.serviceを実行します。


CentOS 6.7では同じ手順が機能しますが、

  • 各インターフェースは、dhclientの個別の構成ファイルを使用します。上記の例では、rejectルールが追加されるファイルは/etc/dhcp/dhclient-eth0.confです(そして、interfaceブロックを使用する必要がないことは明らかです)。
  • システムのネットワークインターフェースを再初期化するコマンドはservice network restartで、これもスーパーユーザーとして呼び出す必要があります。
7
user123977

DHCPは、IPアドレスのマルチキャスト要求を介して機能します。応答する最初のDHCPサーバーからIPアドレスを取得します。クライアントに特定のサーバーからDHCPアドレスを強制的に取得させる方法はありません。

実際、お互いを認識していない2つのDHCPサーバーを実行すると、発生している問題の種類が問われます。障害のあるものをシャットダウンまたは修正する必要があります。

4
Zypher