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作成
sudo ovs-vsctl add-br ovsbr0
ブリッジネットワーク設定
sudo ovs-vsctl add-port ovsbr0 eth0
設定後の状態
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:~$
ネットワーク設定(関係する部分のみ抜粋)
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ネット停止
sudo virsh net-destroy default
defaultネット自動起動停止
sudo virsh net-autostart --disable default
ネットワーク設定を編集
sudo virsh net-edit default
[変更前]
<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>
[変更後]
<network>
<name>default</name>
<uuid>xxxxxxxx-b38a-47d8-8778-5e61xxxxae87</uuid>
<forward mode='bridge'></forward>
<bridge name='ovsbr0'></bridge>
</network>
defaultネット自動起動設定
sudo virsh net-autostart default
KVMネットワーク設定;仮想マシンの設定変更
sudo virsh edit vmhost
[ネットワーク関連設定抜粋:変更前]
<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>
[ネットワーク関連設定抜粋:変更後]
<interface type='network'>
<source network='default'/>
<virtualport type='openvswitch'></virtualport>
<model type='virtio'></model>
</interface>
[ネットワーク関連設定抜粋:保存後]
<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>
参考URL
- KVM on ESXi (openvswitch)
- UbuntuでOpen vSwitchを使うときに/etc/network/interfacesが使える -- pelican@ainoniwa.net
Last Updated on 2024-08-17 by spicebeat