DHCP がゲートウェイを割り当てない

DHCP がゲートウェイを割り当てない

そこで、KVM 仮想マシン用の開発サーバーを実行しています。ホスト ノード上で、次の構成の DHCP サーバーをローカルで実行しています。

dhcpd.conf は、

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;

subnet xxx.xxx.x.0 netmask 255.255.255.0 {
 range xxx.xxx.x.2 xxx.xxx.x.127;
 option routers xxx.xxx.x.1;
 option broadcast-address xxx.xxx.x.255;
 option domain-name-servers 8.8.8.8;
 option netbios-name-servers 8.8.8.8;
 default-lease-time 86400;
 max-lease-time 86400;
 option rfc3442-classless-static-routes 24, xxx, xxx, x, 0, 0, 0, 0, 0, 0, xxx, xxx, x, 1;
 option ms-classless-static-routes 24, xxx, xxx, x, 0, 0, 0, 0, 0, 0, xxx, xxx, x, 1;
         host 102 {hardware ethernet 4A:19:BD:DF:B0:07;fixed-address xxx.xxx.x.5;}


 }

/etc/default/isc-dhcp-server

# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPD_CONF=/etc/dhcp/dhcpd.conf

# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid

# Additional options to start dhcpd with.
#       Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="vmbr0"

参考までに、これは Debian 7 Proxmox サーバーです。

問題は、サーバーに DHCP 経由で問題なく IP が割り当てられていることです。xxx.xxx.x.5 を取得しますが、route -n 経由で表示するとゲートウェイは 0.0.0.0 に設定されており、そのためネットワークに到達できません。

VM ネットワーク構成ファイルの内容:

DEVICE=eth01
BOOTPROTO=dhcp 
ONBOOT=yes

無効な引数

さらに、DHCP から情報を取得するときに無効な引数エラーが発生するため、これらは関連している可能性があります。

クライアントのエラー ログ:

ここに画像の説明を入力してください

答え1

情報が限られているため、リモートでトラブルシューティングするのは難しいですが、試してみたいと思います。

まず、推測ですが、通常、DEVICE 名はeth0または でありeth1、 ではありません。これが「無効な引数エラー」の原因である可能性があります。VMまたはVM でeth01適切な NIC を扱っていることを確認してください。ifconfig -aip link

もう一つの疑わしいのは静的ルートです。配列には 14 項目ではなく 13 項目あるはずです。形式は です<netmask>, <network-byte1>, <network-byte2>, <network-byte3>, <router-byte1>, <router-byte2>, <router-byte3>...。つまり、次のようになります24,192,168,1, 192,168,1,1, 0, 192,168,1,1。見てみましょう。ここ間違った静的ルートがデフォルトゲートウェイを上書きしていると思われます。

それが問題でない場合は、デバッグするプロセスが必要です。DHCP 構成から、vmbr0は Linux ブリッジであり、そこから VM が作成されていると想定しています。ホスト/ハイパーバイザーでvirt net-listと をチェックして、VM ネットワークが正しく作成されていることを確認する必要がありますvirt edit <vm>。 を使用することもできますvirt-manager。VM に からブリッジされている NIC が 1 つだけあることを確認しますvmbr0

それでも解決しない場合は、VM に移動して DHCP クライアントをデバッグします。まず、 を実行しkillall dhclient、次にまたは を実行してdhclient eth0トラフィックを監視します。ゲートウェイ オプションを探します。他の DHCP サーバーが邪魔になっていないことを確認します (libvirt のデフォルト NAT の可能性があります。または、ブリッジがあるため、外部の別の DHCP サーバーである可能性があります)。DHCP サーバーがあるホストで を実行することもできます。dhcpdump -i eth0tcpdump udp and port 67 or 68dhcpdump/tcpdump

これが役に立つことを願っています。

関連情報