pfSense DNS 설정 완전 정리


1. 들어가기 전에 — DNS란 무엇인가

DNS(Domain Name System) 는 사람이 읽기 쉬운 도메인 이름(google.com)을 컴퓨터가 통신에 사용하는 IP 주소(142.250.196.110)로 변환해 주는 시스템입니다. 인터넷의 “전화번호부” 역할을 합니다.

pfSense에서 DNS가 중요한 이유

pfSense는 단순한 방화벽이 아니라 게이트웨이 + DHCP 서버 + DNS 서버 역할을 동시에 수행할 수 있습니다. 따라서 내부 네트워크 클라이언트들이 인터넷에 접속할 때 어떤 DNS 서버를 사용할지를 pfSense에서 통제할 수 있습니다.

pfSense가 DNS를 처리하는 두 가지 서비스

pfSense는 DNS 처리를 위해 두 가지 서비스를 제공하며, 둘 중 하나만 활성화해야 합니다.

구분DNS Resolver (Unbound)DNS Forwarder (dnsmasq)
동작 방식직접 루트 서버부터 재귀 질의 수행상위 DNS 서버로 단순 전달(forwarding)
기본 활성화✅ 기본값 (pfSense 2.2 이후)❌ 비활성화
보안성DNSSEC, DNS over TLS 지원상대적으로 단순
본 문서 다루는 범위개념만 언급다른 포스팅에서 상세히 다룸

⚠️ 두 서비스는 모두 53번 포트를 사용하므로 동시에 켤 수 없습니다. DNS Forwarder를 켜려면 DNS Resolver를 먼저 꺼야 합니다.


2. pfSense DNS 설정 위치 — 계층(Hierarchy) 구조

pfSense에서 DNS를 설정할 수 있는 곳은 여러 군데이며, 이들 사이에는 우선순위(계층) 가 존재합니다. 강의에서 강조한 핵심 개념입니다.

질의(Query)가 처리되는 순서

┌─────────────────────────────────────────────┐
│ 1. Host Overrides (호스트 단위 직접 매핑)        │  ← 가장 우선
├─────────────────────────────────────────────┤
│ 2. Domain Overrides (도메인 단위 매핑)          │
├─────────────────────────────────────────────┤
│ 3. DHCP 정적 매핑 (Static Mappings)           │
├─────────────────────────────────────────────┤
│ 4. System > General Setup의 DNS Servers      │  ← 최종 폴백
└─────────────────────────────────────────────┘

즉, 클라이언트가 myserver.local을 질의하면 pfSense는
호스트 → 도메인 → DHCP → 시스템 DNS 순서대로 답을 찾아갑니다.


3. 대체 DNS 서버 지정하기

3-1. 기본 동작

  • pfSense는 기본적으로 별도의 DNS 설정 없이도 동작합니다.
    WAN 인터페이스가 DHCP/PPPoE로 IP를 받을 때, ISP가 제공하는 DNS 서버가 자동으로 할당되기 때문입니다.
  • 하지만 특정 DNS를 강제로 사용하고 싶다면(예: Google DNS, Cloudflare DNS, 사내 DNS) 수동으로 지정할 수 있습니다.

3-2. 설정 경로

System  →  General Setup  →  DNS Server Settings

3-3. 주요 항목 설명

① DNS Servers

  • 사용할 DNS 서버의 IP 주소를 입력합니다.
  • IPv4와 IPv6 모두 입력 가능합니다.
  • 여러 개의 DNS 서버를 등록할 수 있으며, “Add DNS Server” 버튼으로 항목을 추가합니다.
  • 예시: DNS 제공자 IPv4 IPv6 Google 8.8.8.8, 8.8.4.4 2001:4860:4860::8888 Cloudflare 1.1.1.1, 1.0.0.1 2606:4700:4700::1111 Quad9 9.9.9.9 2620:fe::fe

💡 : 주(primary) DNS 외에 보조(secondary) DNS도 등록해 두면 한쪽이 장애가 나도 끊김 없이 동작합니다.

② Gateway 선택

각 DNS 서버 옆에 어떤 게이트웨이를 통해 나갈지 지정할 수 있습니다.

  • WAN이 여러 개일 때(다중 회선) 특정 DNS 질의를 특정 회선으로 보내고 싶을 때 사용합니다.
  • 일반적인 단일 WAN 환경에서는 none(기본값)으로 두면 됩니다.

