KVM 用に異なるサブネット上の割り当てられた IP アドレスとゲートウェイを使用して DHCPD を構成する

KVM 用に異なるサブネット上の割り当てられた IP アドレスとゲートウェイを使用して DHCPD を構成する

IP 範囲が 123.123.123.1/24 の専用ルーターがありますが、問題はゲートウェイ アドレスが 111.111.111.254 であり、完全に異なるサブネット上にあることです。ブリッジと KVM 仮想化はすでに設定済みです。

ホストノード上の /etc/dhcpd.conf。

subnet 0.0.0.0 netmask 0.0.0.0 {
authoritative;
default-lease-time 21600000;
max-lease-time 432000000;
}
 ddns-update-style ad-hoc;

host kvm111.0 {
hardware ethernet 02:00:00:ce:fd:ab;
option routers 111.111.111.254;
option subnet-mask 255.255.255.0;
fixed-address 123.123.123.2;
option domain-name-servers 8.8.8.8,8.8.4.4;
}

次に、その HWID に Windows OS と DHCP をオンにして KVM 仮想マシン (VM) をセットアップしました。うまく動作しています。Windows VM は 123.123.123.2 IP を取得し、ゲートウェイは 111.111.111.254 です。

しかし、VMのOSをDebian 6に変更すると、動作しなくなりました。VMにログインすると、ゲートウェイが割り当てられていないことがわかりました。次のように入力すると、ルート追加デフォルトGW 111.111.111.254答えは:

SIOADDCART: no such process

これは、ゲートウェイが割り当てられた IP アドレスとは異なるサブネットにあるためです。そのため、VM で次の操作を実行する必要がありました。

ルート追加 111.111.111.254/32 dev eth0

ルート追加デフォルトGW 111.111.111.254

そしてそれは動作します。しかし、ホストノード経由で自動化したいので(VM経由で手動で行うのではなく)、/etc/dhcpd.conf経由で行う必要がありました。

誰かやり方を知っていますかルート追加 111.111.111.254/32 dev eth0/etc/dhcpd.conf 経由ですか?

答え1

答えはクラスレス静的ルート (RFC3442)isc dhcp サーバーでは、オプションを手動で指定する必要があります。

このウェブサイトWindows と Linux の両方のクライアントで機能する方法を簡潔に説明します。

短縮版は次のとおりです。

dhcpd.confの先頭に以下を追加します

option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;

適切なサブネットブロックに次の2つのオプション行を追加します。

option rfc3442-classless-static-routes 32, 111, 111, 111, 254, 0, 0, 0, 0, 111, 111, 111, 254;
option ms-classless-static-routes 32, 111, 111, 111, 254, 0, 0, 0, 0, 111, 111, 111, 254;

これにより、DHCP 割り当てアドレスを使用して 111.111.111.254 オンリンクの静的ルートが作成され、デフォルト ルーター 111.111.111.254 が保持されます。特別なルーター値 0.0.0.0 はオンリンクを意味します。RFC では、クライアントはクラスレス静的ルートを実装する必要はないと規定されていますが、Windows は ms オプションを介して実装し、Linux の dhclient (debian7、rhel6.4 でテスト済み) は実装し、すべての IPMI および PXE クライアントも同様に実装しています。クライアントで動作するかどうかテストする必要がありますが、私は動作すると確信しています。dhclientは終了フックを使ってオプション121を解釈することができるすぐに使用できる状態でまだサポートされていない場合は、

最悪の場合、ホスト ノードで、LAN 範囲内の IP (例では 123.123.123.254) を追加し、それをデフォルト ゲートウェイとして使用するようにクライアントに指示することができます。

関連情報