OpenStack memo

Security Groupの設定

Floating IPを利用した通信ができないのでNeutronのモードをGREにしたり、VLANにしたりと色々試行錯誤していたらやっと原因がわかった。*Security Group*の設定が間違っていた。まさかFirewallの設定なんて基本的なところで引っかかっているとは。

20140623_openstack

OpenvSwtichの構成(VLANモード)

通常OpenvSwitchでVLANを設定するとポートにtag:VLANIDのようにタグが着くのだが、 OpenStackではどうやらovsから通信が出て行く瞬間にOpen Flowの仕組みでタグが付けられるようだ。故に、構築しているNW下記のようなovs構成をしている。

    Bridge br-int
        Port "tapb5a5e7c4-9d"
            tag: 4095
            Interface "tapb5a5e7c4-9d"
                type: internal
        Port "qvo7f7c766f-02"
            tag: 5
            Interface "qvo7f7c766f-02"
        Port br-int
            Interface br-int
                type: internal
        Port "int-br-bond0"
            Interface "int-br-bond0"
        Port "qr-de5001b3-30"
            tag: 5
            Interface "qr-de5001b3-30"
                type: internal
    Bridge br-ex
        Port "patch-bond0"
            Interface "patch-bond0"
                type: patch
                options: {peer=patch-ex}
        Port "qg-35b87733-90"
            Interface "qg-35b87733-90"
                type: internal
        Port br-ex
            Interface br-ex
                type: internal
    Bridge "br-bond0"
        Port patch-ex
            tag: 201
            Interface patch-ex
                type: patch
                options: {peer="patch-bond0"}
        Port "phy-br-bond0"
            Interface "phy-br-bond0"
        Port "bond0"
            Interface "p1p2"
            Interface "p1p1"
        Port "br-bond0"
            Interface "br-bond0"
                type: internal
    ovs_version: "2.0.1"

そろそろ、Neutronのコード読まないと。

L3-agentの設定を確認したい

OpenStackのL3 agentはNetwork Namespaceという技術によって実現されている。Network NamespaceとはLinuxが持つネットワーク仮想化の機能で、1つの物理ホスト上に複数の独立したネットワーク機能を構成できる。また、他の Namespaceの影響を受けない。Neutronでは、IPアドレスが重複したネットワークを扱うため、Network Namespaceを利用している。

  • ホストが保持するNW Namespaceの確認

    ip netns
    
  • 対象のNamespaceにてbash,ifconfig,tcpdumpを実行したいコマンド

    $ ip netns exec <id> bash 
    $ ip netns exec <id> ifconfig
    $ ip netns exec <id> tcpdump