③ DNS Server Override (체크박스)

  • 체크 시: WAN 인터페이스가 DHCP/PPP로 받은 ISP의 DNS를 자동으로 사용합니다.
  • 체크 해제 시: 위에서 직접 입력한 DNS만 사용합니다.

사내 DNS 필터링이나 광고 차단 DNS를 강제하고 싶으면 반드시 체크 해제해야 합니다.
그렇지 않으면 ISP DNS가 우선시되어 의도와 달라질 수 있습니다.

④ Disable DNS Forwarder (체크박스)

  • pfSense 자체가 호스트네임 해석을 할 때 위에서 지정한 DNS만 사용하도록 강제합니다.
  • 일반적으로는 체크하지 않습니다.

3-4. 기억할 포인트

  • 기본값으로 두면 ISP DNS가 자동 적용됨
  • 직접 지정하려면 DNS Server Override 체크 해제가 필수
  • IPv4/IPv6 둘 다 등록해 두는 것이 안정적
  • 주/보조 서버를 함께 등록할 것

4. DNS Forwarder 설정하기

4-1. DNS Forwarder의 역할

pfSense의 DNS Forwarder(dnsmasq 기반)는:

  1. 클라이언트의 DNS 질의를 받아 상위 DNS 서버로 전달
  2. DHCP로 등록된 호스트네임을 자동으로 DNS로 해석 가능하게 만듦
  3. 관리자가 수동으로 등록한 호스트/도메인 매핑을 우선 적용

즉, 내부 네트워크용 간이 DNS 서버처럼 활용할 수 있습니다.

4-2. 설정 경로

Services  →  DNS Forwarder

⚠️ 활성화하기 전에 DNS Resolver가 꺼져 있는지 먼저 확인하세요.

4-3. 주요 옵션 상세

① Enable

DNS Forwarder를 켜는 메인 스위치입니다.

② DHCP Registration

  • 체크 시: DHCP로 IP를 받은 모든 클라이언트의 호스트네임이 자동으로 DNS에 등록됩니다.
  • 예: 사무실 PC john-pc가 DHCP로 IP를 받으면, 다른 PC에서 john-pc.localdomain으로 접근 가능.

③ Static DHCP

  • DHCP의 정적 매핑(Static Mapping) 에 등록된 항목을 DNS에 자동 반영합니다.
  • 서버나 프린터처럼 IP가 고정된 장비를 호스트네임으로 부르고 싶을 때 유용합니다.

④ Prefer DHCP

  • 호스트네임 해석 시 DHCP 매핑을 수동 등록 목록보다 먼저 조회합니다.
  • 강의에서 “흥미로운(interesting) 설정”이라고 추천한 옵션입니다.

⑤ Query DNS servers sequentially (순차 질의)

  • 체크 시: 등록된 DNS 서버를 순서대로 하나씩 질의 (첫 번째 실패 → 두 번째 시도)
  • 체크 해제 시(기본): 모든 DNS 서버에 동시 병렬 질의 → 가장 빠른 응답 채택
  • 일반적으로는 기본값(병렬)이 빠르지만, 특정 DNS 서버를 우선시하고 싶다면 순차 모드를 선택합니다.

⑥ Require domain (도메인 필수)

  • 점(.)이 없는 단순 이름(예: printer)은 상위 DNS로 전달하지 않습니다.
  • 강의에서 권장하지 않는다고 언급된 옵션입니다.
    → Linux/FreeBSD의 /etc/hosts에 등록되지 않은 단순 이름이 해석 실패할 수 있기 때문입니다.

⑦ Do not forward private reverse lookups

  • 192.168.x.x, 10.x.x.x 같은 사설 IP에 대한 역방향(PTR) 질의를 외부로 보내지 않습니다.
  • 외부로 사설 IP 정보가 새는 것을 방지하는 보안 옵션이라 권장됩니다.

⑧ Listen Port

  • DNS Forwarder가 수신하는 포트. 기본값 53.
  • 매우 특수한 경우가 아니면 변경하지 않는 것이 권장됩니다.

⑨ Interfaces

  • DNS Forwarder가 요청을 수신할 인터페이스 선택.
  • 일반적으로 LAN과 Localhost를 선택합니다.
  • WAN을 선택하면 외부에서도 DNS 질의를 받게 되어 보안 위험(오픈 리졸버)이 생기므로 주의.

