목차
1. 시험환경 설명
아래는 dnsmasq를 설치할 로컬 DNS 서버 시험 환경입니다.
우분투 20.04 LTS를 사용하고 있습니다. 만약 아래 예제를 수행할 운영체제가 윈도우 환경이라면 리눅스를 우선 가상머신과 같은 환경에 설치한 후 수행해주세요.
DNS 혹은 로컬 라우팅 등 서버는 대부분 리눅스 운영체제에서 지원됩니다.
윈도우도 지원할 수 있으나 방법이 복잡하여 초보자가 구성하기 어려움이 있습니다.
운영체제: Ubuntu 20.04.1 LTS x86
커널: 5.15.0-75-generic
메모리: 16G
디스크: 1T
2. DNS 53 포트 사용중 확인 및 서비스 중지
아래와 같이 sudo 명령을 사용하여 관리자 권한으로 53번 포트 서비스가 동작중인지 확인합니다.
53포트는 일반적으로 DNS 관련 서비스 포트로 사용됩니다.
우리가 네이버 홈페이지를 들어가기 위해서 naver.com 과 같은 도메인을 게이트웨이에 요청하면 53 즉, DNS 쿼리를 통해 해당 서버의 아이피 주소를 찾을 수 있습니다.
하지만 오늘 우리는 직접 로컬 DNS 서버를 구성하기 위함이 목적이기 때문에 해당 서비스 포트가 이미 실행되어있다면 서비스를 중지합니다.
$ sudo ss -lp "sport = :domain"
위 예제에서는 이미 53번 포트에 다른 서비스가 동작중입니다.
따라서 아래 명령을 수행하여 서비스를 중지합니다.
$ sudo systemctl disable systemd-resolved
$ sudo systemctl mask systemd-resolved
$ sudo systemctl stop systemd-resolved
3. dnsmasq 설치
이제 로컬 DNS 서버를 구성할 수 있도록 도와주는 dnsmasq를 설치합니다.
우분투 레포지토리를 통해 해당 패키지를 다운로드 할 수 있습니다.
설치와 동시에 서비스가 동작하기때문에 정책을 수정한 후에 서비스 재시작이 필요합니다.
또한, 위의 2번 과정에서 기존 53번 포트 서비스를 중지하지 않았다면 문제가 생길 수 있으므로 반드시 기존 서비스를 중지하고 진행합니다.
$ sudo apt-get install dnsmasq
4. 로컬 도메인 및 아이피 설정(hosts)
이제 우리가 흔히 알고있는 /etc/hosts 파일을 수정합니다.
해당 파일에는 로컬망에서 내 컴퓨터에서 특정 도메인을 찾을 때, 해당 도메인이 어떤 아이피 주소를 가진 서버인지? 를 판단하게 해줍니다.
우리가 방금 설치한 것은 DNS 서버입니다.
즉, 다른 사용자가 우리에게 naver.com 이 누구냐? 어떤 아이피냐? 라고 물으면 우리가 가지고 있는 이 hosts파일을 참고하여 아이피주소를 알려주는 역할을 하는 것입니다.
그러기 위해서는 바로 이 정책 파일을 수정하여야 합니다.
이 파일은 시스템 파일이기때문에 반드시 아래와 같이 sudo 명령으로 편집해야합니다.
본 예제에서는 naver.com이 어떤 아이피인지 물어봤을 때, 나 자신의 아이피인 localhost로 알려주도록하겠습니다.
또한 nate.com의 경우는 172.16.5.5 라는 아이피를 가졌다고 응답하도록 설정하겠습니다.
$ sudo vim /etc/hosts
...
localhost naver.com
172.16.5.5 nate.com
...
다음 포스팅에서는 실제 이 정책을 통해 DNS 쿼리 시험을 수행하여 우리가 설정한 아이피 주소가 잘 반환되는지 확인해보도록 하겠습니다.
2023.07.29 - [Linux] - [Linux] 우분투 로컬 DNS 서버 구축하기 - 2(DNS 쿼리 설정 및 테스트)