DNS와 NameServer: 개념 이해 및 리눅스 설정 가이드¶
인터넷의 이정표 역할을 하는 DNS(Domain Name System)와 이를 운영하는 NameServer의 개념, 차이점, 그리고 리눅스 환경에서의 설정 방법을 정리합니다.
1. 기본 개념 정의¶
1.1 DNS (Domain Name System)¶
- 정의: 사람이 읽기 쉬운 도메인 이름(예:
google.com)을 컴퓨터가 이해하는 IP 주소(예:142.250.190.46)로 변환해주는 분산형 데이터베이스 시스템입니다. - 비유: 전화번호부와 같습니다. 이름(도메인)을 찾으면 번호(IP)를 알려줍니다.
1.2 NameServer (네임서버)¶
- 정의: DNS 시스템 내에서 실제 도메인 정보를 저장하고 질의에 응답하는 서버(S/W 및 하드웨어)를 말합니다.
- 역할: "이 도메인의 IP는 무엇인가?"라는 질문에 대해 자신의 데이터베이스를 찾아 답변을 주는 주체입니다.
2. DNS vs NameServer 차이점¶
| 구분 | DNS | NameServer |
|---|---|---|
| 성격 | 시스템 및 프로토콜 (개념) | 실제 정보를 가진 서버 (실체) |
| 범위 | 전 세계적인 거대한 변환 체계 | DNS 체계를 구성하는 개별 서버 단위 |
| 예시 | "DNS를 통해 도메인을 찾는다" | "가비아 네임서버에 정보를 등록한다" |
3. 리눅스 DNS 설정 방법¶
리눅스에서 DNS 서버를 지정하는 방법은 배포판과 버전에 따라 크게 3가지로 나뉩니다.
3.1 /etc/resolv.conf (가장 기본적인 방법)¶
가장 원시적이고 직접적인 설정 파일입니다.
3.2 systemd-resolved (최신 Ubuntu/CentOS 등)¶
현대적인 리눅스 배포판은 네트워크 매니저가 /etc/resolv.conf를 자동 관리하므로, 직접 수정하면 재부팅 시 초기화될 수 있습니다.
- 설정 경로:
/etc/systemd/resolved.conf수정 후 서비스 재시작:systemctl restart systemd-resolved
3.3 netplan (Ubuntu 18.04+)¶
YAML 파일을 통해 네트워크 설정을 관리합니다.
- 경로:
/etc/netplan/*.yaml적용:netplan apply
4. 설정 시 주의사항 (Best Practices)¶
- 우선순위 주의:
nameserver는 위에서부터 순서대로 질의합니다. 첫 번째 서버가 응답이 없어야 두 번째 서버로 넘어갑니다. (응답은 오는데 결과가 '없음'인 경우는 다음 서버로 가지 않습니다.) - 자동 초기화 방지:
/etc/resolv.conf상단에Generated by...문구가 있다면 직접 수정하지 마세요. NetworkManager나 Netplan 설정을 통해 변경해야 합니다. - 이중화 필수: 반드시 2개 이상의 DNS 서버를 설정하세요. (Master/Slave 구조)
- Local Caching DNS: 빈번한 질의가 발생하는 서버라면
nscd나unbound등을 사용하여 로컬 캐싱을 적용해 성능을 높이는 것이 좋습니다.
5. 주요 확인 명령어¶
dig google.com: 상세한 DNS 질의 과정을 확인.nslookup google.com: 간단하게 IP 변환 결과 확인.host -t ns google.com: 해당 도메인의 네임서버(NS) 레코드 확인.