⑩ Strict Interface Binding (엄격한 인터페이스 바인딩)

  • 체크 시: 위에서 선택한 인터페이스의 IP 주소에만 바인딩합니다.
  • 체크 해제 시(기본): 모든 인터페이스에 바인딩한 뒤 패킷 단위로 필터링합니다.
  • CARP(고가용성) 환경에서 필요할 수 있으나, 일반 환경은 기본값 유지.

4-4. Host Overrides (호스트 오버라이드) — 가장 중요

DNS 계층에서 가장 우선순위가 높은 항목입니다.

특정 호스트네임을 원하는 IP로 강제 매핑할 수 있습니다.

입력 항목예시설명
Hostmail호스트 이름
Domaincompany.local도메인
IP192.168.1.10매핑할 IP
Description사내 메일서버메모
Aliaseswebmail, smtp같은 IP를 가리킬 별칭

활용 예시

  • mail.company.local192.168.1.10으로 강제 지정
  • 외부 도메인을 내부 IP로 위장(스플릿 호라이즌 DNS)
  • 광고 도메인을 0.0.0.0으로 보내 차단

4-5. Domain Overrides (도메인 오버라이드)

특정 도메인 전체의 질의를 별도의 DNS 서버로 보냅니다.

  • 예: company-internal.com 도메인 질의는 사내 Active Directory DNS(10.0.0.5)로 전달
  • 외부에서 해석할 수 없는 사내 도메인을 처리할 때 필수

5. DNS 처리 흐름 — 전체 그림

클라이언트(PC)가 mail.company.local을 질의했을 때 pfSense에서 일어나는 일:

[클라이언트]
    │ "mail.company.local 알려줘"

[pfSense DNS Forwarder/Resolver]

    ├─ 1. Host Overrides에 있는가?      → 있으면 즉시 응답

    ├─ 2. Domain Overrides에 해당하는가? → 해당 DNS로 전달

    ├─ 3. DHCP 등록 호스트인가?          → DHCP 정보로 응답

    └─ 4. 위 모두 해당 없음


       [System > General Setup의 DNS Servers]


       외부 DNS (8.8.8.8 등)로 질의


       응답을 받아 클라이언트에 전달

6. 실전 체크리스트

✅ 가정/소규모 사무실 권장 설정

  • [ ] DNS Resolver 사용 (기본값 유지)
  • [ ] System > General Setup에 보조 DNS로 1.1.1.1, 8.8.8.8 정도 등록
  • [ ] DNS Server Override는 환경에 맞게 결정
  • [ ] 사설 IP 역방향 조회 외부 전달 차단

✅ 사내 서버가 있는 환경

  • [ ] DNS Forwarder 또는 DNS Resolver 활성화
  • [ ] DHCP Registration + Static DHCP 체크 → 호스트네임 자동 등록
  • [ ] 주요 사내 서버는 Host Overrides에 명시적으로 등록
  • [ ] Active Directory가 있다면 Domain Overrides로 AD DNS에 전달

✅ 보안 강화 시

  • [ ] DNS Forwarder의 Interfaces에서 WAN 제외 → 오픈 리졸버 방지
  • [ ] Do not forward private reverse lookups 체크
  • [ ] DNS Resolver의 DNSSEC 활성화 (해당 서비스 사용 시)

7. 자주 하는 실수 & 팁

실수결과해결
DNS Resolver와 Forwarder 둘 다 켬서비스 시작 실패하나만 활성화
WAN을 DNS 수신 인터페이스에 포함오픈 리졸버 → DDoS 악용 위험LAN/Localhost만 선택
DNS Server Override 체크된 채로 외부 DNS 지정ISP DNS가 우선되어 무시됨체크 해제
Listen Port를 53 외로 변경클라이언트가 DNS 못 찾음기본 53 유지
호스트네임에 점(.) 누락Require domain 체크 시 해석 실패체크 해제 또는 FQDN 사용

8. 핵심 요약 (한 줄 정리)

  1. pfSense DNS는 DNS Resolver(재귀, 기본) 또는 DNS Forwarder(전달) 중 하나로 동작한다.
  2. DNS 설정 위치는 여러 곳이며 Host → Domain → DHCP → System DNS 순으로 우선 적용된다.
  3. 외부 대체 DNS는 System > General Setup에서 지정하고, DNS Server Override 체크를 해제해야 강제 적용된다.
  4. DNS Forwarder는 DHCP 호스트 자동 등록과 사내 DNS 매핑(Host/Domain Override)에 매우 유용하다.
  5. WAN을 DNS 수신 인터페이스로 두지 말 것 — 보안상 치명적.