プロトコルテストチュートリアル(レベル2およびレベル3)

⚡ スマートサマリー

プロトコル テストは、ネットワーク デバイスが L2 および L3 プロトコルを介してデータを交換する方法を検証します。スイッチ、ルーター、VoIP 機器、およびベンダーが使用するワイヤレス ギアのパケット構造、適合性、パフォーマンス、および相互運用性を検証します。 Ciscoジュニパー、そしてアルカテル。

  • 🌐 範囲: プロトコルテストでは、OSIスタック全体にわたるスイッチング、ワイヤレス、VoIP、ルーティングプロトコルを対象とし、L2およびL3の動作に重点を置きます。
  • 🔌 L2 vs L3: レイヤ2はMAC、イーサネット、フレームリレーを処理し、レイヤ3はIP、OSPF、EIGRPなどのルーティングプロトコルを通じて最適な経路を選択します。
  • 🛠️ ツールチェーン: エンジニアは頼りにしている Wireshark ライブキャプチャの場合、 Scapy パケット作成にはTTCN-3、テスト対象デバイスに対する動作テストスイートにはTTCN-3が使用される。
  • チェックの種類: 適合性、相互運用性、機能、ストレス、負荷、および性能テストにより、正確性、遅延、および帯域幅のしきい値が確認されます。
  • 🧪 AIの視点: 最新のラボでは、AIモデルを用いてトラフィックの異常を検出し、プロトコルの障害を予測し、回帰テストのサイクルを短縮するためにネガティブテストケースを自動生成している。

プロトコルのテスト

プロトコルテストについて学ぶ前に、その基礎となる概念を理解しておきましょう。

プロトコルとは何ですか?

コンピュータ同士が通信する際には、各コンピュータが従わなければならない共通のルールと条件があります。言い換えれば、プロトコルはデータのやり取りの方法を決定します。 transmitコンピューティングデバイス間およびネットワーク上での通信。これらの共通ルールがなければ、異なるベンダーのデバイスは信頼性の高い通信を行うことができない。

プロトコルテストとは何ですか?

プロトコルのテスト プロトコルテストは、スイッチング、ワイヤレス、VoIP、ルーティングなどのネットワーク分野における通信プロトコルを検証する方法です。プロトコルテストの主な目的は、専用のプロトコルテストツールを使用して、ネットワーク上で送信されるパケットの構造を検証することです。テスト中は、ルーターやスイッチがテスト対象のデバイスや製品の一部として使用されます。

さて、実践方法を定義したところで、なぜこの規律が生産ネットワークにおいて重要なのかを検証してみましょう。

プロトコルテストが重要な理由

現代のネットワークは、VoIP通話、金融取引、ストリーミングビデオといったミッションクリティカルなワークロードを処理しています。プロトコルのバグが1つでも発生すると、ベンダー間の相互運用性が損なわれたり、パケットがドロップされたり、セキュリティ上の脆弱性が露呈したりする可能性があります。プロトコルテストは、各プロトコルの実装が仕様に準拠し、負荷に応じて拡張可能であり、障害発生時に予測可能な動作をすることを検証することで、品質を保証します。

動機が明確になったところで、次の疑問は、実際のネットワークにおいてプロトコルがどのように分類されるかということである。

ルーティングおよびルーティング プロトコル

プロトコルは2つのカテゴリーに分類されます。 ルーティングされたプロトコル (NAIST) と ルーティングプロトコル.

  • ルーティングプロトコル: ルーティングプロトコルは、ユーザーデータをあるネットワークから別のネットワークに送信するために使用されます。電子メール、ウェブトラフィック、ファイル転送などのユーザー通信を伝送します。ルーティングプロトコルの例としては、IP、IPX、AppleTalkなどがあります。
  • ルーティングプロトコル: ルーティングプロトコルは、ルーター間の経路を決定するネットワークプロトコルです。これらはルーター間でのみ使用されます。例としては、RIP、IGRP、EIGRPなどがあります。

簡単に言えば、 ルーターは交通手段として使われるバスのようなもので、ルーティングプロトコルは道路上の信号のようなものです。

通信の種類に応じて、異なるプロトコルが使用されます。 CiscoJuniperや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層(L2)と第3層(L3)はプロトコルテストにおいて非常に重要です。

  • レイヤー2(L2): これはデータリンク層です。MACアドレス、イーサネット、トークンリング、フレームリレーはすべてデータリンク層の例です。
  • レイヤー3(L3): ネットワーク層は、ネットワーク内で通信に最適な経路を決定する役割を担います。IPアドレスはL3の一例です。

