네트워크/Network

[Network] GNS3 Docker 활용

cumo 2025. 1. 23. 17:03

GNS3에서 Docker를 활용한 네트워크 실습 가이드

Docker와 GNS3를 결합하면 네트워크 엔지니어들이 보다 효율적으로 네트워크 환경을 시뮬레이션하고 실습할 수 있다. Docker는 가볍고 빠른 컨테이너 기술을 제공하며, GNS3는 네트워크 시뮬레이션을 위한 강력한 도구다. 이 글에서는 GNS3에서 Docker를 설치하고 활용하는 방법과 주요 기능을 정리한다.


1. GNS3에서 Docker란?

Docker는 애플리케이션과 필요한 모든 구성 요소를 컨테이너에 패키징하여 실행하는 기술이다. GNS3에서는 Docker 컨테이너를 네트워크 장비(예: 방화벽, 웹 서버, 데이터베이스 등)로 활용해 다양한 네트워크 토폴로지를 실습할 수 있다.

주요 이점

  • 경량화: Docker 컨테이너는 가상머신보다 자원을 적게 사용한다.
  • 빠른 배포: 컨테이너 이미지를 통해 네트워크 장비를 빠르게 배포 가능.
  • 유연성: 다양한 오픈소스 네트워크 도구와 통합 가능(IPtables, Nginx 등).

2. GNS3에서 Docker 설정 방법

2.1 Docker 설치

먼저 Docker가 로컬 머신에 설치되어 있어야 한다.

Linux에서 Docker 설치

 
sudo apt update sudo apt install docker.io -y sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker $USER
# 현재 사용자를 Docker 그룹에 추가
 

설치 후 Docker 서비스가 정상적으로 실행 중인지 확인:

 
docker version docker run hello-world

Windows 및 macOS 사용자는 Docker Desktop을 설치 후 Docker Daemon을 활성화한다.


2.2 GNS3에서 Docker 활성화

  1. GNS3 설치: GNS3 공식 웹사이트(https://www.gns3.com)에서 GNS3를 다운로드하고 설치한다.
  2. GNS3 VM 설정: GNS3 VM을 VirtualBox 또는 VMware에 배포한다. GNS3 VM은 Docker를 실행하기 위한 필수 요소다.
  3. Docker Remote API 활성화:
    • GNS3 VM 내에서 Docker API를 활성화한다.
    • GNS3 VM의 CLI에 접속하여 다음 명령어 실행:
  4. GNS3에서 Docker 연결:
    • GNS3 인터페이스에서 Edit > Preferences > Docker로 이동.
    • "Enable the Docker support" 옵션을 활성화.
    •  
sudo docker -H tcp://0.0.0.0:2375 -d &
sudo docker -H tcp://0.0.0.0:2375 -d &

3. Docker 컨테이너 활용 예제

3.1 기본 Docker 이미지를 사용한 실습

GNS3에 기본 Docker 이미지를 추가하는 방법:

  1. 새로운 Docker 이미지를 추가:
    • Preferences > Docker > Docker containers로 이동.
    • "New"를 클릭한 후 alpine, ubuntu, nginx 등 기본 이미지를 설정.
  2. 실습 환경 구성:
    • GNS3 프로젝트를 생성하고 Docker 컨테이너를 네트워크 토폴로지에 배치.
    • 컨테이너 간의 연결을 구성하고 네트워크 트래픽을 시뮬레이션.

3.2 실제 네트워크 도구 사용

  • Wireshark: 네트워크 트래픽 캡처 및 분석.
  • Nginx: 웹 서버 설정.
  • IPTables: 방화벽 규칙 테스트.

예시: 간단한 Nginx 컨테이너를 설정하고 테스트

 
docker pull nginx docker run --name webserver -d -p 8080:80 nginx curl http://localhost:8080

4. GNS3와 Docker의 주요 기능

  • 네트워크 실습: 라우팅, 스위칭, 방화벽 테스트 가능.
  • 컨테이너 기반 서비스 배포: Nginx, Apache, MySQL 등 다양한 서비스를 쉽게 실습.
  • 오픈소스 도구 통합: Ansible, Open vSwitch 등과 통합 가능.
  • 다중 플랫폼 지원: Linux, Windows, macOS 모두에서 활용 가능.