프로젝트 목표
VirtualBox 가상 환경 안에 pfSense를 이용해 독립된 내부 네트워크를 구축하고, 해당 네트워크에 속한 클라이언트(데비안 VM)가 라우터를 통해 외부 인터넷에 접속할 수 있도록 구성한다.
구성 환경
- 하이퍼바이저: VirtualBox
- 라우터 VM:
- 이름:
pfSense - OS: pfSense Community Edition
- RAM: 1GB
- 네트워크 어댑터:
- WAN:
NAT(인터넷 연결용) - LAN:
내부 네트워크 "LAN1"(클라이언트 연결용)
- WAN:
- 이름:
- 클라이언트 VM:
- 이름:
Debian-Client - OS: Debian Desktop
- RAM: 2GB
- 네트워크 어댑터:
- LAN:
내부 네트워크 "LAN1"
- LAN:
- 이름:
네트워크 아키텍처
[Host PC (인터넷)] <=> [VirtualBox NAT] <=> [pfSense VM (WAN)] [pfSense VM (LAN)] <=> [내부 네트워크 "LAN1"] <=> [Debian Client VM]
핵심 설정 과정
- pfSense VM 생성 및 설정
- 두 개의 네트워크 어댑터를 설정하는 것이 핵심. (WAN/LAN 분리)
- pfSense 초기 설정 (콘솔)
- 인터페이스 할당:
em0→ WAN,em1→ LAN - LAN IP 주소 설정:
192.168.100.1/24(고정 IP) - DHCP 서버 활성화: 클라이언트에게
192.168.100.100~192.168.100.200범위의 IP를 할당하도록 설정.
- 인터페이스 할당:
- Debian Client VM 연결
- 네트워크 어댑터를 pfSense의 LAN과 동일한
내부 네트워크 "LAN1"에 연결. - Debian의 네트워크 설정은 ‘자동(DHCP)’ 기본값을 그대로 사용.
- 네트워크 어댑터를 pfSense의 LAN과 동일한
- pfSense 웹 설정 마법사 완료
- 클라이언트 VM (
http://192.168.100.1)에서 접속하여 호스트 이름, 도메인, 관리자 비밀번호 등 초기 설정 완료.
- 클라이언트 VM (
DHCP란 무엇인가?
DHCP(Dynamic Host Configuration Protocol)는 네트워크에 접속하는 컴퓨터에게 필수적인 네트워크 정보를 자동으로 할당해주는 역할을 한다. 마치 건물에 새로 입주한 사람에게 관리사무소가 알아서 호실 번호, 우편함 위치, 비상 연락망 등을 알려주는 것과 같다.
DHCP가 없었다면?
만약 DHCP가 없다면, 우리는 네트워크에 연결할 모든 컴퓨터에 아래 정보를 직접 수동으로 입력해야 한다.
- IP 주소: 네트워크상의 고유한 주소 (예: 192.168.100.101)
- 서브넷 마스크: 내부 네트워크의 규모를 정의 (예: 255.255.255.0)
- 게이트웨이 주소: 외부 인터넷으로 나가는 문(라우터)의 주소 (예: 192.168.100.1)
- DNS 서버 주소: 도메인 이름을 IP로 변환해주는 서버의 주소 (예: 192.168.100.1)
컴퓨터 한두 대는 괜찮지만, 수십, 수백 대의 컴퓨터를 관리해야 한다면 IP 주소가 겹치거나 잘못 입력하는 실수가 발생하기 쉽다.
DHCP의 작동 원리 (4단계)
이번 실습에서 Debian VM이 pfSense로부터 IP 주소를 받아오는 과정은 다음과 같다.
- Discover (발견): Debian VM이 네트워크에 “혹시 IP 주소를 나눠줄 서버 있나요?”라고 모두에게 외친다. (브로드캐스트)
- Offer (제공): pfSense의 DHCP 서버가 “네, 제가 줄 수 있어요. 192.168.100.101 주소를 사용하세요.”라고 제안한다.
- Request (요청): Debian VM이 “감사합니다! 그럼 그 주소를 제가 사용하겠습니다.”라고 다시 모두에게 알린다.
- Acknowledge (확인): pfSense가 “알겠습니다. 이제부터 그 주소는 당신 것입니다.”라고 최종 확인 도장을 찍어준다.
문제 해결 과정 (Troubleshooting)
❗ 문제 1: 게이트웨이 연결 불가
- 증상: Debian 클라이언트가 DHCP로 IP(
192.168.100.101)는 할당받았으나, 게이트웨이(192.168.100.1)로ping이 실패하고 웹 접속도 불가능했음. - 원인: 초기 설정 과정에서의 꼬임 또는 기본 방화벽 규칙 미적용으로 추정.
- 해결: pfSense VM 콘솔에서
4) Reset to factory defaults메뉴를 통해 설정을 공장 초기화한 후, LAN IP 및 DHCP 설정을 다시 진행하여 해결.
❗ 문제 2: DNS 조회 실패
- 증상:
ping 8.8.8.8(IP 직접 호출)은 성공했으나,ping google.com은Temporary failure in name resolution오류를 내며 실패. - 진단: IP 기반의 외부 통신은 가능하므로, 도메인 이름을 IP로 변환하는 DNS 기능에 문제가 있음을 확인.
- 원인: pfSense의 DNS 서비스인 **
unbound (DNS Resolver)*가 비활성화(Stopped) 상태였음. - 해결: pfSense 웹 관리 페이지의 Status > Services에서
unbound서비스를 수동으로 **재시작(Restart)**하여 해결.
최종 결과
- pfSense VM은 라우터 및 방화벽으로 정상 동작한다.
- Debian 클라이언트 VM은 pfSense의 DHCP 서버로부터 IP 주소를 자동으로 할당받는다.
- Debian 클라이언트 VM은 pfSense를 통해 외부 인터넷과 정상적으로 통신한다.
- pfSense의 DNS Resolver는 내부 클라이언트들의 DNS 요청을 처리하여 도메인 이름 조회를 가능하게 한다.
답글 남기기