A4-3

初学者向けネットワーク構築演習のためのヒント生成システムにおける誤り潜在範囲絞り込み機能の開発
A function for narrowing down error latent areas in a system for generating
hints on network construction exercises for beginners*1*1

立岩 佑一郎 , 高橋 直久*1*1
Yuichiro TATEIWA , Naohisa TAKAHASHI*1
名古屋工業大学*1
Nagoya Institute of Technology
Email: tateiwa@nitech.ac.jp
あらまし：初学者向けの演習では「ネットワークが繋がらない／繋がってしまう」と躓く学習者が多い．
ノードには設定項目が多数存在するため，誤りの項目を特定しづらい．そこで，我々は学習者のネットワークが演習問題の指定を満足するかを判定し，満足しない場合に学習者のネットワークの動作と誤り潜在範囲を表示するヒント生成システムを開発した．本稿では，誤り潜在範囲を絞り込む手法について述べる．
キーワード：ネットワーク構築演習，誤り潜在範囲，ヒント

1.

はじめに

例えば，ping や traceroute により，ICMP データの最後の到達ノードから最初の不達ノードまでのノードの設定項目に，誤りの潜在範囲を絞り込める．あるいは，tcpdump などを用いてのパケットダンプにより，通信データの到達するネットワークデバイス（以降，デバイスと略記）を求められ，ノードの到達デバイスから不達デバイスまでの設定項目に，誤りの潜在範囲を絞り込める．
しかし，ノードの設定項目は多数存在するため，誤りの項目を特定しづらい．このため，次のような特徴を持つヒント生成システムを開発した（1）．特徴
1）学習者のネットワークの動作記録を生成する．特徴 2）演習問題から正解となるネットワークの動作パターン（以降，正解パターンと呼称）を導出する．
特徴 3）動作記録と正解パターンを比較し，正誤判定と誤り潜在範囲の絞り込みを行う．
このシステムは，ある種の誤りにおいて，その潜在範囲をノードのいくつかの設定項目に絞り込む．
本稿では，この絞り込み手法について述べる．

2.

ネットワーク構築演習

2.1 演習目的演習の達成目標は，学習者が次の 5 項目に関する要件を満たすネットワークを設計でき，その設計に従って，リピータハブ，スイッチングハブ，サーバ，クライアント，ルータを設定してネットワークを構築できるようになることである：１）IP アドレスとサブネットマスク，２）同一セグメントの IP ネットワーク，３）デフォルトルート，４）静的経路制御，
５）サーバサービス（apache でのウェブページ公開，待受ポート，待受 IP アドレス）．サーバ，クライア
ント，ルータは Linux マシンで，サーバには Linuxのサーバソフトウェアがインストールされている．
2.2 演習問題の構成
図 1 のように，通信例，ノード要件，リンク要件を演習問題にて提示する．通信例は，学習者のネットワークが成立させなければならない通信で，日本語の文章にて表される（図中左の文章）．ノード要件は，学習者の使用可能なノードの識別子（図で例えば svr1），種別（図で例えばサーバ），および保持するネットワークデバイス名の集合（図では無指定）である．リンク要件は学習者が設定しなければならないケーブル接続（図ではノード間の線）であり，これ以外のケーブル接続を設定できない．

図 1 演習問題例

3.

ヒント生成システム

3.1 操作文献（1）にて，ネットワークの動作，および動作とネットワークの設定項目との関係を学習者に理解させやすくするために，ネットワーク動作を意味のある塊（操作と呼称）の系列で表現した（表 1，図 2）．
表 1 と図 2 にて，dtype はデータ種別，devs はデバイス集合，dn はデバイス名，nid はノード識別子，nds はノード集合，lns はリンク集合，prot はプロト
コル名，dip は宛先 IP アドレス，dp は宛先ポート番号を意味する．図 2 のメイン関数は，prot，dtype，dip，dp，送信元ノード nd，nds，lns を引数とする．
関数 F，関数 L1，関数 L2，関数 L34 は通信データ p，nds，lns，ノード nd，dn を引数とする．通信データのデータ構造は，prot，dtype，dip，送信元 IP アドレ
ス sip，dp，送信元ポート番号 sp，宛先 MAC アドレ
ス dmac，送信元 MAC アドレス smac による八つ組である．ノードのデータ構造は， nid，ノード種別
ntype，稼働プロセス名の集合 procs， devs，経路制― 257 ―

教育システム情報学会 JSiSE2015
第 40 回全国大会 2015/9/1～9/3

