DHCPとルーティングネットワーキングを使用してKVM仮想マシンにパブリックIPアドレスを割り当てる

DHCPとルーティングネットワーキングを使用してKVM仮想マシンにパブリックIPアドレスを割り当てる

私は持っています

  • 物理VMホスト
  • qemu-kvmには複数の仮想マシンがあります
  • 8つのパブリックIPv4アドレスセットとIPv6サブネットだけでなく、仮想マシンに簡単に割り当てることもできます。

このチャートのようにKVM仮想マシンでパブリックIPアドレスを構成する

ネットワーク設定図

どうすればいいですか?

現在私が使用している仮想ブリッジアプライアンスは物理ネットワークをすべての仮想マシンのイーサネットポートに関連付けます。仮想マシンではIPのみを設定できます。今養子にしたいです。ルーティングされたネットワークセキュリティ(仮想マシンは他の仮想マシンのIPアドレスを偽装できません)と簡単な設定(各仮想マシンのインストール時にIP設定の詳細を入力しない)のため。

私のホストにはより大きなネットワーク(IPv4の場合は/ 24)がありますが、私のIPアドレスだけがスイッチポートにルーティングするようにスイッチを設定しました。自分のホストのMACアドレスでVMのIPアドレスが利用可能であることを示すには、プロキシARPを有効にする必要があります。

現在Debian Linux 9を使用しています。緊張配布パッケージのすべてのソフトウェアが含まれています。

昔ながらの手動ソリューション?

私はLinuxでブリッジデバイスを作成し、IPv4アドレスとiptablesルールごとにDHCPサーバーを手動で設定し、各仮想マシンをブリッジの1つに接続できると思いました。しかし、libvirtはこれを単純化する能力があるようです。

同様の設定について私が見つけることができる最も良い説明は次のとおりです。https://jamielinux.com/docs/libvirt-networking-handbook/routed-network.html

問題1

VMのイーサネットポートのMACアドレスをコピーし、ネットワークのXMLファイルを再構築し、ネットワークを再起動するのが面倒です。みんな仮想デバイス。代わりに、仮想マシンを設定するときにIPv4アドレスを選択したいと思います。

私は(パブリックIPアドレスを使用して)同じ名前のIPv4アドレスごとに1つのネットワークを作成し、static-192.168.1.2そのアドレスのDHCP範囲のみを許可すると思います。アドレスが多いと拡張できないことがありますが、アドレスが8つであれば拡張できるようです。より良い解決策はありますか?

シーズン2

テスト設定では、2つのサンプルIPv4アドレスを提供するために、より短いDHCP範囲でローカルネットワークをミラーリングするネットワークを作成しようとしました。 192.168.23.0/24はローカルネットワークで、VMホストには192.168.23.7がありますbr1

<network>
  <name>static</name>
  <bridge name="br1" />
  <forward mode="route"/>
  <ip address="192.168.23.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.23.8" end="192.168.23.10"/>
    </dhcp>
  </ip>
</network>

しかし、始めることはできません。

# virsh net-create net.xml 
error: Failed to create network from net.xml
error: internal error: Network is already in use by interface br1

そのインターフェイスのホストIPv4がそれをロックすると思ったので、物理インターフェイスに接続されたブリッジを設定しました。ローカルネットワークの単一のIPv4アドレスを含むDHCPを使用してルーティングされたlibvirtネットワークを定義する方法は?

私は実際にlibvirtを使ったことがなく、いくつかの情報が欠落している可能性があるので、これは非常に複雑だと思います。必要に応じて質問を更新します。

関連情報