ocnrm との連動動作方法

mlo-net は odenos を通じて ocmrm と連動動作可能です。
このドキュメントでは、ocmrm と連動動作を実施する際の設定方法と確認方法を説明します。

前提条件

mlo-net と mlo-gui のセットアップが完了している必要があります。
mlo-net と mlo-gui の README を確認してください。

設定方法

この節では、mlo-net の設定方法を示します。
mlo-net を ocmrm と連動動作させるためには、mlo-net に以下の設定を実施する必要があります。

mlo-srv の設定ファイル

mlo-srv の設定は、以下のファイルを編集することによって変更されます。
このファイルの書式は、Java プロパティファイル書式です。

/etc/mlo/mlo-srv.properties

サンプルファイルは mlo-srv.properties です。

接続先 odenos の設定変更

/etc/mlo/mlo-srv.propertis に以下の行を追加します。

mlo.server.config.odenos.remoteSystemManager.host=198.51.100.45

この例では、IP アドレスが 198.51.100.45 のホスト上で odenos が動作していると仮定しています。
IP アドレスは環境に合わせて書き換えてください。

odenos ネットワークコンポーネントの設定変更

/etc/mlo/mlo-srv.propertis に以下の行を追加します。

mlo.server.config.odenos.networkComponent.id.l2=networkcomponent2
mlo.server.config.odenos.networkComponent.id.l012=networkcomponent012
mlo.server.config.odenos.isAvailable.createL2=false

この設定では、ocmrm のデフォルト設定に合わせて、
L2 ネットワークコンポーネントのコンポーネント名を “networkcomponent2” に、
L012 ネットワークコンポーネントのコンポーネント名を “networkcomponent012” に設定しています。
また、mlo-srv はネットワークコンポーネントを作成しないようにフラグを設定しています。

odenos リンクの作成完了条件の設定変更

/etc/mlo/mlo-srv.propertis に以下の行を追加します。

mlo.server.config.odenos.isAvailable.reqLink.establishedCompletion=true

このプロパティでは、odenos のリンクレイヤライザの仕様に合わせるために、
リンク作成完了が “established” の受信で判定されるよう設定をしています。

odenos-mpls 接続設定追加

/etc/mlo/mlo-srv.propertis に以下の行を追加します。

mlo.server.config.odenos.topology.links.link-br6-s4_s5.odenosId=NW=SDN,Layer=Ether,TL=1
mlo.server.config.odenos.topology.links.link-br6-s4_s5.srcNode=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.links.link-br6-s4_s5.srcPort=NW=SDN,NE=PT1,Layer=Ether,TTP=1
mlo.server.config.odenos.topology.links.link-br6-s4_s5.dstNode=NW=SDN,NE=PT2
mlo.server.config.odenos.topology.links.link-br6-s4_s5.dstPort=NW=SDN,NE=PT2,Layer=Ether,TTP=1

mlo.server.config.odenos.topology.links.link-br5-s5_s3.odenosId=NW=SDN,Layer=Ether,TL=2
mlo.server.config.odenos.topology.links.link-br5-s5_s3.srcNode=NW=SDN,NE=PT2
mlo.server.config.odenos.topology.links.link-br5-s5_s3.srcPort=NW=SDN,NE=PT2,Layer=Ether,TTP=2
mlo.server.config.odenos.topology.links.link-br5-s5_s3.dstNode=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.links.link-br5-s5_s3.dstPort=NW=SDN,NE=PT3,Layer=Ether,TTP=1

mlo.server.config.odenos.topology.links.link-br8-s4_s3.odenosId=NW=SDN,Layer=Ether,TL=3
mlo.server.config.odenos.topology.links.link-br8-s4_s3.srcNode=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.links.link-br8-s4_s3.srcPort=NW=SDN,NE=PT1,Layer=Ether,TTP=2
mlo.server.config.odenos.topology.links.link-br8-s4_s3.dstNode=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.links.link-br8-s4_s3.dstPort=NW=SDN,NE=PT3,Layer=Ether,TTP=2

mlo.server.config.odenos.topology.links.link-br6-s5_s4.odenosId=NW=SDN,Layer=Ether,TL=4
mlo.server.config.odenos.topology.links.link-br6-s5_s4.srcNode=NW=SDN,NE=PT2
mlo.server.config.odenos.topology.links.link-br6-s5_s4.srcPort=NW=SDN,NE=PT2,Layer=Ether,TTP=1
mlo.server.config.odenos.topology.links.link-br6-s5_s4.dstNode=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.links.link-br6-s5_s4.dstPort=NW=SDN,NE=PT1,Layer=Ether,TTP=1

