brunch

막막한 신입 엔지니어를 한 Docker 실습 가이드

자격증은 있는데 실무는 막막하다면?

by 위키북스

네트워크 자격증을 따기 위해 OSI 7계층, IP 주소, 서브넷 마스크 등을 열심히 외웠지만, 막상 실무에 투입되니 막막하신가요? 라우터나 스위치 같은 고가의 장비 없이 네트워크를 직접 설정하고 패킷을 분석해볼 방법이 없어 답답하셨을 겁니다.

이론과 현실의 큰 차이 때문에 어려움을 겪는 신입 네트워크 엔지니어와 입문자들을 위해, 『도커로 구축한 랩에서 혼자 실습하며 배우는 네트워크 프로토콜 입문』 도서의 1장을 바탕으로 여러분의 PC를 강력한 네트워크 실험실로 만드는 방법을 단계별로 소개합니다.





왜 Docker로 실습해야 할까?


과거에는 네트워크를 실습하려면 수십, 수백만 원짜리 물리 장비를 구비하거나 복잡한 가상화 프로그램을 사용해야 했습니다. 하지만 이제는 Docker라는 컨테이너 기술 덕분에 개인 PC에서도 가볍고 빠르게, 그리고 저렴하게 정교한 네트워크 환경을 구축할 수 있게 되었습니다. 이 책에서는 WSL2(Windows Subsystem for Linux version 2), Docker, 그리고 tinet이라는 세 가지 도구를 사용하여, 명령어 몇 줄만으로 스위치, 라우터, 서버로 구성된 복잡한 네트워크 랩을 자동으로 구축하는 경험을 제공합니다.


unnamed.png





1단계: 실습을 위한 필수 도구 설치하기


본격적인 실습에 앞서, 책에서 제공하는 편리한 자동화 스크립트를 사용하여 필요한 도구들을 설치합니다. 실무에서는 반복적인 인프라 구축 작업을 자동화하기 위해 셸 스크립트를 적극적으로 활용합니다. 이 책의 setup.sh 스크립트는 WSL2 환경에 Docker와 tinet을 설치하고, 네트워크 설정을 최적화하는 등 복잡한 과정을 단 하나의 명령어로 처리해 줍니다. 이를 통해 독자는 번거로운 초기 설정 과정에서 헤매지 않고 곧바로 핵심적인 네트워크 실습에 집중할 수 있습니다.


01. WSL2(리눅스용 윈도우 하위 시스템) 설치

Windows 터미널을 관리자 권한으로 열고, 아래 명령어 한 줄만 입력하면 리눅스 환경(Ubuntu 20.04) 설치부터 필요한 모든 기능이 활성화됩니다.


PowerShell
wsl --install --distribution Ubuntu-20.04



02. 자동 설정 스크립트 실행


책에서 제공하는 tinet.zip 파일의 압축을 해제한 뒤, 생성된 우분투(WSL2) 터미널에서 아래 명령어를 실행합니다.


Bash
bash /mnt/c/tinet/setup.sh



03. 이 스크립트는 다음 작업을 자동으로 수행합니다.


- DNS 클라이언트 설정: 구글 DNS(8.8.8.8) 등으로 안정적인 인터넷 연결을 보장합니다.- 우분투 업데이트: 패키지를 최신 상태로 업데이트합니다.- Docker 설치: 컨테이너를 실행하기 위한 Docker 엔진을 설치합니다.- tinet 설치: 네트워크 환경을 쉽게 구축하기 위한 tinet 도구를 설치합니다.- wsl.conf 설정: WSL2가 시작될 때 Docker 서비스가 자동으로 실행되도록 설정합니다.




2단계: 명령어 한 줄로 나만의 '미니 인터넷' 구축하기



모든 도구 설치가 완료되었다면, 이제 이 실습의 하이라이트인 네트워크 랩 환경을 구축할 차례입니다. 책에서 제공하는 spec_01.yaml이라는 설정 파일에는 가정 내 LAN, 인터넷, 서버 사이트를 모방한 13개의 가상 장비(컨테이너)에 대한 모든 설계가 담겨 있습니다. tinet은 spec_01.yaml 파일을 읽어들여 마치 설계도를 보며 건물을 짓듯이, Docker에게 필요한 이미지(가상 장비의 OS와 소프트웨어)를 다운로드하고, 각 장비를 생성한 뒤, 가상의 네트워크 케이블로 서로 연결하라고 지시합니다.


