21
lagopus.conf の書式 (for Lagopus 0.1.x) Dec 18, 2014 Masaru OKI [email protected]

Lagopus.confの書式(for lagopus 0.1.x)

Embed Size (px)

Citation preview

lagopus.confの書式(for Lagopus 0.1.x)Dec 18, 2014Masaru [email protected]

ご注意

OSS版Lagopusの現在のバージョンは0.1.1。0.1.2を準備中です。

その後、0.3.0(仮)のリリースが予定されています。

0.3.0(仮)では、書式が少し(?)変わります。

本説明は0.1.x向けですので、ご注意ください。

lagopus.conf

● samples/lagopus.confに例があります。● QUICKSTART.mdにも例が載っています。● 書式等のドキュメントは、現在ありません。● “lagopus.conf”が起動時に参照されます。

○ 参照順は1. カレントディレクトリ2. configureの--sysconfdir指定 (/usr/local/etcなど)

● パス指定: lagopus -C ./my.conf

lagopus.confで設定するもの

OpenFlow logical switchの設定。

ブリッジと呼んでいます。

interface ethernetDPDK portid 0

interface ethernetDPDK portid N

bridge-domainsbridge-domains “br0”

port

port-no

controller <IP>

local-addresslocal-port

port

tls or not

fail-secure-modedpid

lagopus.confの書式

KEYWORD { KEYWORD parameter;}KEYWORD parameter { KEYWORD { … }}

lagopus.confの書式のお約束

● 改行は無視されます。● 下記のいずれか。この単位で任意に省略できます。

○ KEYWORD;○ KEYWORD parameter;○ KEYWORD KEYWORD;○ KEYWORD KEYWORD parameter;

● ; の代わりに { … } がつく書式があります。● { } の中に、入れ子でKEYWORD… を書きます。● 記述順は自由ですが上から評価されていきます。

トップレベルキーワード

下記が定義されています。(詳細は後述)● tls● snmp● interface● bridge-domains● protocols● system

tls

TLS接続関連の情報を設定します。tls { certificate-store ディレクトリ名; certificate-file ファイル名; private-key “プライベートキー文字列”; trust-point-conf ファイル名;}

● コントローラとのSSL接続の信頼性担保に使用。

snmp

SNMPに関する設定です。

snmp { master-agentx-socket 接続先アドレス; ping-interval-second 数値(1-255);}

● SNMPサポートの場合に使われます。● 現在OSS版では書式が定義されているのみです。● 動作しませんので、記述不要です。

interface

Lagopusで使用するインタフェースを定義します。

第2レベルキーワードが複数あります。

● interface ethernet● interface gre● interface vxlan● interface nvgre

現在はinterface ethernetのみ実装されています。

interface ethernet

interface ethrenet { NIC名; NIC名 shutdown;}

● shutdownをつけるとlink downになります。(未実装)● DPDK版のNIC名: “eth”の後ろにポートID。

○ Linuxで見えている名前と無関係な点に注意。● raw socket版のNIC名: Linuxで見える名前そのまま。

bridge-domains

OpenFlowスイッチを定義します。複数定義可能。

● ブリッジ名: “br”を接頭辞につける任意の名前。

bridge-domains br0 { … }

● 第2レベルキーワード(未実装のものは省略)○ dpid○ port○ fail-secure-mode○ controller

bridge-domains dpid

datapath idを指定します。

bridge-domains br0 { dpid 0.00:00:00:00:00:01;

● OpenFlow仕様で下位48bitはMACアドレスという記述があり、上位16ビットを10進数、下位48ビットをMACアドレス形式で記述します。

● <10進数> . <MACアドレス>です。● 記述がない場合、起動時に乱数で生成します。

bridge-domains port

OpenFlowポートを定義します。bridge-domains br0 { port { eth0; eth1 port-no 5;

● interfaceで指定した名前を書きます。● 末尾の数字+1がポート番号、port-noで指定可能。● raw socket版では、ほぼport-no必須。

bridge-domains fail-secure-mode

コントローラとの接続が切れたときの動作設定。bridge-domains br0 { fail-secure-mode; …

● 記述あり: fail-secure-mode(フロー処理続行)● 記述なし: fail-standalone-mode

○ 本来はOFPP_NORMALでレガシー処理されます。○ 現在はハイブリッドサポートがないのでall drop。

bridge-domains controller

コントローラとの接続に関する設定です。

IPアドレス指定の後ろに第3レベルキーワードbridge-domains br0 { controller 127.0.0.1 {● protocols● port● local-address● local-port

bridge-domains controller

● protocols○ “protocols tls;”でTLS接続(記述なしでTCP接続)

● port○ 接続先のTLS/TCPポート番号を指定。指定なしは6633。

● local-address○ 自IPアドレスを手動で指定します。指定なしで自動選択

● local-port○ 自ポート番号を手動で指定します。指定なしで自動選択

bridge-domains controller

6633/tcp宛で接続先IPアドレス指定だけならbridge-domains br0 { controller 192.168.0.1; …}

● IPアドレス部分にはIPv6アドレスも指定可能。

記述に関しての注意点

● 記述誤りは無視されて、止まらず動きます。● 起動オプションとconfのポートに食い違いがある

ときは、両方で有効なポートのみ動きます。● 現在、チェッカープログラムはありません。● 文法はconfiguration.xmlで定義されます。

○ プログラムでXMLと同じ埋め込み文字列を使ってます。○ そのため、xmlファイル変更のみで文法変更は不可能。

こんなことできますか?

Q.Lagopus側でlistenしてovs-ofctlでフロー設定可能?A.できません。ovs-controllerとはお話しできます。

Q.ブリッジを2つ作ってそれぞれのポートを接続可能?A.ポートの接続にPipe PMDを使えば可能です。

Q.lagoshからフロー設定可能?A.できません。表示はshow flowでできます。

思ったように動かない、困ったときは

● ひとまず、ログを参照してください。○ Ubuntuなら/var/log/syslog (他のと混ざります)○ Lagopus自身、かなりいろいろ吐きます。

● 起動パラメータで出力先を指定することも可能。○ sudo lagopus -d -C ./my.conf -l /dev/stdout …

● stdout指定すると画面に出ます。● ファイルを指定してlagopusのログだけ分離も可能。