Ubuntuを12.04LTS(precise)から14.04LTS(trusty)にアップグレードしたところ、open vSwitchで外部ネットワークに接続していたKVMが外部ネットワークと通信できなくなった。
その1に書いたように、Ubuntu14.04ではopenvswitch-brcompatパッケージの代わりにovs-vsctl を使用して接続する以外に選択肢がないので、移行する設定を行うことにした。
途中の試行錯誤は割愛して動作した設定は以下の通り。
例によって、一部はダミーです。
接続想定
- open vSwitchでブリッジovsbr0を作成してeth0へ接続する
- IPアドレスはovsbr0に割り当て
- KVMデフォルトネットワークをovsbr0へ接続する
open vSwitch設定
ブリッジovsbr0作成
1 |
sudo ovs-vsctl add-br ovsbr0 |
ブリッジネットワーク設定
1 |
sudo ovs-vsctl add-port ovsbr0 eth0 |
設定後の状態
1 2 3 4 5 6 7 8 9 10 |
foo@myhost:~$ sudo ovs-vsctl show xxxxxxxx-ce49-4563-850f-05a8xxxx82c7 Bridge "ovsbr0" Port "ovsbr0" Interface "ovsbr0" type: internal Port "eth0" Interface "eth0" ovs_version: "2.0.2" foo@myhost:~$ |
ネットワーク設定(関係する部分のみ抜粋)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
foo@myhost:~$ cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 allow-ovsbr0 eth0 iface eth0 inet static ovs_bridge ovsbr0 ovs_type OVSPort allow-ovs ovsbr0 iface ovsbr0 inet static ovs_type OVSBridge gateway 192.168.xxx.aaa address 192.168.xxx.bbb bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 up route add default gw 192.168.xxx.aaa dev eth0 foo@myhost:~$ |
KVMネットワーク設定;仮想ネットワークの変更
defaultネット停止
1 |
sudo virsh net-destroy default |
defaultネット自動起動停止
1 |
sudo virsh net-autostart --disable default |
ネットワーク設定を編集
1 |
sudo virsh net-edit default |
[変更前]
1 2 3 4 5 6 7 8 9 10 11 |
<network> <name>default</name> <uuid>xxxxxxxx-b38a-47d8-8778-5e61xxxxae87</uuid> <forward mode='nat'></forward> <bridge name='virbr0' stp='on' delay='0'></bridge> <ip address='192.168.xxx.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.xxx.2' end='192.168.xxx.254'></range> </dhcp> </ip> </network> |
[変更後]
1 2 3 4 5 6 |
<network> <name>default</name> <uuid>xxxxxxxx-b38a-47d8-8778-5e61xxxxae87</uuid> <forward mode='bridge'></forward> <bridge name='ovsbr0'></bridge> </network> |
defaultネット自動起動設定
1 |
sudo virsh net-autostart default |
KVMネットワーク設定;仮想マシンの設定変更
1 |
sudo virsh edit vmhost |
[ネットワーク関連設定抜粋:変更前]
1 2 3 4 5 6 |
<interface type='direct'> <mac address='52:54:00:xx:xx:90'></mac> <source dev='ovsbr0' mode='vepa'/> <model type='virtio'></model> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'></address> </interface> |
[ネットワーク関連設定抜粋:変更後]
1 2 3 4 5 |
<interface type='network'> <source network='default'/> <virtualport type='openvswitch'></virtualport> <model type='virtio'></model> </interface> |
[ネットワーク関連設定抜粋:保存後]
1 2 3 4 5 6 7 8 9 |
<interface type='network'> <mac address='52:54:00:xx:xx:f9'></mac> <source network='default'/> <virtualport type='openvswitch'> <parameters interfaceid='xxxxxxxx-18fb-43eb-9543-879a1f00199e'></parameters> </virtualport> <model type='virtio'></model> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'></address> </interface> |