개요
예전에 사용하던 허브는 허브에 연결되어 있는 모든 노드가 전체 패킷을 받을 수 있는 구조였습니다. (그림 1.) 때문에 네트워크 인터페이스를 promiscuous 로 설정하기만 하면 네트워크상에 유통되는 모든 패킷을 캡쳐할 수 있었습니다.
반면, 요즘 사용되고 있는 스위치의 경우는 이와 달리 특정 노드로 전달되는 유니케스트 트래픽이 해당 노드가 존재하는 포트로만 전달되기 때문에 이를 캡쳐 할 수 없습니다. (그림 2.)
이를 해결하기 위해서는 기본적으로 해당 노드에 와이어 샤크를 설치하는 것이 가장 간단할 것입니다. (그림 3.)
▲ 그림 1. 허브를 이용한 네트워크 구성시 패킷의 유통
▲ 그림 2. 스위치를 이용한 네트워크 구성시 패킷의 유통
▲ 그림 3. 목표 노드에 WireShark 설치를 통한 패킷 캡쳐
하지만 해당 노드에 와이어 샤크를 설치할 수 없을 경우 (제 경우는 해당 노득 PC가 아니기 때문에 설치가 불가했습니다.) 에는 다음과 같은 방법을 사용하여 해결할 수 있습니다.
스위치 모니터링 모드를 통한 패킷캡쳐
제가 사용할 수 있는 Netgear 사의 FS726T 스위치를 포함해 몇몇 이더넷 스위치는 모니터링 모드가 있습니다. 이러한 스위치는 당연히 일반적인 스위치에 비해서 조금 더 가격이 나갑니다. 또한 제조사에 따라서 이러한 모니터링 모드를 부르는 명칭이 다릅니다. 예를들어, ‘포트 미러링’, ‘포트모니터링’ ‘Roving Analysis’ (3Com) 또는 ‘포트 분석’, ‘SPAN (Cisco)’ 라는 명칭으로 부르기도 합니다. 어쨌든 이러한 모니터링 모드가 있는 스위치를 사용하면 간편하게 다른 포트에서 유입되는 트래픽을 모니터링 포트에서 캡쳐할 수 있습니다.
이러한 설정을 위해서는 Web browser 기반의 인터페이스를 제공하기 때문에 더욱 손쉽게 설정 할 수 있습니다.
▲ 그림 4. 모니터링 모드가 내장된 스위치를 이용한 패킷 캡쳐
모니터링 모드(포트 미러링)가 있는 Netgear사(社) 의 FS726T 스위치의 포트 미러링 기능을 활성화하였습니다.
Netgear Web-Based Management Interface 를 통해 스위치 설정화면에 접속하기 위해 웹브라우저에서 switch의 IP(192.168.0.238
) 를 입력합니다.
※ 참고 : 물론 이때 접속하는 PC의 IP도 동일한 네트워크 대역(192.168.0.X
)으로 설정해야합니다.
로그인을 합니다. 기본 암호는 password
입니다.
로그인 후 좌측의 Monitor 를 선택합니다. 그림 5와 같은 화면을 확인할 수 있습니다.
▲ 그림 5. Netgear 사의 FS726T 모니터링 모드 설정 화면
포트 미러링 기능을 다음 절차에 따라 설정합니다.
- Sniffer Mode 는 송/수신되는 모든 패킷을캡쳐 할 것이므로 Both 를 선택합니다.
- Sniffer Port 는 하단의 Source Port로 유입된 패킷을 모니터링할 포트를 선택합니다. 여기에 와이어샤크가 설치된 노드(PC)를 연결합니다.
- Source Port 송수신할 패킷이 유통되는 장비가 연결되어 있는 포트를 체크합니다.
※ 주의 : 모든 포트를 체크할 수도 있겠지만 모든 포트의 유입되는 트래픽을 하나의 포트에 모두 복사한다면, 모니터링 포트의 속도가 그 만큼 높아야 합니다. (총 25개의 포트를 1개의 포트로 유입시킬 테니, 해당포트는 최소 25배 이상의 속도가 필요합니다. ) 그렇지 않을 경우, 패킷의 유실이 발생하여 정확히 모니터링을 할 수 없습니다. 따라서, 사용할 포트만 선택하는 것을 권장합니다.
변경사항을 저장합니다. (‘Apply’ 버튼을 클릭합니다)
설정이 완료되었습니다. 이제 해당 포트를 통해서 송/수신 되는 모든 packet 이 25번 port 로 복제가 되기 때문에 WireShark 를 사용하여 packet 의 송/수신을 모니터링 할 수 있습니다.
결론
이외에도 참고페이지를 방문하시면 다양한 방법으로 캡쳐할 수 있는 방법이 소개되어 있습니다. 저의 경우는 운좋게도 보유하고 있는 스위치 장비에서 모니터링 기능(포트 미러링)을 지원하기 때문에 이를 활용하였으나, 이 방법이 여의치 않는 경우는 참고 페이지에 소개되어 있는 다른 방법을 활용할 수 있습니다.
참고 및 그림 출처
'개발도구' 카테고리의 다른 글
VIM Color Scheme 변경하기 (0) | 2019.10.20 |
---|---|
C/C++ 개발환경 설정 @ Xubuntu 18.04 (0) | 2018.12.17 |
안드로이드 - Hello World (0) | 2018.07.13 |
개발 및 시험을 위한 간단 웹서버 프로그램 (0) | 2018.07.07 |
Ubuntu(Xubuntu) Virtual Box 설치 후 화면 깨짐 (0) | 2018.06.28 |