16.7. 外部に表示される仮想マシンの設定
多くの場合、デフォルトの仮想マシン (VM) のネットワーク設定で十分です。ただし、仮想マシンを外部システムからアクセスできるように設定を調整する必要がある場合は、コマンドライン (CLI) または RHEL 10 Web コンソールを使用できます。
16.7.1. コマンドラインを使用した外部に表示される仮想マシンの設定 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) をハイパーバイザーと同じ外部ネットワーク上に配置する必要がある場合は、ブリッジモードを使用する必要があります。これには、仮想マシンを、ハイパーバイザーの物理ネットワークデバイスに接続されているブリッジデバイスに割り当てます。
デフォルトでは、新規作成された仮想マシンは、NAT タイプのネットワークに接続されます。このネットワークは、ホストのデフォルトの仮想ブリッジである virbr0 を使用します。これにより、仮想マシンはホストのネットワークインターフェイスコントローラー (NIC) を使用して外部ネットワークに接続できますが、外部システムから仮想マシンには到達できません。
前提条件
- デフォルトの NAT 設定を持つ 既存の仮想マシン のシャットダウン。
ハイパーバイザーの IP 設定。これは、ホストのネットワーク接続によって異なります。たとえば、以下の手順では、イーサネットケーブルを使用してホストがネットワークに接続され、ホストの物理 NIC MAC アドレスが DHCP サーバーの静的 IP に割り当てられるシナリオを使用します。したがって、イーサネットインターフェイスはハイパーバイザー IP として扱われます。
イーサネットインターフェイスの IP 設定を取得するには、
ip addrユーティリティーを使用します。# ip addr [...] enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 54:ee:75:49:dc:46 brd ff:ff:ff:ff:ff:ff inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic noprefixroute enp0s25
手順
ホスト上の物理インターフェイスのブリッジ接続を作成して設定します。手順は、ネットワークブリッジの設定 を参照してください。
静的 IP 割り当てが使用されるシナリオでは、物理イーサネットインターフェイスの IPv4 設定をブリッジインターフェイスに移行する必要があることに注意してください。
作成したブリッジインターフェイスを使用するように仮想マシンのネットワークを変更します。たとえば、以下のコマンドは、bridge0 を使用するように testguest を設定します。
# virt-xml testguest --edit --network bridge=bridge0 Domain 'testguest' defined successfully.仮想マシンを起動します。
# virsh start testguestゲストオペレーティングシステムで、仮想マシンがハイパーバイザーと同じネットワーク内の別の物理システムであるかのように、システムのネットワークインターフェイスの IP および DHCP 設定を調整します。
具体的な手順は、仮想マシンで使用されるゲストオペレーティングシステムによって異なります。たとえば、ゲストオペレーティングシステムが RHEL 10 の場合は、イーサネット接続の設定 を参照してください。
検証
新たに作成されたブリッジが実行中で、ホストの物理インターフェイスと仮想マシンのインターフェイスの両方が含まれていることを確認します。
# ip link show master bridge0 2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 54:ee:75:49:dc:46 brd ff:ff:ff:ff:ff:ff 10: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UNKNOWN mode DEFAULT group default qlen 1000 link/ether fe:54:00:89:15:40 brd ff:ff:ff:ff:ff:ff仮想マシンがハイパーバイザーと同じ外部ネットワークに表示されることを確認します。
ゲストオペレーティングシステムで、システムのネットワーク ID を取得します。たとえば、これが Linux ゲストの場合は、次のコマンドを実行します。
# ip addr [...] enp0s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:09:15:46 brd ff:ff:ff:ff:ff:ff inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic noprefixroute enp0s0ローカルネットワークに接続された外部システムから、取得した ID を使用して仮想マシンに接続します。
# ssh root@192.0.2.1 root@192.0.2.1's password: Last login: Mon Sep 24 12:05:36 2019 root~#*接続が機能している場合にはネットワークが正常に設定されています。
トラブルシューティング
仮想マシンがクライアントでホストされる間に、クライアントからサイトへの VPN を使用するなどの特定の状況では、外部ロケーションで仮想マシンを利用可能にするブリッジモードを使用することはできません。
この問題を回避するには、仮想マシンの
nftablesを使用して宛先 NAT を設定 します。