아래 두 개의 명령어를 순서대로 입력하기만 하면 여러분의 PC 안에 복잡한 네트워크가 마법처럼 펼쳐집니다.



01. 네트워크 환경 구축 (장비 생성 및 연결)

Bash
tinet up -c /mnt/c/tinet/spec_01.yaml | sh -x



02. 컨테이너 설정 (IP 주소 및 라우팅 설정)


Bash
tinet conf -c /mnt/c/tinet/spec_01.yaml | sh -x


AD_4nXdtPBtCT_wX1XkA3m44T3xcdrVwzxhDjh5D6KQjS6pJgGzW_5yYI2zRoUapkp91XdjzGXCOSb9kBQrVdNV8Kf2TKFxNTLLpMipISc6TRzxZ4o2tiL_Vglho-tfG09PGFG0CNkXWiw?key=52EUevA9e96nkndoBhk1Ig


AD_4nXelp_dWBSgU7WuwQR6Zo1Hg_JYAKZ9t1szoKLSuq3oXCzE16-n6HVUErhjL5d-Njs2Yd4S9P8VPNyk1FxAz9SafVmpH1tuv26MXD_4-p_8E9olnmmP__5MmpsZYNXVp5AHIlb9uMw?key=52EUevA9e96nkndoBhk1Ig





3단계: 구축된 환경에서 통신 확인하기


이제 모든 준비가 끝났습니다. 구축된 네트워크가 실제로 살아 움직이는지 확인해볼 차례입니다. 가정 내 LAN에 있는 cl1 PC(컨테이너)에 접속하여 인터넷 너머 서버 사이트의 웹 서버(www.example.com)에 접속을 시도해 봅니다.


Bash
# cl1 컨테이너에 로그인
root@UBUNTU:~# docker exec -it cl1 /bin/bash

# 웹사이트에 접속 요청
root@cl1:/# curl -k https://www.example.com/
sv1.example.com


"sv1.example.com"이라는 응답이 돌아왔다면 성공입니다! 여러분은 방금 여러분의 PC 안에 직접 구축한 라우터, 스위치, 방화벽을 거쳐 웹 서버와 통신한 것입니다.




결론: 이론을 넘어 체득하는 지식으로


자격증 공부만으로는 절대 얻을 수 없는 것이 바로 이러한 '실무 경험'입니다. 복잡한 네트워크 환경을 직접 구축하고, 그 안에서 패킷이 어떻게 흘러가는지 눈으로 확인하는 과정은 흩어져 있던 이론 지식을 하나로 꿰어주는 강력한 경험이 됩니다.

『도커로 구축한 랩에서 혼자 실습하며 배우는 네트워크 프로토콜 입문』은 값비싼 장비나 복잡한 설정의 장벽을 허물고, 누구나 자신의 PC에서 진짜 네트워크를 만지고 실험할 수 있는 길을 열어줍니다. 이론의 벽에 막혀 답답함을 느끼셨다면, 이 책과 함께 직접 부딪치고 해결하며 진짜 실력을 키워나가시길 바랍니다.




이 책은 단순히 지식을 읽고 배우는 것이 아니라, 설정부터 패킷 분석까지 전 과정을 실제로 체험할 수 있는 네트워크 기술서입니다. 한 대의 PC 안에 스위치, 라우터, 방화벽, 로드 밸런서를 갖춘 가상 네트워크 환경을 구축하고, 각 장비에 로그인해 VLAN, 라우팅, 방화벽의 통신 제어, HTTPS 암호화, 로드 밸런싱 등을 모두 실제로 설정하고 동작을 확인할 수 있습니다.


이 책을 통해 네트워크 장비를 설정하고 패킷을 분석하면서 네트워크 검증 환경을 구축하다 보면 실제 구축 현장이나 운영 현장과 유사한 경험을 자연스럽게 쌓고 체험할 수 있을 것입니다.

keyword
작가의 이전글AI 기반 보고서 작성 자동화