19.3. Network Address Translation モード

デフォルトでは、仮想ネットワークスイッチは NAT モードで動作します。SNAT (Source-NAT) や DNAT (Destination-NAT) ではなく IP マスカレードを使用します。IP マスカレードを使用すると、接続しているゲストが外部ネットワークとの通信にホスト物理マシンの IP アドレスを使用できるようになります。仮想ネットワークスイッチが NAT モードで動作している場合、デフォルトではホスト物理マシンの外部にあるコンピューターはホスト内部にあるゲストと通信できません。これを以下の図で示します。
ゲストを 2 つ持つ仮想ネットワークスイッチで NAT を使用している例

図19.3 ゲストを 2 つ持つ仮想ネットワークスイッチで NAT を使用している例

警告

仮想ネットワークスイッチは iptables のルールで構成された NAT を使用します。スイッチが稼働したままの状態でこれらのルールを編集することは推奨できません。編集を間違った場合、誤ったルールが原因でスイッチが通信を行えなくなる恐れがあります。
スイッチが実行されていない場合、以下を実行して、ポートのマスカレード範囲を作成するために、forward mode NAT のパブリック IP 範囲を設定することができます。
# iptables -j SNAT --to-source [start]-[end]

19.3.1. DNS と DHCP

IP 情報は DHCP 経由でゲストに割り当てることができます。この割り当てを行うためアドレスのプールを仮想ネットワークスイッチに割り当てることができます。libvirt は dnsmasq プログラムを使用してこれを行います。 dnsmasq のインスタンスは、このインスタンスを必要とする仮想ネットワークスイッチに自動的に設定されて起動されます。
dnsmasq を実行している仮想ネットワークスイッチ

図19.4 dnsmasq を実行している仮想ネットワークスイッチ