프로토콜 테스트 튜토리얼 (레벨 2 및 3)
⚡ 스마트 요약
프로토콜 테스트는 네트워킹 장치가 L2 및 L3 프로토콜을 통해 데이터를 교환하는 방식을 검증합니다. 스위치, 라우터, VoIP 장비 및 무선 장비 등 다양한 공급업체에서 사용하는 장비의 패킷 구조, 적합성, 성능 및 상호 운용성을 검증합니다. Cisco주니퍼와 알카텔.

프로토콜 테스트에 대해 알아보기 전에, 먼저 프로토콜 테스트의 기본 원리를 이해해 봅시다.
프로토콜이란 무엇인가?
컴퓨터들이 서로 통신할 때, 각 컴퓨터가 따라야 하는 공통된 규칙과 조건들이 있습니다. 다시 말해, 프로토콜은 데이터가 어떻게 전달되고 전송되는지를 결정합니다. transmit컴퓨팅 장치 간 및 네트워크를 통한 트래픽 교환을 위한 공통 규칙이 필요합니다. 이러한 공통 규칙이 없으면 서로 다른 제조사의 장치들이 안정적으로 트래픽을 교환할 수 없습니다.
프로토콜 테스트란 무엇인가요?
프로토콜 테스트 프로토콜 테스트는 스위칭, 무선, VoIP, 라우팅 및 유사한 네트워킹 영역에서 통신 프로토콜을 검사하는 방법입니다. 프로토콜 테스트의 주요 목표는 전용 프로토콜 테스트 도구를 사용하여 네트워크를 통해 전송되는 패킷의 구조를 확인하는 것입니다. 테스트에는 라우터와 스위치가 사용되며, 이는 테스트 대상 장치 및 제품의 구성 요소입니다.
이제 실천 방법을 정의했으니, 이 방법이 생산 네트워크에서 왜 중요한지 살펴보겠습니다.
프로토콜 테스트가 중요한 이유
현대 네트워크는 VoIP 통화, 금융 거래, 스트리밍 비디오와 같은 핵심 업무 부하를 처리합니다. 단 하나의 프로토콜 버그라도 벤더 간 상호 운용성을 저해하거나, 패킷 손실을 초래하거나, 보안 취약점을 노출시킬 수 있습니다. 프로토콜 테스트는 각 프로토콜 구현이 사양을 충족하고, 부하에 따라 확장 가능하며, 장애 발생 시 예측 가능한 동작을 보이는지 검증함으로써 품질을 보장합니다.
동기가 명확해졌으니, 다음 질문은 실제 네트워크에서 프로토콜이 어떻게 분류되는가 하는 것입니다.
라우팅 및 라우팅 프로토콜
프로토콜은 두 가지 범주로 분류됩니다. 라우팅된 프로토콜 라우팅 프로토콜.
- 라우팅 프로토콜: 라우팅 프로토콜은 사용자 데이터를 한 네트워크에서 다른 네트워크로 전송하는 데 사용됩니다. 이러한 프로토콜은 이메일, 웹 트래픽, 파일 전송과 같은 사용자 트래픽을 전달합니다. 라우팅 프로토콜의 예로는 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): L3 계층은 네트워크에서 통신을 위한 최적의 경로를 결정합니다. IP 주소는 L3 계층의 한 예입니다.
프로토콜 테스트를 수행하는 방법
- 프로토콜 테스트를 위해서는 다음이 필요합니다. 프로토콜 분석기 및 시뮬레이터.
- 프로토콜 분석기는 통화 및 세션 분석과 함께 올바른 디코딩을 보장합니다. 시뮬레이터는 네트워킹 요소의 다양한 구성 요소를 시뮬레이션합니다.
- 일반적으로 프로토콜 테스트는 대상 프로토콜이 구성된 스위치 및 라우터와 같은 다른 장치에 연결된 DUT(테스트 대상 장치)를 사용하여 수행됩니다.
- 그 후, 테스터는 장치들이 전송한 패킷의 패킷 구조를 확인합니다.
- 이 도구는 IxNetwork와 같은 도구를 사용하여 장치의 확장성, 성능 및 프로토콜 알고리즘 동작을 확인합니다. Scapy예산 및 Wireshark.
프로토콜 테스트의 테스트 유형
프로토콜 테스트는 기능, 성능, 프로토콜 스택, 상호 운용성 등을 테스트하는 것을 포함합니다. 프로토콜 테스트 중에는 세 가지 기본 검사가 수행됩니다.
- 단정: 우리는 예상한 시점에 패킷 X를 수신했습니까?
- 대기 시간 : 패킷이 시스템을 통과하는 데 얼마나 걸립니까?
- 대역폭 : 초당 몇 개의 패킷을 보낼 수 있습니까?
프로토콜 테스트는 크게 스트레스 및 신뢰성 테스트와 기능 테스트의 두 가지 범주로 나눌 수 있습니다. 스트레스 및 신뢰성 테스트는 다음과 같은 내용을 포함합니다. 부하 테스트, 스트레스 테스트예산 및 성능 시험. 기능 테스트 부정 검증, 적합성 검증 및 상호 운용성 검증이 포함됩니다.
- 적합성 테스트: 제품에 구현된 프로토콜은 IEEE와 같은 표준을 준수하는지 테스트됩니다. RFC.
- 상호 운용성 테스트: 서로 다른 공급업체 간의 상호 운용성을 테스트합니다. 이 테스트는 해당 플랫폼에서 적합성 테스트가 완료된 후에 진행됩니다.
- 네트워크 기능 테스트: 네트워킹 제품의 기능은 설계 문서를 참조하여 기능성을 테스트합니다. 예를 들어, 스위치의 포트 보안이나 라우터의 ACL(접근 제어 목록) 등이 기능에 해당합니다.
네트워크 장치의 프로토콜 테스트를 위한 샘플 테스트 사례
다음은 라우터 및 스위치에 대한 테스트 케이스 예시입니다.
| 테스트 이름 | 테스트 케이스 |
|---|---|
| 하나의 스위치에 하나의 VLAN | 서로 다른 VLAN 두 개를 구축하고, 서로 다른 VLAN에 있는 호스트 간의 가시성을 확인합니다. |
| 하나의 스위치에 3개의 대칭형 VLAN 구성 | 서로 다른 비대칭 VLAN 세 개를 생성하고 호스트 간 가시성을 확인합니다. |
| 스패닝 트리: 루트 경로 비용 변동 | 토폴로지 변경 후 루트 경로 비용이 어떻게 변하는지 테스트합니다. |
| 스패닝 트리: 포트 차단 | 스패닝 트리 프로토콜이 네트워크에서 사이클 형성을 방지하고 중복 링크를 차단하는 방식을 살펴보십시오. VLAN 도. |
| 다른 MSTI에 대한 다른 루트 브리지 | 각 MSTI가 서로 다른 루트 브리지를 가질 수 있음을 보이시오. |
| 서로 다른 STP 지역 간의 가시성 | 동일한 VLAN을 사용하여 서로 다른 STP 영역 간의 가시성을 확인합니다. |
| 전화 교환기 성능 | 1000건의 전화 통화를 발생시키고 전화 교환기가 여전히 작동하는지 또는 성능이 저하되는지 확인하십시오. |
| 기기 테스트 결과 음성 | 잘못된 키를 입력하고 인증을 확인하십시오. 해당 사용자는 접근이 허용되지 않아야 합니다. |
| 라인 속도 | 장치가 10Gbps 속도로 작동하여 사용 가능한 모든 대역폭을 활용해 수신 트래픽을 처리하는지 확인하십시오. |
| 프로토콜 전환율 | Trac두 장치 간의 TCP 통신을 확인하고 각 장치가 올바르게 작동하는지 검증합니다. |
| 세션 시작 응답 시간 | 세션 시작을 위한 초대 요청에 대한 장치의 응답 시간을 측정합니다. |
프로토콜 테스트 도구
프로토콜 검증에 사용되는 가장 중요한 테스트 도구에 대해 논의해 보겠습니다.
1) Scapy 패킷 제작용
Scapy 이 프로그램은 강력한 대화형 패킷 조작 프로그램입니다. 이 프로그램을 사용하면 다음과 같은 작업을 수행할 수 있습니다.
- 패킷 생성
- 네트워크의 패킷 디코딩
- 패킷 캡처 및 분석
- 네트워크에 패킷 삽입
그러니까, 기본적으로는, Scapy 주로 두 가지 일을 합니다. 응답 수신 및 패킷 전송패킷을 정의하면, 프로그램이 패킷을 전송하고, 응답을 수신하고, 요청과 응답을 매칭한 후, 매칭된 패킷 쌍 목록과 매칭되지 않은 패킷 목록을 반환합니다.
이 외에도 다음과 같은 다른 작업들을 처리할 수 있습니다. 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 또한 패킷을 동시에 송수신하기 위한 다양한 명령어를 가지고 있습니다.
2) Wireshark 분석을 위해
Wireshark 프로토콜 테스트 분석에 사용되는 대표적인 도구입니다. 실시간으로 패킷을 캡처하여 사람이 읽기 쉬운 형태로 표시할 수 있습니다. 색상 코드와 필터를 사용하여 네트워크 트래픽을 심층적으로 분석하고 개별 패킷을 검사할 수 있습니다.
Wireshark 세션이 설정되는 시점, 정확한 데이터 전송이 시작된 시점, 그리고 매번 전송되는 데이터 양을 파악하는 데 도움이 되는 패킷을 캡처합니다.
Wireshark 다음과 같은 풍부한 기능을 갖추고 있습니다:
- 수백 개의 프로토콜에 대한 철저한 검토가 진행 중이며, 새로운 프로토콜이 지속적으로 추가되고 있습니다.
- 라이브 캡처 및 오프라인 분석
- 풍부한 VoIP 분석
- 표준 3개 창 패킷 브라우저
- 다양한 플랫폼에서 실행됩니다. Windows, 리눅스 및 macOS
- 캡처된 네트워크 데이터는 GUI를 통해 찾아볼 수 있습니다.
- IPsec, ISAKMP, SSL/TLS 등 다양한 프로토콜에 대한 복호화 지원
- 이더넷, ATM, 블루투스, USB 및 토큰링에서 실시간 데이터를 읽을 수 있습니다.
- 출력 결과는 CSV, XML 및 일반 텍스트 형식으로 내보낼 수 있습니다.
3) TTCN
TTCN은 정의를 위한 표준 테스트 언어입니다. 테스트 시나리오 그리고 프로토콜 테스트를 위한 구현 방식입니다. TTCN 테스트 스위트는 TTCN 프로그래밍 언어로 작성된 여러 테스트 케이스를 포함하며, 다음과 같은 용도로 사용됩니다. 반응형 시스템 테스트 또는 행동 테스트.
예를 들어, 1달러짜리 동전을 넣으면 커피가 나오고, 1달러 미만의 동전을 넣으면 작동하지 않는 커피 자판기를 생각해 보세요. 이러한 자판기를 프로그래밍하려면 TTCN-3를 사용합니다. 동전 투입 시 커피 자판기가 작동하도록 하려면, 커피 자판기처럼 동작하는 TTCN-3 컴포넌트를 작성해야 합니다. 이렇게 하면 실제 커피 자판기가 제품으로 출시되기 전에 테스트를 실행할 수 있습니다. 테스트가 완료되면 TTCN-3 테스트 스위트를 외부 장치에 연결할 수 있습니다.
테스트 시스템은 자극(1달러 동전)을 내보내고 응답(커피)을 수신합니다. 자극 어댑터는 테스트 시스템으로부터 자극을 받아 피테스트 시스템으로 전달합니다. 응답 어댑터는 피테스트 시스템의 응답을 기다렸다가 테스트 시스템으로 전달합니다.
TTCN-3는 다음과 같은 다양한 분야에서 사용될 수 있습니다:
- 이동통신(LTE, WiMAX, 3G)
- 광대역 기술(ATM, DSL)
- 미들웨어 플랫폼(웹 서비스, CORBA)
- 인터넷 프로토콜(SIP, IMS, IPv6)
- 스마트 카드
- 자동차(AutoSAR, MOST, CAN)
TTCN에서는 다음을 정의할 수 있습니다.
- 테스트 스위트
- 테스트 케이스
- 테스트 단계
- 선언된 변수
- 선언된 타이머
- PDU 등
TTCN은 ASN.1과 같은 다른 언어로 작성된 시스템과 통합될 수 있습니다. XML그리고 C/C++TTCN-3 핵심 언어는 텍스트 형식 외에도 표, 그래프 및 프레젠테이션 형식으로 제공됩니다.
실제 프로토콜 테스트 적용 방법
실제 프로젝트에 이러한 기술을 적용하려면 프로토콜 범위(L2, L3 또는 그 이상)를 정의하고, 시뮬레이터와 분석기가 연결된 DUT를 설정하고, RFC 또는 IEEE 사양을 참조하여 적합성 및 부정 테스트 케이스를 작성한 다음, 스트레스 테스트, 상호 운용성 테스트 및 AI 기반 이상 탐지 테스트를 실행하십시오. 결과를 캡처하십시오. Wireshark 패킷 동작이 표준과 일치할 때까지 반복합니다.

