🗃️ 내가 다시 볼 것
대답하지 못한 기술 면접 정리하기(CIDR, 방화벽, DMZ)
전호영
2025. 5. 2. 22:29
최근 기술면접을 보며 대답을 잘 하지 못했던 내용에 대해 정리해보려 한다.
문제
1. 192.168.1.100/26 대역에서 전체 할당 가능한 IP 는 몇 개이고, 실제 호스트에 할당 가능한 IP는 몇 개인가?
192.168.1.100/26 처럼 IP 주소 뒤에 / 와 숫자를 붙여 네트워크 비트의 개수를 나타내는 방식을 CIDR 이라 한다.
위 예시엔 26이 붙어있다.
이는 앞의 26비트가 네트워크 주소임을 의미한다.
IPv4 주소는 32비트이다.
그런데 앞의 26비트가 네트워크 주소이므로, 호스트가 사용할 수 있는 비트는 6 비트이다.
즉, 2^6 개가 전체 할당 가능한 IP 개수이다. (64개)
그런데 실제 호스트에 할당 가능한 IP는 전체에서 네트워크 주소와 브로드캐스트 주소를 빼야 한다.
즉, 호스트는 2개를 뺀 62개를 사용할 수 있다.
여기서 네트워크 주소와 브로드캐스트 주소란 무엇일까?
네트워크 주소
- 해당 IP 대역(서브넷)에서 호스트 부분이 모드 0인 주소로, 해당 서브넷의 "시작 주소"가 된다.
- 192.168.0/24 에선 192.168.1.0 이 네트워크 주소가 된다.
- 실제로 할당하진 않고, 네트워크 구간을 대표하는 용도로만 사용한다.
브로드캐스트 주소
- 해당 IP 대역(서브넷)에서 호스트 부분이 모두 1인 주소로, 같은 서브넷에 속한 모든 호스트에게 동시에 데이터를 전송할 때 사용한다.
- 192.168.0/24 에선 192.168.1.255 가 브로드캐스트 주소이다.
- 이 역시 실제로 할당하지 않는다.
2. DMZ의 역할은 무엇이고, DMZ엔 어떤 서버를 넣어야 하는가?
네크워크 상황은 위와 같다.
DMZ(Demiliatrized Zone)의 약어로 , 기업이나 조직의 내부 네트워크와 외부 네트워크 사이에 위치한 중간 지대이다.
내부 네트워크와 외부 네트워크 사이의 통신을 관리하고, 보안을 강화하기 위해 사용된다.
1. DMZ는 어떤 역할을 할까?
- 외부에서 접근할 수 있는 서비스를 내부망과 분리하여 외부 공격자가 DMZ 내부에 침투하더라도 내부 네트워크로의 직접적인 침입을 어렵게 한다.
- 외부 사용자가 접근해야 하는 서비스를 DMZ에 배치하여, 내부망을 보호하는 동시에, 서비스를 제공한다.
- DMZ, 내부망, 외부망을 각 방화벽을 통해 다른 보안 정책을 적용할 수 있다.
- DMZ에 방화벽, IDS/IPS 등 다양한 보안 장비를 배치하여, 외부에서 공격을 탐지하고, 차단한다.
그래서 DMZ엔 어떤 서버를 두어야 할까?
DMZ의 역할엔 외부 서비스와 내부 서비스를 분리하여 내부 서비스를 보호하는 것이 있다.
외부에서 접근할 수 있는 서비스를 제한적으로 제공하는 것이다.
예시론 다음과 같다.
- 웹 서버
- 메일 서버
- DNS 서버
- FTP 서버
- 리버스 프록시 / 게이트웨이
- API Gateway , 로드밸런서, 인증 서버 등 외부 요청을 내부 서버로 중계하는 역할을 한다.
추가로 WAS, DB 서버는 내부망에 두어야 한다.
비즈니스 로직과 민감한 데이터는 외부로 유출시키면 안되므로!
그러므로 DMZ 공격자가 네트워크로 침입하더라도, 내부망이 안전하도록 두는 완충지대이다.
2. 그럼 외부 방화벽과 내부 방화벽엔 각각 어떤 역할을 주어야 할까?
먼저 두 방화벽이 어떤 역할을 하는지 알아보자.
외부 방화벽
- 인터넷(외부망)과 DMZ/내부망 사이에 위치한다.
- 목적은 다음과 같다.
- 외부에서 들어오는 불필요한 트래픽을 1차 차단
- DMZ 또는 내부망으로의 직접적인 접근을 제한한다.
- DMZ에 있는 서비스로만 접근 가능하도록 포트, IP 기반 접근을 제어한다.
- DDoS, 포트 스캐닝 등 외부의 위협에 대해 1차 방어를 한다.
- 로그를 수집하고, 이상 트래픽이 있다면 탐지한다.
내부 방화벽
- DMZ와 내부망 사이에 위치한다.
- 목적은 다음과 같다.
- DMZ가 침해당했을 때, 내부망으로 추가 침입을 방지한다.
- DMZ에서 내부망으로의 트래픽을 제한한다.(특정 포트만 열어준다던가, 특정 서버만 열어준다던가..)
- 내부에서 외부로 나가는 트래픽은 필요에 따라 허용한다.