[Ubuntu][Open vSwitch][IPv6] Ubuntu 14.04環境で、KVMのbridgeインターフェイスをOpen vSwitchに切り替えてみた。

    • 2015/04/14 11:05:46
    • Category: Ubuntu
     
    • 最終更新日時:2015/05/17 00:25:01


    ちょいと自宅環境のUbuntu 14.04 Serverにて、KVMのネットワーク周りに相当するbridgeインターフェイスで不可思議な動きをしていたので切り替えてみることにしました。



    この辺りを確認すると、802.3ad、いわゆるbondingインターフェイスを使用した場合、RXパケットが増大する、というバグが報告はされているみたいですが、resolvになっていないので、なお顕在するバグなんだと思います。
    動作的には問題ないと思うのですが(少なくとも通信が不安定になったりしたことはない)、精神衛生上あまりよろしくなかったので、前々から興味があったOpen Vswitchに入れ替えてみることにしました。

    ちなみに作業手順を順に追って行きたかったのですが、途中で色々とつまずいてしまったこと、ネットワークが繋がらなくなりローカルコンソールでの作業が発生してしまい、メモ程度のものしか無いことをさきにお伝えしておきます。
    ちなみにbonding構成での設定になります。

    確認環境:
    lsb_release -a
    No LSB modules are available.
    Distributor ID:Ubuntu
    Description:Ubuntu 14.04.2 LTS
    Release:14.04
    Codename:trusty


    1. パッケージの導入
    sudo apt-get install openvswitch-switch

    2. OVSのセットアップ
    sudo ovs-vsctl add-br ovsbr0
    sudo ovs-vsctl add-bond ovsbr0 bond0 eth0 eth1
    sudo ovs-vsctl set port bond0 lacp=active bond_mode=balance-slb

    3. libvirtで使用していたネットワーク設定の停止
    virsh net-destroy default


    4. libvirtのネットワークの編集
    virsh net-edit default
    <network>
    <name>ovsbr0</name>
    <forward mode='bridge'/>
    <bridge name='ovsbr0'/>
    <virtualport type='openvswitch'/>
    </network>


    5. 設定の確認
    sudo ovs-appctl bond/show bond0
    ---- bond0 ----
    bond_mode: balance-slb
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    next rebalance: 9876 ms
    lacp_status: off

    slave eth0: enabled
    active slave
    may_enable: true
    hash 204: 1 kB load
    hash 225: 0 kB load
    hash 234: 5 kB load

    slave eth2: enabled
    may_enable: true
    hash 14: 40 kB load

    sudo ovs-vsctl list port bond0
    _uuid : c1c35875-0e29-4905-b4d7-984216a8f7a6
    bond_downdelay : 0
    bond_fake_iface : false
    bond_mode : balance-slb
    bond_updelay : 0
    external_ids : {}
    fake_bridge : false
    interfaces : [455a53b4-b444-46be-bc21-569fcb84b44b, 823adef3-80ef-461a-b651-a2bc6c210621]
    lacp : []
    mac : []
    name : "bond0"
    other_config : {lacp-time=fast}
    qos : []
    statistics : {}
    status : {}
    tag : []
    trunks : []
    vlan_mode : []

    6. libvirtからOpenVswitchの自動起動を有効にする
    virsh net-autostart ovsbr0

    7. open VswitchにIPアドレスを付与する。
    sudo ifconfig ovsbr0 192.168.169.2/24 
    sudo route add default gw 192.168.169.1

    8. 疎通を確認する。
    ping www.example.com

    9. 問題がなければ、KVMの仮想マシンのNIC設定を今回作成したbridgeに変更する。

    10. ネットワークインターフェイス設定ファイルも編集し直す。
    # Loopback interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    auto eth0
    iface eth0 inet manual

    auto eth1
    iface eth1 inet manual

    auto ovsbr0
    allow-ovs ovsbr0
    iface ovsbr0 inet static
    address 192.168.169.2
    network 192.168.169.0
    netmask 255.255.255.0
    broadcast 192.168.169.255
    gateway 192.168.169.1
    dns-nameservers 192.168.169.1

    ovs_type OVSBridge
    ovs_ports bond0

    iface ovsbr0 inet6 static
    address 2001:db8::2/32
    netmask 64
    gateway 2001:db8::1

    ovs_type OVSBridge
    ovs_ports bond0

    allow-ovsbr0
    iface bond0 inet manual
    ovs_bridge ovsbr0
    ovs_type OVSBond
    ovs_bonds eth0 eth1
    ovs_options bond_mode=balance-slb

    allow-ovsbr0
    iface bond0 inet6 manual
    ovs_bridge ovsbr0
    ovs_type OVSBond
    ovs_bonds eth0 eth1
    ovs_options bond_mode=balance-slb

    11. マシンを再起動し、OpenVswitchにIPアドレスが付与された状態でLinkupすることを確認する。
    また以下のコマンドを実行してもよいと思います。
    sudo ovs-vsctl list port
    _uuid : de98ab4c-fc4d-4bd6-ae4a-9dcb6e3c80c9
    bond_downdelay : 0
    bond_fake_iface : false
    bond_mode : []
    bond_updelay : 0
    external_ids : {}
    fake_bridge : false
    interfaces : [404af90e-86b8-4bcb-9019-bad79467944c]
    lacp : []
    mac : []
    name : "vnet1"
    other_config : {}
    qos : []
    statistics : {}
    status : {}
    tag : []
    trunks : []
    vlan_mode : []

    sudo ovs-vsctl list interface
    _uuid : 1e0078cc-eeee-44ab-856e-bab3dc7a696d
    admin_state : up
    bfd : {}
    bfd_status : {}
    cfm_fault : []
    cfm_fault_status : []
    cfm_health : []
    cfm_mpid : []
    cfm_remote_mpids : []
    cfm_remote_opstate : []
    duplex : full
    external_ids : {attached-mac="52:54:00:67:3b:a5", iface-id="0523238e-d603-4bbe-b89d-02752f130920", iface-status=active, vm-id="2d077489-d237-61a1-1304-1b5aee970afb"}
    ifindex : 13
    ingress_policing_burst: 0
    ingress_policing_rate: 0
    lacp_current : []
    link_resets : 1
    link_speed : 10000000
    link_state : up
    mac : []
    mac_in_use : "fe:54:00:67:3b:a5"
    mtu : 1500
    name : "vnet2"
    ofport : 6
    ofport_request : []
    options : {}
    other_config : {}
    statistics : {collisions=0, rx_bytes=1759184, rx_crc_err=0, rx_dropped=0, rx_errors=0, rx_frame_err=0, rx_over_err=0, rx_packets=18156, tx_bytes=3040442, tx_dropped=0, tx_errors=0, tx_packets=22878}
    status : {driver_name=tun, driver_version="1.6", firmware_version=""}
    type : ""


    sudo ovs-appctl bond/show bond0
    ---- bond0 ----
    bond_mode: balance-slb
    bond-hash-basis: 0
    updelay: 200 ms
    downdelay: 200 ms
    next rebalance: 3068 ms
    lacp_status: off

    slave eth0: enabled
    active slave
    may_enable: true
    hash 234: 6 kB load

    slave eth1: enabled
    may_enable: true
    hash 14: 58 kB load
    hash 204: 3 kB load
    hash 225: 0 kB load


    設定できるパラメータは他にもたくさんあるので以下を参照するのが良いと思います。

    /
    http://openvswitch.org/support/dist-docs/ovs-vswitchd.conf.db.5.html
    ちなみにoptionを設定するには以下のようにすれば良いようで・・・

    sudo ovs-vsctl set port bond0 bond_updelay=200 bond_downdelay=200 other_config:lacp-time=fast 

    結果は以下で確認できます。
    sudo ovs-vsctl list port bond0                 
    _uuid : 8fd21995-495c-4c62-b73d-a182ff82ff2f
    bond_downdelay : 200
    bond_fake_iface : false
    bond_mode : balance-slb
    bond_updelay : 200
    external_ids : {}
    fake_bridge : false
    interfaces : [33e4449d-c290-454f-a5c7-9e2293ae1f72, 5fefcc0d-4d5f-4fdb-bfef-77641ee704e3]
    lacp : []
    mac : []
    name : "bond0"
    other_config : {bond-detect-mode=miimon, bond-miimon-interval="100", lacp-time=fast}
    qos : []
    statistics : {}
    status : {}
    tag : []
    trunks : []
    vlan_mode : []

    ちなみにパラメータの削除は以下の様なコマンド。
    sudo ovs-vsctl remove port bond0 other_config bond_updelay

    Removing OVS Configuration Settings · Scott's Weblog · The weblog of an IT pro specializing in virtualization, networking, open source, and cloud computing /
    http://blog.scottlowe.org/2014/11/21/removing-ovs-configuration-settings/

    本来SDNで使うべきOpenVswitchをただbridge代わりに使用するという何とも残念な内容ですが、当初の懸念だったRXのDropパケットは一切検出されなくなったので、これはこれで良かったかなと思います。

    設定方法等で間違いなど有りましたらご指摘ください。

    Open vSwitch - Proxmox VE /
    https://pve.proxmox.com/wiki/Open_vSwitch

    OpenStack Folsom構築 on Wheezy (2) Open vSwitch | 外道父の匠 /
    http://blog.father.gedow.net/?p=1954

    Link Aggregation and LACP with Open vSwitch · Scott's Weblog · The weblog of an IT pro specializing in virtualization, networking, open source, and cloud computing /
    http://blog.scottlowe.org/2012/10/19/link-aggregation-and-lacp-with-open-vswitch/


    関連記事


    Pagination

    Trackback

    Trackback URL

    https://kometchtech.blog.fc2.com/tb.php/1829-52d6339e

    Comment

    Post Your Comment

    コメント登録フォーム
    公開設定

    Utility

    Profile

    kometch

    Author:kometch
    なんちゃってエンジニアです。
    2009年10月から業務都合により大阪勤務になりました。
    2010年1月、HYBRID W-ZERO3を購入しました。
    2010年11月、HTC Desire HDを購入しました。
    2012年2月、都内の会社に転職しました。
    2012年5月、HTC One Xを購入しました。
    2012年8月、事情により休職しました。
    2012年8月、SONY Xperia SXを購入しました。
    2013年1月、一身上の都合により退職しました。
    2014年3月、都内の会社に就職しました。
    2016年8月、HPC系の会社に転職しました。

    Amazonほしい物リスト
    何か問題などありましたら、こちらまで。 Twitter:@kometchtech follow us in feedly

    カレンダー

    09 | 2017/10 | 11
    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 26 27 28
    29 30 31 - - - -

    全記事(数)表示

    全タイトルを表示

    バロメーター

    カテゴリー

    カテゴリークラウド

    アーカイブ

    検索フォーム

    FC2カウンター

    現在の閲覧者数

    現在の閲覧者数:

    Amazonアソシエイト

    スポンサードリンク

    月間ページランキング

    ブログパーツ

    サイトランキング

    スポンサードリンク

    スポンサードリンク