御表 rt，ARP 表 at による六つ組である．組の要素へのアクセス演算子を「.」とする．
表 1 操作
名前
Alloc (prot,dtype,dip, dp)
ChkDIP(ip, devs)
ChkDMac(mac,devs, dn)
Proc (prot, dp,dip, procs)
L1Rtng(dn, devs)
L2Rtng(mac, dn,nid, nds, lns)
L3Rtng(ip, rt)
Rcv(pname, p)
SIP(devs, dn)
DMac(nid, nodes,lns, dev, ip, at)SMac(devs, dn)Transmit(nodes,lns, nid, dn)効果
prot，dtype，dip，dp を格納した通信データを返す
ip を持つデバイスが devs に存在すれば真を返す
MAC アドレス mac を持つ dn のデバイスが devs に存在すれば真を返すプロセスの集合 procs から prot，dp，dip で待ち受けるプロセスを探し，その名前を返す
devs のうち dn 以外のデバイスの名前の集合を返す
nds のデバイスのうち MAC アドレス mac が割り当てられているものとケーブル接続しており，nid のノードにおける dn 以外のデバイスの名前を返す
経路制御表 rt を IP アドレス ip で検索し，組(ネクストホップ, 出力デバイス)を返す
p.dtype が要求であれば，応答の通信データを送る
devs のうち dn のデバイスの IP アドレスを返す
ARP 表 at の検索，検索失敗であれば ARP 通信により，IP アドレス ip に対応する MAC アドレスを返す
devs のうち dn のデバイスの MAC アドレスを返す
nid のノードの dn のデバイスにケーブル接続されているデバイスの名前 name と name を持つノード nd による組(nd, name)を返す

受信したプロセスの名前 proc による二つ組を巨視的伝播経路と呼ぶ．あるデータを送信元から宛先に向けて送信するとき，識別子 nid のノードにおいて，このデータをペイロードとする通信データに対する操作の名前 op，入力 in，出力 out の組(nid, op, in, out)を微視的伝播点と呼び，それを操作の実行順に並べたものを微視的伝播経路と呼ぶ．通信例を学習者のネットワークで実行することにより求めた微視的伝播経路を微視的答案経路と呼ぶ．
巨視的伝播経路のノードは，メイン関数の引数 nd，Transmit の出力の n，Rcv の実行時の nd のいずれかに対応し，受信したプロセスの名前は Proc の出力から求められる．巨視的伝播点間を図 2 に基づいて補間することで微視的伝播経路（ただし，in と out はNULL）を得られる．通信例から抽出した巨視的伝播経路から得られる微視的伝播経路を微視的正解経路（第 1 章では正解パターンと呼んでいた）と呼ぶ．

4.

提案機能

微視的伝播点 c1,...,cn で構成される微視的正解経路と微視的伝播点 a1,...,am で構成される微視的答案経路の要素を先頭から順に比較（nid 同士，op 同士，Proc 操作ではプロセス名同士を比較）していき，初めて ci≠ai となるとき（ただし，1＜i，i≦m，i≦n），誤り潜在範囲は表 2 に示す通りとなる．
先述の tcpdump 等による手法では，ノードがネットワークから通信データを受け取る時点がChkDMac，L1Rtng，L2Rtng にあたる．この時点で正解と答案で差異が初めて判明するとき，誤りの潜在範囲は表 2 の Transmit の項である．また，ネットワークへ通信データを送り出す時点が Transmit にあたる．この時点で正解と答案で差異が初めて判明する
とき，誤りの潜在範囲は表 2 の Transmit 以外の項である．以上により，提案法は誤りの潜在範囲を従来法より絞り込んでいることがわかる．
表 2 誤り潜在範囲
i-1 番目の操作
L3RtngDMac
L2RtngTransmit

ChkDMac

ChkDIPProc

図 2 操作実行の順序と条件
3.2 伝播経路
あるデータを送信元から宛先に向けて送信するとき，このデータをペイロードとする通信データが滞在したノードの識別子 nid を滞在順に並べたものと，範囲
ノード ai-1.nid の経路制御表
ノード ai-1.nid の ARP 表，経路制御表，ブロードキャス
トドメインに属するデバイスの IP アドレス
ノード ai-1.nid のブロードキャストドメインに属するデバ
イスの MAC アドレス
dn を出力した操作が L3Rtng であれば，その引数となった経路制御表．dn を出力した操作が L2Rtng であれば，ノード ai-1.nid に接続するケーブル，ノード ai-1.nid の直前に滞在したノードの ARP 表，経路制御表，ブロードキャストドメインにあるデバイスの IP アドレス
ノード ai-1.nid の直前に滞在したノードの ARP 表，経路制御表，ブロードキャストドメインにあるデバイスの IP
アドレス，ノード ai-1.nid の受信デバイスの MAC アドレス，ケーブル接続
ノード ai-1.nid の保持する IP アドレス
ノード ai-1.nid の稼働プロセス

謝辞：本研究は JSPS 科研費 23500084 および25750082，公益財団法人立松財団の助成による．
参考文献(1) 立岩佑一郎, 高橋直久:“初学者向けネットワーク構築演習のためのヒント生成ステム”, 信学技法, Vol.114,
No.305, pp.43-48 （2014）― 258 ―