プロトコル テストのチュートリアル: L2 & L3
プロトコル テストについて学ぶ前に、次のことを理解しましょう。
プロトコルとは何ですか?
コンピュータが相互に通信する場合、各コンピュータが従わなければならない共通のルールと条件が存在します。 言い換えれば、プロトコルは、コンピューティング デバイス間およびネットワーク上でデータがどのように送信されるかを決定します。
プロトコルのテスト
プロトコルのテスト は、スイッチング、ワイヤレス、VoIP、ルーティングなどのドメインの通信プロトコルをチェックする方法です。プロトコル テストの主な目的は、プロトコル テスト ツールを使用してネットワーク上に送信されるパケットの構造をチェックすることです。 ルーターとスイッチは、テスト中にデバイスやテスト対象製品の一部を形成するために使用されます。
ルーティングおよびルーティング プロトコル
プロトコルは XNUMX つのカテゴリに分類されます ルーティングされたプロトコル ルーティングプロトコル
- ルーティングされたプロトコル: ルーティング プロトコルは、ユーザー データを 1 つのネットワークから別のネットワークに送信するために使用できます。電子メール、Web トラフィック、ファイル転送などのユーザー トラフィックを伝送します。ルーティング プロトコルには、IP、IPX、および AppleTalk があります。
- ルーティングプロトコル: ルーティング プロトコルは、ルーターのルートを決定するネットワーク プロトコルです。 ルーター間でのみ使用されます。 たとえば、RIP、IGRP、EIGRP などです。
簡単に言えば、 ルータは交通機関に使用されるバスのようなものですが、ルーティング プロトコルは道路上の信号です。
通信の種類に応じて、異なるプロトコルが使用されます。CISCO、JUNIPER、ALCATELなどの企業は、通信に異なるプロトコルを使用するルーター、モデム、ワイヤレスアクセスポイントなどのネットワークデバイスを製造しています。たとえば、 Cisco EIGRP、OSPF などを使用します。プロトコル テストは、EIGRP (Enhanced Interior Gateway Routing Protocol)、OSPF (Open Shortest Path First)、またはその他のプロトコルがそれぞれの規格に従って動作しているかどうかをチェックすることに他なりません。
コンピュータプロトコルの種類
プロトコルの種類 | プロトコルの目的 |
---|---|
TCP / IP | インターネット上で小さなパケットで情報を送信するために使用されます |
UDP/ICMP | 少量の情報をデータパケットでインターネット上に送信するために使用されます。 |
POP3 と SMTP | メールの送受信に使用されます |
ハイパーテキスト転送プロトコル | 機密データにセキュリティを提供するために、HTML ページを暗号化された形式で転送するために使用されます。 |
FTP | ネットワークを介してあるノードから別のノードにファイルを転送するために使用されます。 |
* TCP / IP– Transmission 制御プロトコル/インターネットプロトコル、 UDP / ICMP– ユーザー データグラム プロトコル/インターネット コントロール メッセージ プロトコル、 POP3 / SMTP– 郵便局プロトコル / シンプル Mail 転送プロトコル、 HTTP- ハイパーテキスト転送プロトコル、 FTP– ファイル転送プロトコル
さまざまなタイプのネットワークプロトコル (L2 および L3)
OSI モデルには合計 7 層のネットワーク通信があり、その中で層 2 と層 3 が非常に重要です。
- 層2:データリンク層です。 Mac アドレス、イーサネット、トークン リング、およびフレーム リレーはすべてデータ リンク層の例です。
- 層3: これは、ネットワーク内で通信に使用できる最適なパスを決定するネットワーク層です。 IP アドレスはレイヤ 3 の一例です。
プロトコルテストの方法
- プロトコルのテストには、次のものが必要です プロトコルアナライザーとシミュレーター
- プロトコル アナライザーは、通話とセッションの分析とともに適切なデコードを保証します。 シミュレーターはネットワーク要素のさまざまなエンティティをシミュレートします。
- 通常、プロトコルテストは、スイッチやルータなどの他のデバイスに対するDUT(被試験デバイス)によって実行され、その中でプロトコルを設定します。
- その後、デバイスによって送信されたパケットのパケット構造を確認します。
- lxNetworks などのツールを使用して、デバイスのスケーラビリティ、パフォーマンス、プロトコル アルゴリズムなどをチェックします。 Scapy Wireshark
プロトコルテストのテストタイプ
プロトコル テストには、機能、パフォーマンス、プロトコル スタック、相互運用性などのテストが含まれます。プロトコル テストでは、基本的に 3 つのチェックが行われます。
- 正しさ: 期待したときにパケット X を受信しましたか?
- レイテンシ: パケットがシステムを通過するのにかかる時間
- 帯域幅: XNUMX秒間に送信できるパケット数
プロトコルのテストは XNUMX つのカテゴリに分類できます。 ストレスおよび信頼性テストと機能テスト。 ストレスおよび信頼性テストの対象範囲 負荷テスト, ストレステスト, 性能試験、など。 機能テスト ネガティブテスト、適合性テスト、相互運用性テストなどが含まれます。
- 適合性テスト: 製品に実装されているプロトコルは、IEEE と同様に準拠性がテストされています。 RFC 等々
- 相互運用性テスト: 異なるベンダー間の相互運用性がテストされます。このテストは、適切なプラットフォームで適合性テストを行った後に行われます。
- ネットワーク機能のテスト: ネットワーク製品の機能は、設計ドキュメントを参照して機能テストされます。 たとえば、スイッチ上のポート セキュリティ、ルーター上の ACL などの機能が考えられます。
ネットワークデバイスのプロトコルテストのサンプルテストケース
ルーターのサンプル テスト ケースは次のとおりです。
テスト名 | テストケース |
---|---|
XNUMX つのスイッチに XNUMX つの VLAN | XNUMX つの異なる VLAN を構築します。 異なる VLAN 上のホスト間の可視性を確認する |
XNUMX つのスイッチ上の XNUMX つの対称 VLAN | XNUMX つの異なる非対称 VLAN を作成します。 ホスト間の可視性を確認する |
スパニング ツリー: ルート パスのコストの変動 | トポロジの変化後にルート パス コストがどのように変化するかをテストする |
スパニングツリー: ポートブロッキング | スパニング ツリー プロトコルが、ネットワーク内でのサイクルの形成を回避し、冗長リンクをブロックする方法を確認します。 VLAN あまりに |
異なる MSTI には異なるルート ブリッジ | 各 MSTI が異なるルート ブリッジを持つことができることを示す |
異なる STP リージョン間の可視性 | 同じ VLAN を使用して、異なる STP リージョン間の可視性を確認します |
電話交換機の性能 | 1000回の電話通話を生成し、電話交換機がまだ動作するか、パフォーマンスが低下するかを確認します。 |
デバイスのテスト結果が陰性 | 間違ったキーを入力し、ユーザーの認証を確認してください。 ユーザーにアクセスを許可してはなりません |
ライン速度 | 利用可能な帯域幅をすべて利用して着信トラフィックを処理し、10Gbpsの速度で動作するデバイスを確認します。 |
プロトコル会話速度 | XNUMX つのデバイス間の TCP 会話を追跡し、各デバイスが正しい動作を行っているかどうかを確認します。 |
セッション開始の応答時間 | セッション開始の招待リクエストに対するデバイスの応答時間を測定する |
プロトコルテスト用のツール
プロトコルを検証するために使用される最も重要なテスト ツールについて説明しましょう
1) Scapy パケットクラフト用
Scapy は強力な対話型パケット操作プログラムです。それにより、次のことが可能になります
- パケットの作成
- ネットワーク上のパケットをデコードする
- パケットをキャプチャして分析する
- ネットワークにパケットを注入する
つまり、基本的に scapy は主に次の 2 つのことを行います。 応答の受信とパケットの送信。 パケットを定義すると、パケットが送信され、応答が受信され、要求と応答が照合され、パケット カップルのリストと一致しないパケットのリストが返されます。
また、トレース ルーティング、単体テスト、攻撃またはネットワーク検出、新しいプロトコルの開発、調査など、他のことも処理できます。
Scapy を書くことができます Python パケットの送受信やパケットのスニッフィングなどのタスクを実行できるスクリプト。たとえば、scapyは、 Python スクリプト。エディタに入力されたgetditを開くコマンド
#gedit scapysniff.py #!/usr/bin/env python from scapy.all import* a= sniff(count=10) a.nsummary() save, and change the mode of the file into an executable form #chmod+x scapysniff.py # ./scaotsbuff.py
10 個のパケットを嗅ぎ取り、10 個のパケットを嗅ぎ終えるとすぐに概要を出力します。 Scapy 同時にパケットを送信および受信するためのコマンドの配列としても機能します
2) Wireshark 分析用ツール
プロトコルテストに使用されるツール - Wiresharkリアルタイムでパケットをキャプチャし、人間が読める形式で表示できます。ネットワーク トラフィックを詳細に調査し、色分けとフィルターを使用して個々のパケットを検査できます。
Wireshark セッションがいつ確立されるか、正確なデータ移動がいつ開始されるか、毎回送信されるデータの量などを判断するのに役立つパケットをキャプチャします。
Wireshark には次のような一連の豊富な機能があります
- 何百ものプロトコルを徹底的に検査し、常に追加されています
- ライブキャプチャとオフライン分析
- 豊富な VoIP 分析
- 標準的な XNUMX ペインのパックされたブラウザ
- 次のようなマルチプラットフォームで実行されます Windows、Linux、OSXなど
- キャプチャしたネットワークデータをGUIで閲覧可能
- 復号化は、IPsec、ISAKMP、SSL/TLS などの多くのプロトコルをサポートします
- ライブデータはイーサネット、ATM、Bluetooth、USB、トークンなどから読み取ることができます。
- 出力はCSV、XML、プレーンテキストなどにエクスポートできます。
TTCN
TCCN は、以下を定義するための標準テスト言語です。 テストシナリオ およびプロトコルテストのための実装。 TCCN テスト スイートには、TTCN プログラミング言語で記述された多くのテスト ケースが含まれており、次の目的で使用されます。 テスト リアクティブシステムまたは動作テスト.
たとえば、3ドル硬貨を入れるとコーヒーが出てくるが、3ドル未満のものを入れると反応しないコーヒー自動販売機。 このようなマシンをプログラムするには、TCCN3 言語が使用されます。 コインを挿入したときにコーヒー マシンが応答するようにするには、コーヒー マシンとして動作する TCCN-XNUMX コンポーネントを作成する必要があります。 これにより、実際のコーヒーマシンが製品として利用可能になる前にテストを実行できます。 それが完了したら、TCCNXNUMX テスト スイートを外部デバイスに接続します。
テスト システムは刺激 (XNUMX ドル硬貨) を発し、応答 (コーヒー) を受け取ります。 刺激アダプターはテスト システムから刺激を取得し、それをテスト対象システムに渡します。 応答アダプターは、テスト対象システムの応答を待機し、それらをテスト システムに渡します。
TCCN3は、以下のようなさまざまな分野で使用できます。
- モバイル通信(LTE、WiMAX、3Gなど)
- ブロードバンド技術 (ATM、DSL)
- ミドルウェア プラットフォーム (Web サービス、CORBA など)
- インターネットプロトコル (SIP、IMS、IPv6)
- スマートカード
- 自動車 (AutoSAR、MOST、CAN)
TCCN では次のように定義できます。
- テストスイート
- テストケース
- テスト手順
- 変数の宣言
- タイマーを宣言する
- PDUなどを作成します。
TCCN は、ASN.1 などの他の言語のシステムと統合できます。 XML、C/C++TCCN3 コア言語は、表形式、グラフ形式、プレゼンテーション形式などの他の形式とは別に、テキスト形式で存在します。