안녕하세요 여행자K 입니다.
오늘날 네트워크 보안과 트래픽 분석은 기업 인프라의 핵심 요소입니다. 특히 다양한 보안 솔루션이나 트래픽 학습 기반 AI 시스템을 운영할 경우, 네트워크 트래픽을 실시간으로 들여다보고 분석할 수 있는 체계가 필요합니다. 이때 사용하는 기술이 바로 **Port Mirroring(포트 미러링)**입니다.
포트 미러링은 스위치나 라우터 장비에서 특정 포트의 트래픽을 다른 포트로 **복제(Mirror)**하여, 별도의 장비나 소프트웨어가 이를 패킷 캡처 및 분석할 수 있도록 하는 기술입니다.
포트 미러링이 필요한 이유
1. 서비스 무중단 운영: 트래픽 분석을 위한 장비가 트래픽 경로에 직접 관여하지 않으므로, 실제 서비스에 지장을 주지 않으면서 안정적인 분석이 가능합니다.
2. 장애 대응을 위한 이중화 구성: 포트 미러링은 단일 장애 지점(SPOF)을 줄이기 위한 Fail-over/Fall-back 구성에 필수적인 요소로, 트래픽 복제 경로를 이중화할 수 있도록 해줍니다.
포트 미러링 시나리오
트래픽을 수집하여 분석하는 애플리케이션이 있다고 가정하겠습니다.
- 평상 시
- 인터페이스#1는 실시간 트래픽을 미러링하여 분석 서버로 전송합니다.
- 인터페이스#2는 대기 상태로 존재하며, 장애 발생 시 자동으로 활성화됩니다.
- Fail-over 시나리오
- 인터페이스#1에 문제가 발생하면, 인터페이스#2가 자동으로 활성화되어 트래픽 미러링을 이어받습니다
- 여기서 중요한 점은 어플리케이션은 인터페이스 #1이든 #2든 관계없이 최종적으로 가상 인터페이스를 통해 트래픽을 수신하게 됩니다.
- 따러서 트래픽의 출처가 바뀌더라도 애플리케이션 입장에서는 전혀 다른 것으로 인식되지 않습니다.
포트 미러링 구성방법
이제 실제 포트 미러링을 구성해보도록 하겠습니다.
1. 가상 인터 페이스 생성 및 연결
아래의 명령어를 통해 가상의 인터페이스를 생성하고 연결합니다.
# 가상 인터페이스 생성
nmcli con add type dummy ifname [생성할 인터페이스 이름] con-name [생성할 인터페이스 이름] ipv4.method disabled ipv6.method ignore
# 가상 인터페이스 연결
nmcli con up [생성한 인터페이스 이름]
이제 생성한 가상 인터페이스와 기존 인터페이스의 상태를 확인합니다.
# 인터페이스 활성화 확인
nmcli con show
모든 인터페이스가 정상적으로 활성화 된 것을 확인할 수 있습니다.
2. 가상 인터페이스 미러링 설정
인터페이스#1과 인터페이스#2에 qdisc(인위적인 패킷 유실, 패킷 지연, 전송 속도 제한 등 조절)를 설정 합니다.
# 송신 설정
tc qdisc add dev (인터페이스1,2) handle 10: root prio
# 수신 설정
tc qdisc add dev (인터페이스1,2) handle ffff ingress
다음으로 인터페이스#1과 인터페이스#2에 송신 및 송신에 관한 필터링 설정 후 가상 인터페이스로 미러링을 설정 합니다.
# 가상 인터페이스 미러링 송신 설정
tc filter add dev (인터페이스1,2) parent 10: matchall action mirred egress mirror dev (가상 인터페이스)
# 가상 인터페이스 미러링 수신 설정
tc filter add dev (인터페이스1,2) parent ffff: matchall action mirred egress mirror dev (가상 인터페이스)
관련 설정을 확인하기 위해 아래의 명령어를 실행합니다.
# qdisc 설정 확인
tc qdisc show dev 인터페이스1,2
# 미러링 설정 확인
tc filter show dev 인터페이스1,2
아래 그림과 같이 Mirror to device 가상 인터페이스가 출력된 다면 정상적으로 설정된 것입니다.
포트 미러링 구성 검증
포트 미러링 구성을 완료하였다면 이제 정상적으로 가상인터페이스가 미러링 하는지 테스트를 해보겠습니다.
여기에서는 pcap 파일을 통해 인터페이스#1,2에 트래픽을 인위적으로 발생시키고 가상 인터페이스에도 트래픽이 들어오는지 확인하는 방식으로 테스트를 진행하겠습니다.
테스트 1. 인터페이스#1에 트래픽 전송 후 가상 인터페이스 확인
아래의 명령어로 pcap 파일을 통해 인터페이스#1에 트래픽을 발생시킵니다.
# 인터페이스1에 트래픽 발생
tcpreplay -i 인터페이스1 테스트파일.pcap
아래의 명령어로 가상 인터페이스에 트래픽이 들어오는지 확인합니다.
# 가상 인터페이스 트래픽 확인
tcpdump -i 가상 인터페이스 http 주소 또는 port 번호
가상 인터페이스에 트래픽이 들어오는 것을 확인할 수 있습니다.
테스트 2. 인터페이스#2에 트래픽 전송 후 가상 인터페이스 확인
마찬가지로 pcap 파일을 통해 인터페이스#2에 트래픽을 발생시킵니다.
# 인터페이스2에 트래픽 발생
tcpreplay -i 인터페이스2 테스트파일.pcap
테스트 1과 같이 가상 인터페이스에 트래픽이 들어오는지 확인합니다.
# 가상 인터페이스 트래픽 확인
tcpdump -i 가상 인터페이스 http 주소 또는 port 번호
테스트 1과 같이 가상 인터페이스에 트래픽이 들어오는 것을 확인할 수 있습니다.
이 시나리오를 통해 포트 미러링이 네트워크의 안정성과 보안성을 어떻게 향상시키는지를 알 수 있습니다. 장애가 발생하더라도, 신속한 장애 조치와 포트 미러링 재설정을 통해 네트워크 관리자가 트래픽을 지속적으로 모니터링하고 문제를 해결할 수 있습니다. 이러한 과정은 기업의 네트워크 운영에 있어 필수적인 요소임을 보여줍니다.
읽어주셔서 감사합니다.
'Linux' 카테고리의 다른 글
Linux 서버 NFS 설정하기 (2) - NFS 클라이언트 설정 (0) | 2025.04.28 |
---|---|
Linux 서버 NFS 설정하기 (1) - NFS 서버 설정 (2) | 2025.04.21 |
/etc/hosts 파일 수정하기 (0) | 2025.04.07 |
Red Hat 계열 Linux에서 패키지 파일 다운로드하기 (0) | 2025.03.31 |
Linux 서버 NTP 동기화 설정 (0) | 2025.03.24 |