今日は、KVM環境での仮想ネットワークの構成について、自分なりの理解を書いておきます。
コマンドの実行は、CentOS 6.5での操作です。
KVM環境で仮想ネットワークの種類としては、2種類あります。(個人的な見解で間違っている可能性がある)
1
2
|
プライベートネットワーク
外部ネットワーク
|
プライベートネットワーク
外部に接続されないブリッジを構成し、プライベートネットワークを構成することで、仮想マシン同士、仮想マシンとホストが通信できるようになります。
KVM環境を構成すると、既定ではlibvirtdデーモンが管理するvirbr0という仮想ブリッジが作成されます。192.168.122.0/24ネットワークが構成されます。
以下のような感じです。
■複数の仮想マシン(VM1~N)に192.168.122.0のネットワークのIPを割り当てる。仮想マシン同士で通信できる。
■virbr0に192.168.122.1が設定されている。仮想マシンとホストで通信できる。
■仮想マシンが外部に接続するには、ホスト側でiptablesを設定する必要がある。
■仮想マシンが増えるごとに、Tapデバイスも増える。仮想マシンが起動されると、ifconfigを実行してvnet0,...vnetNが表示されることを確認できる。
※TAP は、イーサネットデバイスをシミュレートし、データリンク層の操作を行う。TUN はネットワーク層をシミュレートするもので、IPパケットなどを操作する。TAPはブリッジ生成に使われ、TUNはルーティングに使われる。
外部ネットワーク
物理NICをブリッジに接続することで、複数の仮想マシンが物理NICを共有物理装置として外部に接続します。
■複数の仮想マシン(VM1~N)に外部IPを割り当てる。外部ネットワークに接続できる。
■物理NICがIPを持っていない。代わりにbr0にIPを割り当てる。
実践してみよう
- KVMをインストールして、eth0にアドレスを設定します。ifconfigを実行すると、以下のようになります。
[root@centos01 network-scripts]# ifconfig eth0 Link encap:Ethernet HWaddr 00:15:5D:01:03:19 inet addr:10.10.3.102 Bcast:10.10.7.255 Mask:255.255.248.0 inet6 addr: fe80::215:5dff:fe01:319/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:29935 errors:0 dropped:0 overruns:0 frame:0 TX packets:3681 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2566351 (2.4 MiB) TX bytes:379902 (370.9 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:206 (206.0 b) TX bytes:206 (206.0 b) virbr0 Link encap:Ethernet HWaddr 52:54:00:A7:95:B1 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
- 物理NICをブリッジ化します。
1.brctl showコマンドでブリッジの情報を確認します。virbr0しか表示されません。
2./etc/sysconfig/network-scripts/ifcfg-eth0ファイルを下記のように書き換えます。
[cye@centos01 network-scripts]$ brctl show bridge name bridge id STP enabled interfaces virbr0 8000.525400a795b1 yes virbr0-nic
DEVICE=eth0 HWADDR=00:15:5D:01:03:19 TYPE=Ethernet UUID=668ece27-3426-4b48-a2ee-d67b4f5bf282 ONBOOT=yes BOOTPROTO=none IPADDR=10.10.3.102 NETMASK=255.255.248.0 GATEWAY=10.10.0.1
↓↓
DEVICE=eth0 HWADDR=00:15:5D:01:03:19 UUID=668ece27-3426-4b48-a2ee-d67b4f5bf282 ONBOOT=yes BOOTPROTO=none BRIDGE=br0
3./etc/sysconfig/network-scriptsの下に、ifcfg-br0ファイルを作成し、以下のように記述します。
DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=10.10.3.102 NETMASK=255.255.248.0 GATEWAY=10.10.0.1 ONBOOT=yes
※注意:Typeのところで、小文字大文字を区別するので、必ずBridgeを記述する必要があります。そうでない(例:BRIDGE)とNetworkサービスを再起動するときに、evice br0 does not seem to be present, delaying initializationというエラーが発生します。
4.ネットワークサービスを再起動します。
# service network restart
5.ブリッジ情報を再度確認します。
[root@centos01 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.00155d010319 no eth0
virbr0 8000.525400a795b1 yes virbr0-nic
6.ifconfigを実行し、br0などの情報が表示されます。
[root@centos01 network-scripts]# ifconfig br0 Link encap:Ethernet HWaddr 00:15:5D:01:03:19 inet addr:10.10.3.102 Bcast:10.10.7.255 Mask:255.255.248.0 inet6 addr: fe80::215:5dff:fe01:319/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2424 errors:0 dropped:0 overruns:0 frame:0 TX packets:245 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:158386 (154.6 KiB) TX bytes:21910 (21.3 KiB) eth0 Link encap:Ethernet HWaddr 00:15:5D:01:03:19 inet6 addr: fe80::215:5dff:fe01:319/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:76513 errors:0 dropped:0 overruns:0 frame:0 TX packets:7464 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6378357 (6.0 MiB) TX bytes:717361 (700.5 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:206 (206.0 b) TX bytes:206 (206.0 b) virbr0 Link encap:Ethernet HWaddr 52:54:00:A7:95:B1 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
7.仮想マシンを作って、起動したら、ifconfigの結果にvnet0などの情報も確認できます。
この記事がお役にたちましたらシェアをお願いします:)
0 件のコメント:
コメントを投稿