コンテキスト: VirtualBox を使用してラップトップにデモ クラウドをセットアップし、2 つの仮想マシンを用意しました。1 つはクライアント、もう 1 つはサーバーです。サーバーを使用して小さなインスタンスを作成し、実行中のインスタンスは TinyLinux です。
問題: そのインスタンスにデータを送信し、そのインスタンスに保存するにはどうすればよいですか。
いくつかの指針は非常に役に立ちます。
コンテキスト: VirtualBox を使用してラップトップにデモ クラウドをセットアップし、2 つの仮想マシンを用意しました。1 つはクライアント、もう 1 つはサーバーです。サーバーを使用して小さなインスタンスを作成し、実行中のインスタンスは TinyLinux です。
問題: そのインスタンスにデータを送信し、そのインスタンスに保存するにはどうすればよいですか。
いくつかの指針は非常に役に立ちます。
さて、libvirt では、ネットワーキングを行う方法がいくつかあります。デフォルトでは、NATing を使用します。その場合、libvirt はそのように構成された仮想 NIC ごとにブリッジと仮想 NIC を作成します。
$ brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400512fc8 yes virbr0-nic
vnet0
次に、そのようなブリッジでパケットを NAT (マスカレード) するように iptables ルールを設定します。
Chain POSTROUTING (policy ACCEPT 19309 packets, 1272K bytes)
pkts bytes target prot opt in out source destination
8 416 MASQUERADE tcp -- any any 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
216 22030 MASQUERADE udp -- any any 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
11 460 MASQUERADE all -- any any 192.168.122.0/24 !192.168.122.0/24
転送を有効にします
# cat /proc/sys/net/ipv4/ip_forward
1
そしてDHCPサーバーを生成します(dnsmasq
DHCPとDNSの両方が1つになっています)
ps aux | grep dnsmasq
nobody 1334 0.0 0.0 13144 568 ? S Feb06 0:00 \
/sbin/dnsmasq --strict-order --local=// --domain-needed \
--pid-file=... --conf-file= --except-interface lo --bind-dynamic \
--interface virbr0 --dhcp-range 192.168.122.2,192.168.122.254 \
--dhcp-leasefile=.../default.leases --dhcp-lease-max=253 --dhcp-no-override
2 つの仮想ネットワーク インターフェイス (同じネットワーク上に 1 つの NIC を持つ 2 つのマシン) がある場合、そのブリッジには 2 つの NIC があります。マシンはdnsmasq
DHCP サーバーから 192.168.122.2-254 の範囲からアドレスを取得します。 , 両方が同じブロードキャスト ドメイン上にある (ブリッジによって接続されている) ため、1 つの VM から他の VM に接続できるはずです。コンピュータの外部からは、マシンはすべて「1 つの IP アドレス」として表示されます。
より「高度な」オプションは、ブリッジネットワークを使用することです。これは、仮想インターフェイスを1つのブリッジに配置しますが、そこに物理デバイスも配置するため、マシンはいくつかのスイッチに接続された複数のマシンがあるように見えます...
私は通常、VM が物理ホストとの NAT に使用するゲートウェイ インターフェイスに Web サーバーをバインドします。