mlo-net は odenos を通じて ocmrm と連動動作可能です。
このドキュメントでは、ocmrm と連動動作を実施する際の設定方法と確認方法を説明します。
mlo-net と mlo-gui のセットアップが完了している必要があります。
mlo-net と mlo-gui の README を確認してください。
この節では、mlo-net の設定方法を示します。
mlo-net を ocmrm と連動動作させるためには、mlo-net に以下の設定を実施する必要があります。
接続先 odenos の設定変更
mlo-srv のデフォルト設定では、mlo-srv, mlo-psdtnc, odenos はすべて同じホスト上で
動作すると仮定しています。ocmrm が動作するホスト上で動作する odenos と mlo-net が
接続するためには、mlo-srv の設定を変更する必要があります。
odenos ネットワークコンポーネントの設定変更
mlo-srv のデフォルト設定では、mlo-srv が必要な odenos ネットワークコンポーネントを
すべて作成する設定となっています。ocmrm が作成する odenos ネットワークコンポーネントを
mlo-srv が利用し、mlo-srv は odenos ネットワークコンポーネントを作成しないよう、
mlo-srv の設定を変更する必要があります。
odenos リンクの作成完了条件の設定変更
ocmrm と mlo-srv が連動する場合、odenos リンクの作成完了条件を変更する必要があります。
odenos-mpls 接続設定追加
odenos ネットワークコンポーネント内で、ノード、ポート、リンク、フローを取り扱うために、
mlo-srv 内のノード、ポート、リンク、フローとのマッピング設定を追加する必要があります。
mlo-srv の設定は、以下のファイルを編集することによって変更されます。
このファイルの書式は、Java プロパティファイル書式です。
/etc/mlo/mlo-srv.properties
サンプルファイルは mlo-srv.properties です。
/etc/mlo/mlo-srv.propertis に以下の行を追加します。
mlo.server.config.odenos.remoteSystemManager.host=198.51.100.45
この例では、IP アドレスが 198.51.100.45 のホスト上で odenos が動作していると仮定しています。
IP アドレスは環境に合わせて書き換えてください。
/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 はネットワークコンポーネントを作成しないようにフラグを設定しています。
/etc/mlo/mlo-srv.propertis に以下の行を追加します。
mlo.server.config.odenos.isAvailable.reqLink.establishedCompletion=true
このプロパティでは、odenos のリンクレイヤライザの仕様に合わせるために、
リンク作成完了が “established” の受信で判定されるよう設定をしています。
/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 の連動動作の確認方法を示します。
以下の順序で起動します。
以下の手順で操作を行います。
mlo-gui の画面を表示します。
左ペインの [Topology] タブを表示すると、ネットワークトポロジが表示されます。
スライスを作成するためには、左ペインの [Add] ボタンを押下します。
スライス作成画面が表示されます。
以下のように入力し、[Create] ボタンを押下します。
Category | Item | Value |
---|---|---|
Properties | Name | slice-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 が要求されます。
エラーなく正しくスライスを作成できれば、スライス情報画面に戻ります。
作成したスライスのフローは、[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 疎通は、
以下の手順で確認することができます。
$ cd /home/developer/mlo-net/lagopus-docker/workspace/
$ ./run exec osaka ping -c4 tokyo
手順2 で “RequestDelay” を 25 にしたので、往復遅延はおよそ 50 msec 程度になるはずです。
次に、スライスを変更し、フローを別のパスに変更します。
スライスを変更するためには、右ペインの [Service slice list] から “slice-a” を選択した状態で、
左ペインの [Edit] ボタンを押下します。
スライス編集画面が表示されます。
[Flow list] カテゴリに表示されている “Flow-1” 項目のプルダウンから [update] を選択します。
“Flow-1” の編集状態になります。
以下のように入力し、[Update] ボタンを押下します。
入力する値は、”FlowName” 項目と “RequestDelay” 項目をそれぞれ “flow-osaka-tokyo-cth” と 5 に
変更する以外は、手順2 で入力した値と同じです。
“FlowName” 項目の値は手順2 で入力した値から変更する必要があります。
Category | Item | Value |
---|---|---|
Properties | Name | slice-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 が要求されます。
エラーなく正しくスライスを変更できれば、スライス情報画面に戻ります。
変更後のスライスのフローは、[Topology] タブで確認することができます (手順3 同様)。
手順2で “RequestDelay” に 5 を指定したので、ノード “osaka” とノード “tokyo” 間の
リンク s3 - s4 を通過するカットスルーパスに変更されていれば正しい結果です。
またこのとき、ocnrm 上で s3 - s4 のリンクが生成されていれば、正しい結果です。
さらに、ノード “osaka” とノード “tokyo” の間で ping が通れば、正しい結果です (手順3 同様)。
手順4 で “RequestDelay” を 5 に変更したので、往復遅延はおよそ 10 msec 程度に変更されているはずです。