プロトコルテストの方法

  • プロトコルテストには、 プロトコルアナライザとシミュレータ.
  • プロトコルアナライザは、適切なデコードに加え、通話およびセッションの分析を保証します。シミュレータは、ネットワーク要素の様々なエンティティをシミュレートします。
  • 通常、プロトコルテストは、スイッチやルーターなどの他のデバイスに接続されたDUT(テスト対象デバイス)によって実行され、そのDUTにはターゲットプロトコルが設定されます。
  • その後、テスターはデバイスから送信されたパケットのパケット構造をチェックする。
  • IxNetworkなどのツールを使用して、デバイスのスケーラビリティ、パフォーマンス、プロトコルアルゴリズムの動作をチェックします。 Scapy, Wireshark.

プロトコルテストのテストタイプ

プロトコルテストには、機能性、パフォーマンス、プロトコルスタック、相互運用性などのテストが含まれます。プロトコルテストでは、3つの基本的なチェックが行われます。

  • 正しさ: パケットXは、期待どおりに受信されますか?
  • レイテンシ: パケットがシステムを通過するのにどれくらい時間がかかりますか?
  • 帯域幅: 1秒間に何個のパケットを送信できますか?

プロトコルテストは、大きく分けて2つのカテゴリに分類できます。ストレスおよび信頼性テストと機能テストです。ストレスおよび信頼性テストでは、 負荷テスト, ストレステスト, 性能試験. 機能テスト これには、ネガティブテスト、適合性テスト、相互運用性テストが含まれます。

  • 適合性テスト: 製品に実装されているプロトコルは、IEEEなどの規格への準拠についてテストされています。 RFC.
  • 相互運用性テスト: 異なるベンダー間の相互運用性がテストされます。このテストは、適切なプラットフォームでの適合性テストが完了した後に行われます。
  • ネットワーク機能テスト: ネットワーク製品の機能は、設計書を参照して動作テストが行​​われます。例えば、スイッチのポートセキュリティやルーターのACLなどが挙げられます。

ネットワークデバイスのプロトコルテストのサンプルテストケース

以下は、ルーターとスイッチのテストケースのサンプルです。

テスト名 テストケース
XNUMX つのスイッチに XNUMX つの VLAN 2つの異なるVLANを作成します。異なるVLAN上のホスト間の可視性を確認します。
1台のスイッチで3つの対称VLANを実現 3つの異なる非対称VLANを作成します。ホスト間の可視性を確認します。
スパニング ツリー: ルート パスのコストの変動 トポロジーの変更後にルートパスのコストがどのように変化するかをテストします。
スパニングツリー: ポートブロッキング スパニングツリープロトコルがネットワーク内でのサイクルの形成を回避し、冗長なリンクをブロックし、 VLAN のためにペンを持つ時間も見つけています。
異なる MSTI には異なるルート ブリッジ 各MSTIが異なるルートブリッジを持つことができることを示す。
異なるSTP領域間の可視性 同じVLANを使用して、異なるSTPリージョン間の可視性を確認します。
電話交換機の性能 1000回の電話発信を行い、電話交換機が正常に動作するか、あるいは性能が低下するかを確認してください。
デバイスの検査結果は陰性でした。 誤ったキーを入力して認証を確認してください。このユーザーにはアクセス権限が付与されるべきではありません。
ラインスピード デバイスが10Gbpsの速度で動作し、受信トラフィックを処理するために利用可能な帯域幅をすべて活用していることを確認してください。
プロトコル会話率 Trac2つのデバイス間でTCP通信を行い、各デバイスが正しく動作することを確認します。
セッション開始時の応答時間 セッション開始のための招待リクエストに対するデバイスの応答時間を測定します。

プロトコルテスト用のツール

プロトコルの検証に使用される最も重要なテストツールについて説明しましょう。

1) Scapy パケット作成用

Scapy は、強力な対話型パケット操作プログラムです。以下のことが可能です。

  • パケットの作成
  • ネットワーク上のパケットをデコードする
  • パケットをキャプチャして分析する
  • ネットワークにパケットを注入する

つまり、 Scapy 主に2つのことを行います。 応答の受信とパケットの送信パケットを定義すると、それを送信し、応答を受信し、要求と応答を照合し、パケットのペアのリストと一致しないパケットのリストを返します。

また、次のような他のタスクも処理できます。 traceルーティング、単体テスト、攻撃、ネットワーク検出、開発ping 新しいプロトコルとプロービング。

Scapy 書くことを可能にする Python パケットの送信、受信、またはスニッフィングなどのタスクを実行できるスクリプト。たとえば、 Scapy 短いデータパケットを使用して傍受できます Python スクリプト。エディタを開くコマンドは以下のとおりです。

#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
# ./scapysniff.py

10個のパケットを傍受し、10個のパケットを傍受し終えるとすぐに概要を出力します。 Scapy また、パケットの送受信を同時に行うためのコマンドも多数備えています。

ダウンロード Scapy

2) Wireshark 分析用

Wireshark は、プロトコルテスト分析に用いられる主要なツールです。リアルタイムでパケットをキャプチャし、人間が読みやすい形式で表示できます。カラーコードやフィルターを使用して、ネットワークトラフィックを詳細に分析し、個々のパケットを検査できます。