mlo.server.config.odenos.topology.links.link-br5-s3_s5.odenosId=NW=SDN,Layer=Ether,TL=5
mlo.server.config.odenos.topology.links.link-br5-s3_s5.srcNode=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.links.link-br5-s3_s5.srcPort=NW=SDN,NE=PT3,Layer=Ether,TTP=1
mlo.server.config.odenos.topology.links.link-br5-s3_s5.dstNode=NW=SDN,NE=PT2
mlo.server.config.odenos.topology.links.link-br5-s3_s5.dstPort=NW=SDN,NE=PT2,Layer=Ether,TTP=2

mlo.server.config.odenos.topology.links.link-br8-s3_s4.odenosId=NW=SDN,Layer=Ether,TL=6
mlo.server.config.odenos.topology.links.link-br8-s3_s4.srcNode=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.links.link-br8-s3_s4.srcPort=NW=SDN,NE=PT3,Layer=Ether,TTP=2
mlo.server.config.odenos.topology.links.link-br8-s3_s4.dstNode=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.links.link-br8-s3_s4.dstPort=NW=SDN,NE=PT1,Layer=Ether,TTP=2


mlo.server.config.odenos.topology.flows.osaka11slow-fw.basicFlowMatch.node=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.flows.osaka11slow-fw.basicFlowMatch.port=NW=SDN,NE=PT1,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.osaka11slow-fw.basicFlowAction.node=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.flows.osaka11slow-fw.basicFlowAction.port=NW=SDN,NE=PT3,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.osaka11slow-fw.linkNames=link-br6-s4_s5,link-br5-s5_s3

mlo.server.config.odenos.topology.flows.osaka11slow-bw.basicFlowMatch.node=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.flows.osaka11slow-bw.basicFlowMatch.port=NW=SDN,NE=PT3,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.osaka11slow-bw.basicFlowAction.node=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.flows.osaka11slow-bw.basicFlowAction.port=NW=SDN,NE=PT1,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.osaka11slow-bw.linkNames=link-br5-s3_s5,link-br6-s5_s4

mlo.server.config.odenos.topology.flows.osaka13cutthrough-fw.basicFlowMatch.node=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.flows.osaka13cutthrough-fw.basicFlowMatch.port=NW=SDN,NE=PT1,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.osaka13cutthrough-fw.basicFlowAction.node=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.flows.osaka13cutthrough-fw.basicFlowAction.port=NW=SDN,NE=PT3,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.osaka13cutthrough-fw.linkNames=link-br8-s4_s3

mlo.server.config.odenos.topology.flows.osaka13cutthrough-bw.basicFlowMatch.node=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.flows.osaka13cutthrough-bw.basicFlowMatch.port=NW=SDN,NE=PT3,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.osaka13cutthrough-bw.basicFlowAction.node=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.flows.osaka13cutthrough-bw.basicFlowAction.port=NW=SDN,NE=PT1,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.osaka13cutthrough-bw.linkNames=link-br8-s3_s4


mlo.server.config.odenos.topology.flows.akashi21slow-fw.basicFlowMatch.node=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.flows.akashi21slow-fw.basicFlowMatch.port=NW=SDN,NE=PT1,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.akashi21slow-fw.basicFlowAction.node=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.flows.akashi21slow-fw.basicFlowAction.port=NW=SDN,NE=PT3,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.akashi21slow-fw.linkNames=link-br6-s4_s5,link-br5-s5_s3

mlo.server.config.odenos.topology.flows.akashi21slow-bw.basicFlowMatch.node=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.flows.akashi21slow-bw.basicFlowMatch.port=NW=SDN,NE=PT3,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.akashi21slow-bw.basicFlowAction.node=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.flows.akashi21slow-bw.basicFlowAction.port=NW=SDN,NE=PT1,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.akashi21slow-bw.linkNames=link-br5-s3_s5,link-br6-s5_s4

mlo.server.config.odenos.topology.flows.akashi23cutthrough-fw.basicFlowMatch.node=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.flows.akashi23cutthrough-fw.basicFlowMatch.port=NW=SDN,NE=PT1,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.akashi23cutthrough-fw.basicFlowAction.node=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.flows.akashi23cutthrough-fw.basicFlowAction.port=NW=SDN,NE=PT3,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.akashi23cutthrough-fw.linkNames=link-br8-s4_s3

mlo.server.config.odenos.topology.flows.akashi23cutthrough-bw.basicFlowMatch.node=NW=SDN,NE=PT3
mlo.server.config.odenos.topology.flows.akashi23cutthrough-bw.basicFlowMatch.port=NW=SDN,NE=PT3,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.akashi23cutthrough-bw.basicFlowAction.node=NW=SDN,NE=PT1
mlo.server.config.odenos.topology.flows.akashi23cutthrough-bw.basicFlowAction.port=NW=SDN,NE=PT1,Layer=LSP,TTP=3
mlo.server.config.odenos.topology.flows.akashi23cutthrough-bw.linkNames=link-br8-s3_s4

