E1-2

SDN 技術理解のためのアンプラグドな演習の設計と実践
Design and Practice of Unplugged Exercise for SDN Technology
新村 正明*1, 野瀬 裕昭*2, 國宗 永佳*3
Masaaki NIIMURA *1, Hiroaki NOSE*2, Hisayoshi KUNIMUNE*2
*1
信州大学
*1
Shinshu University*2
長野県工科短期大学校*2
Nagano Prefectural Institute of Technology*3
千葉工業大学*3
Chiba Institute of Technology
Email: niimura@cs.shinshu-u.ac.jp
あらまし：新しいネットワーク技術である SDN(Software Defined Networking)技術では，パケットヘッダによる条件処理が中心であることから，制御ソフトウェアにおいてデータフロー的な要素を考慮する必要がある．本研究では，パケットをデータフローと扱うことを体験的に学ぶため，SDN によるパケット制御を人間が処理するアンプラグドな演習を設計・実践した．
キーワード：演習，アンプラグド，ネットワーク技術，SDN

1.

はじめにSDN(Software Defined Networking)技術は，2008 年頃に提唱された新しいネットワーク技術である．従来のネットワーク技術が，OSI 参照モデルに代表されるよう，通信機能を階層構造に分割して実装していたのに対し，ネットワークのトラフィックをすべてソフトウェアで制御する技術であり，Google のバックエンドネットワークの制御に用いられる(1)など，実ネットワークへの導入も進んでいる．
我々も，SDN 技術習得のための演習システム (1)を開発し，実際の授業への展開を行ってきた．しかし，SDN は，ソフトウェアによる制御と，ハードウェアによるパケット転送に分離されており，この役割の違いについて理解する必要がある．
そこで，SDN の制御ソフトウェア開発を行う前段階として，この違いを理解するためのアンプラグドなための演習の設計と実践を行った．今は，SDN 技術に実装例である OpenFlow によるパケット制御を対象とした．

2.

OpenFlow の学習における問題点

2.1 OpenFlow の動作
OpenFlow によるネットワーク制御は，コントローラとスイッチの２つの機能により行われる．
まずスイッチは，パケットヘッダにおける部分一致による条件設定(Match)と，条件に一致した際に行う動作(Action)及び優先順位からなるフローエントリを複数持つ．この複数のエントリを保持するものをフローテーブルと呼ぶ．スイッチは，受信したパケットのヘッダに一致する Match を持つフローエントリを優先順位順に検索し，最初に一致したエントリの Action に従ってパケット転送を行う．
フローテーブルに一致するエントリがない場合には，そのパケットをコントローラに送り，コントローラは制御ソフトに従って新たなフローエントリを生成し，スイッチに送信する．
2.2 問題点
前節で述べたとおり，スイッチは指定された条件に一致した場合にパケットに対する処理を行うことから，データフローとして処理を考案する必要がある．これに対し，コントローラでは，制御構造をもつソフトウェアによりフローエントリが生成される．
このように，学習者は，パケット転送を直接制御するわけではなく，フローエントリにより間接的に制御しなければならず，作成するソフトウェアと実際のパケット処理に乖離が生ずることになる．

3.

演習設計

3.1 方針問題点で述べたとおり，演習においてはコントローラのソフトウェア開発が中心となるが，パケットの処理をイメージすることが困難である．
そこで，まずパケットの流れに着目させる演習を検討した．このような演習のためのパケットの可視化については先行研究(2)があるが，SDN 向けに改変するにはコストがかかることから，実現が容易で，かつ，体験的に学ぶことが可能なアンプラグド教材として設計することとした．
3.2 演習構成
演習は，図 1 に示すようなループ状のスイッチ接続をもつネットワークを想定する．従来のネットワーク技術では実現困難であり，SDN 技術の理解に適している．また，各機能の分離が明確になるよう，少なくとも１人が１つのスイッチを担当し，コントローラ役 1 名，端末役 2-3 名を含めて 7 名程度でのグループワークとする．

― 97 ―

教育システム情報学会 JSiSE2019
第44回全国大会 2019/9/11-9/13

3.3 端末演習では，端末役の学習者間で ping を打つ場合のパケットの流れを再現する． ping では ARP 要求，
ARP 応答，ICMP echo 要求，ICMP echo 応答の 4 パケットのやり取りがなされる．そこで，図 2 に示すような 4 パケットのヘッダ部だけ記入するテンプレートを用意した．
3.4 スイッチ
スイッチ役の学習者は，図 3 に示すようなフローテーブルシートを保持し，端末役から受け取ったパケットシートを，フローテーブルに従って処理する．
また該当するフローエントリがない場合，後述のコントローラにパケットシートを送り，コントローラでエントリを追加してもらう．
3.5 コントローラ
今回は，パケットの流れに着目することを目的とし，制御ソフトウェアはこちらで提供することとする．そこで，コントローラ役の学習者には，図 4 に示すコントローラのソフトウェアを示したシートを配布する．これには，エントリの追加が容易になるよう，図 3 のフローテーブルシートと同様な形式で制御ソフトウェアが記述されている．

4.

図 2 パケットシート

実践

本提案により，長野県工科短期大学校の授業にて演習を行った．図 5 に演習風景を示す．
演習では，全グループで，ping を打つ場合のパケットの流れが再現でき，フローテーブルの情報等も正しく記載されたことから，SDN の動作原理については，概ね，理解が進んだと思われる．
しかし，スイッチ役がフローエントリを記入したり，端末役が直接，他の端末にパケットを渡すなど，役割分担が不明瞭になってしまう点が見受けられた．
また，フローテーブルを確認せずにパケットを渡すなど動作原理に基づかない処理も見受けられた．

5.

図 1 演習対象のネットワーク

図 3 フローテーブルシート

まとめ

本提案により，SDN 技術の動作原理の理解が進むであろうことが確認できた．今後は，パケット制御部分だけの演習にとどまっていることや，役割分担が不明瞭である等の問題点の解決を図っていく．

図 4 コントローラシート

参考文献(1) B Koley: “Software Defined Networking at Scale”,
Google Research, (2014)
https://research.google.com/pubs/archive/42948.pdf(2) 百瀬拓也, 横山貴志, 國宗永佳,新村正明: “Web ベース統合開発環境による SDN 実習支援システムの提案”, 電子情報通信学会技術研究報告(教育工学), 115,492, pp.7-10, (2016)(3) 大脇裕也, 立岩佑一郎, 片山喜章, 高橋直久: “ネットワーク学習者支援のためのパケット可視化システムについて”,
電子情報通信学会総合大会講演論文
集, 2, 82 (2015)― 98 ―

図 5 演習風景