Ubuntu14.04でopenvswitch-brcompatを使わずにKVMをopen vSwitchで外部ネットワークに接続する・その2(解決編)

PC

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

Last Updated on 2024-08-17 by spicebeat

タイトルとURLをコピーしました