この設定では、odenos 内と mlo-srv 内のノード名、ポート名、リンク設定、フロー設定のマッピングを行っています。

動作確認

この節では、mlo-net と ocmrm の連動動作の確認方法を示します。

起動手順

以下の順序で起動します。

  1. ocmrm の起動
  2. mlo-net の起動
  3. mlo-gui の起動

動作確認手順

以下の手順で操作を行います。

手順1. mlo-gui 起動画面

mlo-gui の画面を表示します。
左ペインの [Topology] タブを表示すると、ネットワークトポロジが表示されます。

手順2. スライスを作成する

スライスを作成するためには、左ペインの [Add] ボタンを押下します。

スライス作成画面が表示されます。

以下のように入力し、[Create] ボタンを押下します。











CategoryItemValue
Properties Nameslice-a
Flow list FlowName flow-osaka-tokyo-hbh
SourceCENodeName osaka
SourceCEPortNo eth1
DestCENodeName tokyo
DestCEPortNo eth1
RequestBandWidth 10
RequestDelay 25

このとき、odenos を通して mlo-srv から ocnrm にリンク s3 - s5 とリンク s5 - s4 が要求されます。

エラーなく正しくスライスを作成できれば、スライス情報画面に戻ります。

手順3. 作成したスライスを確認する

作成したスライスのフローは、[Topology] タブで確認することができます。
スライス情報画面の左ペインの [Service slice list] から “slice-a” を選択してください。
続いて、左ペインの [Topology] タブ内の [slice-a] ブルダウンを展開し、
“flow-osaka-tokyo-hbh” 項目をクリックしてください。
“flow-osaka-tokyo-hbh” フローで選択されている経路がオレンジ色の線で表示されます。
手順2で “RequestDelay” に 25 を指定したので、リンク s3 - s5 - s4 を通過するホップバイホップパスが
表示されれば正しい結果です。

またこのとき、ocnrm 上で s3 - s5 のリンクと s5 - s4 のリンクが生成されていれば、正しい結果です。

さらに、ノード “osaka” とノード “tokyo” の間で ping が通れば、正しい結果です。
ノード “osaka” とノード “tokyo” の間の ping 疎通は、
以下の手順で確認することができます。

  1. ターミナルソフトから ssh で 127.0.0.1:22 に developer ユーザでログインします。
  2. カレントディレクトリを /home/developer/mlo-net/lagopus-docker/workspace に変更します。
    $ cd /home/developer/mlo-net/lagopus-docker/workspace/
    
  3. 以下でノード “osaka” からノード “tokyo” に ping を実行することができます。
    $ ./run exec osaka ping -c4 tokyo
    

手順2 で “RequestDelay” を 25 にしたので、往復遅延はおよそ 50 msec 程度になるはずです。

手順4. スライスを変更する

次に、スライスを変更し、フローを別のパスに変更します。

スライスを変更するためには、右ペインの [Service slice list] から “slice-a” を選択した状態で、
左ペインの [Edit] ボタンを押下します。

スライス編集画面が表示されます。

[Flow list] カテゴリに表示されている “Flow-1” 項目のプルダウンから [update] を選択します。

“Flow-1” の編集状態になります。

以下のように入力し、[Update] ボタンを押下します。
入力する値は、”FlowName” 項目と “RequestDelay” 項目をそれぞれ “flow-osaka-tokyo-cth” と 5 に
変更する以外は、手順2 で入力した値と同じです。
“FlowName” 項目の値は手順2 で入力した値から変更する必要があります。











CategoryItemValue
Properties Nameslice-a
Flow list FlowName flow-osaka-tokyo-cth
SourceCENodeName osaka
SourceCEPortNo eth1
DestCENodeName tokyo
DestCEPortNo eth1
RequestBandWidth 10
RequestDelay 5

このとき、odenos を通して mlo-srv から ocnrm にリンク s3 - s4 が要求されます。

エラーなく正しくスライスを変更できれば、スライス情報画面に戻ります。

手順5. 変更したスライスを確認する

変更後のスライスのフローは、[Topology] タブで確認することができます (手順3 同様)。
手順2で “RequestDelay” に 5 を指定したので、ノード “osaka” とノード “tokyo” 間の
リンク s3 - s4 を通過するカットスルーパスに変更されていれば正しい結果です。

またこのとき、ocnrm 上で s3 - s4 のリンクが生成されていれば、正しい結果です。

さらに、ノード “osaka” とノード “tokyo” の間で ping が通れば、正しい結果です (手順3 同様)。
手順4 で “RequestDelay” を 5 に変更したので、往復遅延はおよそ 10 msec 程度に変更されているはずです。