Wireshark セッションが確立されたタイミング、正確なデータ転送が開始されたタイミング、および毎回送信されるデータ量を判断するのに役立つパケットをキャプチャします。

Wireshark 豊富な機能セットを備えています。

  • 数百ものプロトコルを徹底的に検査し、さらに随時追加していく。
  • ライブキャプチャとオフライン分析
  • 豊富な VoIP 分析
  • 標準的な3ペインパケットブラウザ
  • 複数のプラットフォームで動作します。 Windows、Linux、および macOS
  • キャプチャしたネットワークデータをGUIで閲覧可能
  • IPsec、ISAKMP、SSL/TLSなど、多くのプロトコルの復号化をサポート
  • イーサネット、ATM、Bluetooth、USB、トークンリングからライブデータを読み取ることができます。
  • 出力はCSV、XML、プレーンテキスト形式でエクスポートできます。

ダウンロード Wireshark

3) TTCN

TTCNは、定義するための標準的なテスト言語です。 テストシナリオ プロトコル テストのための実装。TTCN テスト スイートには、TTCN プログラミング言語で記述された多数のテスト ケースが含まれており、 反応システムのテストまたは行動テスト.

例えば、1ドル硬貨を入れるとコーヒーが出てくるが、1ドル未満の硬貨を入れると反応しないコーヒー自動販売機を考えてみましょう。このような機械をプログラミングするには、TTCN-3を使用します。硬貨が投入されたときにコーヒー自動販売機が反応するようにするには、コーヒー自動販売機のように動作するTTCN-3コンポーネントを作成します。これにより、実際のコーヒー自動販売機が製品として発売される前にテストを実行できます。テストが完了したら、TTCN-3テストスイートを外部デバイスに接続できます。

TTCN

テストシステムは刺激(1ドル硬貨)を発信し、応答(コーヒー)を受け取ります。刺激アダプタはテストシステムから刺激を受け取り、被試験システムに渡します。応答アダプタは被試験システムの応答を待ち、テストシステムに渡します。

TTCN-3は、以下のような様々な分野で使用できます。

  • モバイル通信(LTE、WiMAX、3G)
  • ブロードバンド技術 (ATM、DSL)
  • ミドルウェアプラットフォーム(Webサービス、CORBA)
  • インターネットプロトコル(SIP、IMS、IPv6)
  • スマートカード
  • 自動車 (AutoSAR、MOST、CAN)

TTCNでは、以下を定義できます。

  • テストスイート
  • テストケース
  • テスト手順
  • 宣言された変数
  • 宣言されたタイマー
  • PDU、その他

TTCN は、ASN.1 などの他の言語で書かれたシステムと統合できます。 XML、およびC/C++TTCN-3の中核言語は、テキスト形式に加え、表形式、図形式、プレゼンテーション形式でも利用可能です。

プロトコルテストを実際に適用する方法

これらの技術を実際のプロジェクトに適用するには、プロトコル範囲(L2、L3、またはそれ以上)を定義し、シミュレータとアナライザを配線したDUTをセットアップし、RFCまたはIEEE仕様を参照した適合性テストケースとネガティブテストケースを作成し、ストレステスト、相互運用性テスト、およびAI支援による異常チェックを実行します。結果をキャプチャします。 Wireshark パケットの動作が標準規格に一致するまで、これを繰り返す。

よくあるご質問

プロトコルテストでは、スイッチ、ルーター、および類似のデバイス上の通信プロトコルが、スイッチング、ルーティング、VoIP、およびワイヤレスの各ドメインにおいて、整形式のパケットを送信し、標準規格に従って動作することを確認します。

L2テストはMAC、イーサネット、フレームリレーなどのデータリンク層に焦点を当て、L3テストはネットワーク間の最適な経路を選択するIP、OSPF、EIGRPなどのネットワーク層ルーティングプロトコルを検証します。

Wireshark ライブキャプチャとデコードのため、 Scapy パケット作成にはIxNetwork、トラフィック生成にはIxNetwork、動作テストスイートにはTTCN-3が、ネットワークテストエンジニアが使用する標準的なツールです。

適合性テストは、プロトコルの実装がIEEE規格やIETF RFCなどの仕様に厳密に準拠していることを検証し、異なるベンダーのデバイスが同じネットワーク上で予測可能な相互運用性を実現することを目的としています。

AIモデルは、ベースラインとなるパケットパターンを学習し、ネガティブテストケースを生成し、ルーティング変更における回帰リスクを予測し、失敗するシナリオを自動的に優先順位付けすることで、テストエンジニアがより少ない時間でより多くのプロトコルパスを網羅できるようにします。

はい。機械学習分類器は Wireshark またはNetFlowキャプチャは、学習済みのベースラインと比較して、異常な遅延、ジッター、またはパケット形状を検出し、本番ネットワークで障害が発生する前にプロトコルの不正動作を明らかにします。