Upload
masaru-oki
View
816
Download
0
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 KEYWORD;○ KEYWORD KEYWORD parameter;
● ; の代わりに { … } がつく書式があります。● { } の中に、入れ子でKEYWORD… を書きます。● 記述順は自由ですが上から評価されていきます。
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でできます。