DHCP サーバーを実行するイーサネットインターフェイスをブリッジする方法

DHCP サーバーを実行するイーサネットインターフェイスをブリッジする方法

ワークステーションには、eth0次の設定を使用してDHCPサーバーとして実行されるインターフェイスがあります。

auto eth0
  iface eth0 inet static
  network 10.0.0.0
  address 10.0.0.1
  netmask 255.0.0.0
  gateway 10.0.0.1
  broadcast 0.255.255.255

/etc/dhcp/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;

  
subnet 10.0.0.0 netmask 255.0.0.0 {
    range 10.0.0.1 10.0.0.254;
    option time-servers 10.0.0.1;
    option broadcast-address 10.255.255.255;
    default-lease-time 600;
    max-lease-time 7200;
}

eth0QEMUで作成されたすべてのシステムに、DHCPサーバーによって提供される定義されたNICのIPアドレスが割り当てられるように、DHCP構成設定を変更せずにブリッジを作成できますか?

ワークステーションがスイッチに接続され、他のコンピュータもスイッチに接続されており、目的はIPアドレスを使用してネットワーク上の他のコンピュータから仮想マシンにアクセスできるようにすることです。10.0.0.X

答え1

最も簡単な方法は、初期インターフェイスをブリッジとして定義することです。たとえば、iface eth0 ...の定義を削除し、/etc/network/interfacesの定義に置き換えますiface br0

auto br0
iface br0 inet static
  address 10.0.0.1/8
  bridge_ports eth0
  bridge_stp off
  bridge_maxwait 0
  bridge_fd 0
  bridge_hello 2
  bridge_maxage 12

完了したら、ブリッジネットワーキングを使用するように仮想マシンを設定する必要がありますbr0

もうIPアドレスがありませんeth0。それ/それらは開かれるbr0。これは比較的重要ではなく、どんなものにもほとんど影響を与えません。インターフェイス名に興味があるプログラムにのみ適用されます。ほとんどはそうではありませんが、いくつかは...いくつかのデーモン(例えば、dhcpdまたはarpwatch)を好きにしたり実行したりするときに代わりにtcpdump使用する必要があります。もちろん、それも本当ですが、dhcpを実行するのと同じインターフェースとシステムにはいけません。サーバー dhcp クライアントを実行します。それにもかかわらず、それを使用するには再設定する必要があります。tcpdump -i br0tcpdump -i eth0dhclientbr0

dhcpdDHCPサーバーがワークステーションと同じコンピューターのbr0場合eth0

Debian(またはDebianの派生製品)を実行しているように見えるので、これを行うことができます/etc/default/isc-dhcp-server。たとえば、br0(LAN上の仮想マシンと物理ホスト用)とワイヤレスインターフェイスwlan0を受信することができます。 (携帯電話、ノートパソコン、タブレットなどの場合):

INTERFACESv4="br0 wlan0"

eth0 / br0でネットワークを再起動するには、再起動または類似のコマンドを使用する必要がありますifdown eth0 ; sleep 5; ifup br0。このタスクや同様のタスクを繰り返し実行するには、sshコマンドラインで実行することが非常に重要です。そうしないと、eth0がダウンしたときにbr0を開始できません。sleep 5ifaceを閉じて再起動するまでに数秒待つのが良いと思うので、これが存在します。

一部のネットワークデーモンは、eth0が消えた後に再起動する必要があります。 eth0 を受け取るデーモンが多い場合は、すべて再起動するよりも再起動する方が簡単です。

答え2

VMがKVM / qemuと指定されている場合は、qemuネットワークで起動するのが最善です。 1)ユーザー、2)クリック、3)パススルーの3つのバリエーションがあります。

  1. -netdev user,- デフォルトでは、VMゲストはプライベートIP範囲サブネット10.0.2.0/24内で完全に分離され、統合qemu-DHCPサーバーはVMインターフェイスにIP:10.0.2.15アドレスを提供することを意味します。このサブネットは、起動時に有効/無効にできるNATファイアウォールを介してホストインターフェイスに接続されます。有効になっていても、次のパラメータを使用してポート転送を有効にしないと、外部からVMに接続できません。

-netdev user,id=n0,hostfwd=hostip:hostport-guestip:guestport

  1. -netdev tap,[tap] - [br0ブリッジ] - [eth0ホストインターフェイス]を介してVM eth0インターフェイスに接続する機会を提供します。ここでは、ホストレベルでホストeth0ではなくbr0インターフェイスを設定する必要があることを考慮する必要があります。仮想マシンにはデフォルトのIPが提供されていないため、一般的な方法で構成する必要があります。これは、VMのすべてのポートを互いに接続したり、ボックスの外側に表示したりすることなく、同じホストで実行されているより多くのVMを接続したい場合にも役立ちます。

  2. passthroughは、PCIネットワークカードのすべての制御をVMに転送する可能性に基づいた最終的なバリエーションです。これは単純な構成ではなく、いくつかのチュートリアルの例にあります。これにより、ホストカーネルの制御からカードが完全に削除され、ホストからネットワーク接続が必要な場合は、ホストに少なくとも2つのネットワークカードが必要です。

私のアドバイス:まず、VMネットワーキングの使用目標を検討してください。クライアント用のVMのみを使用する必要がある場合、または一部のサーバーサービスに単一のオープンポートのみを使用したい場合は、-netdevユーザーが最も簡単な方法ですが、ホストDHCPサーバーは使用されなくなりました。仮想マシンをより洗練して使用する場合、または同じホストで実行されているより多くの仮想マシンを相互接続する予定の場合、TAPは正しい選択です。完全に分離されたVMの場合は、NICパススルーを使用してください。

PS はい、気づいていませんでした。-netdev socket,ただし、デフォルトではVMを接続するのではなく、単一のホスト内でより多くのVMを相互接続することです。

関連情報