프로토콜 테스트 튜토리얼: L2 & L3
프로토콜 테스트에 대해 배우기 전에 다음 사항을 이해해 봅시다.
프로토콜이란 무엇입니까?
컴퓨터가 서로 통신할 때 각 컴퓨터가 따라야 하는 공통된 규칙과 조건이 있습니다. 즉, 프로토콜은 컴퓨팅 장치 간에 그리고 네트워크를 통해 데이터가 전송되는 방식을 결정합니다.
프로토콜 테스트
프로토콜 테스트 스위칭, 무선, VoIP, 라우팅 등의 영역에서 통신 프로토콜을 확인하는 방법입니다. 프로토콜 테스트의 주요 목표는 프로토콜 테스트 도구를 사용하여 네트워크를 통해 전송되는 패킷의 구조를 확인하는 것입니다. 라우터와 스위치는 테스트 중에 테스트 중인 장치 및 제품의 일부를 구성하는 데 사용됩니다.
라우팅 및 라우팅 프로토콜
프로토콜은 두 가지 범주로 분류됩니다. 라우팅된 프로토콜 그리고 라우팅 프로토콜
- 라우팅된 프로토콜: 라우팅 프로토콜은 사용자 데이터를 한 네트워크에서 다른 네트워크로 전송하는 데 사용할 수 있습니다. 이메일, 웹 트래픽, 파일 전송 등과 같은 사용자 트래픽을 전달합니다. 라우팅 프로토콜은 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(Device Under Test)에서 스위치, 라우터 등 다른 장치에 대해 수행하고 그 안에 프로토콜을 구성합니다.
- 그 후 장치에서 보낸 패킷의 패킷 구조를 확인합니다.
- lxNetworks와 같은 도구를 사용하여 장치의 확장성, 성능, 프로토콜 알고리즘 등을 확인합니다. Scapy 그리고 Wireshark
프로토콜 테스트의 테스트 유형
프로토콜 테스트에는 기능, 성능, 프로토콜 스택, 상호 운용성 등의 테스트가 포함됩니다. 프로토콜 테스트 동안 기본적으로 세 가지 검사가 수행됩니다.
- 단정: 예상했던 시간에 패킷 X를 수신합니까?
- 숨어 있음: 패킷이 시스템을 통과하는 데 걸리는 시간
- 대역폭: 초당 보낼 수 있는 패킷 수
프로토콜 테스트는 두 가지 범주로 분류될 수 있습니다. 스트레스 및 신뢰성 테스트와 기능 테스트. 스트레스 및 신뢰성 테스트는 다음과 같습니다. 부하 테스트, 스트레스 테스트, 성능 시험, 등등. 기능 테스트 부정 테스트, 적합성 테스트, 상호 운용성 테스트 등이 포함됩니다.
- 적합성 테스트: 제품에 구현된 프로토콜은 IEEE와 같은 준수 여부를 테스트합니다. RFC 등
- 상호 운용성 테스트: 다양한 공급업체의 상호 운용성을 테스트합니다. 이 테스트는 해당 플랫폼에서 적합성 테스트가 수행된 후에 수행됩니다.
- 네트워크 기능 테스트: 네트워킹 제품의 기능은 설계 문서를 참조하여 기능성을 테스트합니다. 예를 들어 스위치의 포트 보안, 라우터의 ACL 등의 기능이 있을 수 있습니다.
네트워크 장치의 프로토콜 테스트를 위한 샘플 테스트 사례
다음은 라우터에 대한 샘플 테스트 사례입니다.
테스트 이름 | 테스트 케이스 |
---|---|
하나의 스위치에 하나의 VLAN | 두 개의 서로 다른 VLAN을 구축하십시오. 서로 다른 VLAN에 있는 호스트 간의 가시성 확인 |
하나의 스위치에 XNUMX개의 대칭 VLAN | 세 가지 비대칭 VLAN을 생성합니다. 호스트 간 가시성 확인 |
스패닝 트리: 루트 경로 비용 변동 | 토폴로지 변형 후 루트 경로 비용이 어떻게 변경되는지 테스트 |
스패닝 트리: 포트 차단 | 스패닝 트리 프로토콜이 네트워크에서 사이클 형성을 방지하고 중복 링크를 차단하는 방법을 확인하세요. VLAN 너무 |
다른 MSTI에 대한 다른 루트 브리지 | 각 MSTI가 서로 다른 루트 브리지를 가질 수 있음을 보여줍니다. |
다양한 STP 지역 간 가시성 | 동일한 VLAN을 사용하여 서로 다른 STP 지역 간의 가시성을 확인합니다. |
전화 스위치 성능 | 1000개의 전화 통화를 생성하고 전화 스위치가 여전히 작동하는지 또는 성능이 저하되는지 확인하십시오. |
장치에 대한 음성 테스트 | 잘못된 키를 입력하고 사용자 인증을 확인하세요. 사용자의 액세스를 허용해서는 안 됩니다. |
선 속도 | 사용 가능한 모든 대역폭을 활용하여 들어오는 트래픽을 처리하면서 10Gbps 속도로 작동하는 장치를 확인합니다. |
프로토콜 대화 속도 | 두 장치 간의 TCP 대화를 추적하고 각 장치가 올바른 동작을 수행하는지 확인합니다. |
세션 시작 응답 시간 | 세션 시작을 위한 초대 요청에 대한 장치의 응답 시간을 측정합니다. |
프로토콜 테스트 도구
프로토콜을 검증하는 데 사용되는 가장 중요한 테스트 도구에 대해 논의해 보겠습니다.
1) Scapy 패킷 제작의 경우
Scapy 강력한 대화형 패킷 조작 프로그램입니다. 이를 통해 다음을 수행할 수 있습니다.
- 패킷 생성
- 네트워크의 패킷 디코딩
- 패킷 캡처 및 분석
- 네트워크에 패킷 삽입
그래서 기본적으로 scapy는 주로 두 가지 일을 합니다. 응답 수신 및 패킷 전송. 패킷을 정의하면 패킷을 보내고, 응답을 받고, 요청과 응답을 일치시키고, 패킷 쌍 목록과 일치하지 않는 패킷 목록을 반환합니다.
또한 추적 라우팅, 단위 테스트, 공격 또는 네트워크 검색, 새로운 프로토콜 개발, 탐색 등과 같은 다른 작업도 처리할 수 있습니다.
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, 리눅스, OSX 등
- 캡처된 네트워크 데이터는 GUI를 통해 찾아볼 수 있습니다.
- 암호 해독은 IPsec, ISAKMP, SSL/TLS와 같은 많은 프로토콜을 지원합니다.
- 이더넷, ATM, Bluetooth, USB, 토큰 등에서 실시간 데이터를 읽을 수 있습니다.
- 출력은 CSV, XML, 일반 텍스트 등으로 내보낼 수 있습니다.
TTCN
TCCN은 정의를 위한 표준 테스트 언어입니다. 테스트 시나리오 프로토콜 테스트를 위한 구현입니다. TCCN 테스트 스위트에는 TTCN 프로그래밍 언어로 작성된 많은 테스트 사례가 포함되어 있으며 다음 용도로 사용됩니다. 테스트 반응 시스템 또는 행동 테스트.
예를 들어, 3달러 동전을 넣으면 커피가 나오는 커피 자판기는 3달러 미만의 동전을 넣으면 응답하지 않습니다. 이러한 기계를 프로그래밍하려면 TCCN3 언어가 사용됩니다. 동전을 넣을 때 커피머신이 반응하도록 하려면 커피머신처럼 동작하는 TCCN-XNUMX 컴포넌트를 작성해야 합니다. 이를 통해 실제 커피 머신이 제품으로 출시되기 전에 테스트를 실행할 수 있습니다. 완료되면 TCCNXNUMX 테스트 스위트를 외부 장치와 연결합니다.
테스트 시스템은 자극(달러 동전)을 방출하고 응답(커피)을 받습니다. 자극 어댑터는 테스트 시스템에서 자극을 가져와 테스트 중인 시스템에 전달합니다. 응답 어댑터는 테스트 중인 시스템의 응답을 기다렸다가 테스트 시스템에 전달합니다.
TCCN3은 다음과 같은 다양한 분야에서 사용될 수 있습니다.
- 이동통신(LTE, WiMAX, 3G 등)
- 광대역 기술(ATM, DSL)
- 미들웨어 플랫폼(웹 서비스, CORBA 등)
- 인터넷 프로토콜(SIP, IMS, IPv6)
- 스마트 카드
- 자동차(AutoSAR, MOST, CAN)
TCCN에서는 다음을 정의할 수 있습니다.
- 테스트 스위트
- 테스트 케이스
- 테스트 단계
- 변수 선언
- 타이머 선언
- PDU 등을 생성합니다.
TCCN은 ASN.1과 같은 다른 언어 시스템 유형과 통합될 수 있습니다. XML, C/C++. TCCN3 핵심 언어는 표, 그래픽, 프리젠테이션과 같은 다른 형식과 별도로 텍스트 형식으로 존재합니다.