Raspberry Pi의 DNS 서버

Ammar Ali 2024년2월15일
  1. Raspberry Pi의 DNS 서버
  2. Raspberry Pi에서 고정 IP 주소 설정
  3. Raspberry Pi에서 DNS 서버 설정
  4. Raspberry Pi에서 DNS 서버 테스트
Raspberry Pi의 DNS 서버

이 튜토리얼에서는 DNS를 사용하여 Raspberry Pi에서 IP 주소를 사용자 친화적인 도메인 이름으로 변환하고 컴퓨터의 DNS 요청 컴퓨팅 시간을 개선하는 방법에 대해 설명합니다.

Raspberry Pi의 DNS 서버

DNS 또는 도메인 이름 시스템은 컴퓨터가 읽을 수 있는 IP 주소를 192.168.0.1과 같은 사람이 읽을 수 있는 도메인 이름에서 webname.com과 같은 것으로 변환합니다. 우리가 웹사이트를 열려고 할 때 검색창에 이름을 입력하지만 컴퓨터는 이를 이해하지 못하고 DNS를 사용하여 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환합니다.

Raspberry Pi에서 DNS를 사용하여 IP 주소를 도메인 이름으로 변환할 수 있으며 컴퓨터에서 DNS 요청의 컴퓨팅 시간도 향상됩니다. 컴퓨터나 휴대폰을 Raspberry Pi의 DNS 서버와 연결할 수 있으며 DNS 요청을 할 때마다 Raspberry Pi의 DNS 서버는 해당 요청의 IP 주소를 결정하고 응답을 캐시 메모리에 저장합니다.

즉, 동일한 도메인을 다시 요청하면 Raspberry Pi DNS가 캐시에서 응답을 반환하여 컴퓨팅 시간을 단축합니다. 우리 컴퓨터도 같은 일을 합니다. 응용 프로그램을 처음 열고 닫을 때 컴퓨터는 이를 캐시 메모리에 저장하고 다시 실행할 때 컴퓨터는 캐시 메모리에서 응용 프로그램을 실행하여 응용 프로그램을 여는 시간을 줄입니다.

Raspberry Pi에서 고정 IP 주소 설정

Raspberry Pi에 DNS 서버를 설치하고 설정하기 전에 동적 IP 주소가 자체적으로 변경될 수 있고 항상 동일하게 유지되는 IP 주소가 필요하기 때문에 Raspberry Pi에서 고정 IP 주소를 사용해야 합니다. Raspberry Pi에서 고정 IP 주소를 설정하려면 아래 단계를 따르십시오.

IP 주소를 처리하는 DHCP 클라이언트 도메인을 사용하여 Raspberry Pi가 고정 IP 주소를 사용하도록 할 수 있습니다. Raspberry Pi의 DHCPCD 구성 파일에서 일부 설정을 변경해야 합니다.

먼저 라우터의 IP 주소 및 Raspberry Pi와 같은 정보를 가져와야 합니다. 라우터의 IP 주소를 확인하려면 터미널에서 아래 명령을 실행해야 합니다.

ip r | grep default

출력:

default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 202

첫 번째 IP 주소는 라우터의 IP 주소이며, 이 경우 10.0.2.2이며 나중에 사용되므로 기록해 두어야 합니다.

다음으로 아래 명령을 사용하여 DNS 서버의 현재 IP 주소를 가져와야 합니다.

sudo nano /etc/resolv.conf

출력:

domain Home
nameserver 127.0.0.1

위의 코드는 키보드에서 CTRL+x를 사용하여 닫을 수 있는 구성 파일을 엽니다. 위 코드의 IP 주소는 DNS 서버의 IP 주소인 127.0.0.1이며, 우리도 이를 기록해두어야 합니다.

이제 아래 명령을 사용하여 dhcpcd.conf 파일을 열어 수정할 수 있습니다.

sudo nano /etc/dhcpcd.conf

위의 명령은 DHCPCD의 구성 파일을 열며 파일 끝에 아래 코드 줄을 입력해야 합니다.

interface <eth0 or wlan0>
static ip_address=<static IP>/24
static routers=<router IP>
static domain_name_servers=<dns server IP>

위 코드의 첫 번째 줄에서 Raspberry Pi의 네트워크에 따라 이더넷의 경우 eth0, WIFI의 경우 wlan0을 작성해야 합니다. 두 번째 줄에서 라즈베리 파이에 할당하려는 IP 주소로 고정 IP를 변경해야 합니다.

세 번째 줄에는 위에서 검색한 라우터의 IP 주소인 10.0.2.2를 추가해야 합니다. 네 번째 줄에는 DNS 서버의 IP 주소를 추가해야 합니다. 위 단계에서 찾은 것과 동일할 수 있습니다. 127.0.0.1 또는 Google의 8.8.8.8과 같은 다른 DNS IP 주소입니다. .

그런 다음 CTRL+x를 누른 다음 y를 누른 다음 ENTER를 눌러 구성 파일에 대한 변경 사항을 저장해야 합니다. . sudo reboot 명령을 사용하여 Raspberry Pi를 재부팅해야 새 설정이 로드되고 Raspberry Pi가 새 고정 IP 주소를 사용하여 라우터에 연결됩니다.

Raspberry Pi에서 DNS 서버 설정

고정 IP 주소를 설정한 후 터미널에서 아래 명령을 사용하여 Raspberry Pi OS를 업데이트하고 DNS 서버를 설치해야 합니다.

sudo apt update
sudo apt upgrade
sudo apt install dnsmasq

위의 명령을 하나씩 실행해야 하며 권한을 요청하면 y를 입력하여 패키지를 설치합니다. 다음으로 dnsmasq.conf 파일을 열어 아래 명령을 사용하여 일부 설정을 수정해야 합니다.

sudo nano /etc/dnsmasq.conf

위의 명령은 구성 파일을 열며 일부 줄을 찾아 교체해야 합니다. CTRL+W를 사용하여 검색 표시줄을 열고 아래 코드 줄을 검색하여 교체할 수 있습니다.

검색 표시줄 안에 텍스트를 작성한 다음 ENTER를 눌러 찾을 수 있습니다.

찾다:

#domain-needed

다음으로 교체:

domain-needed

위의 명령은 DNS 서버가 .를 포함하지 않는 이름을 전달할 수 있도록 허용합니다. 또는 .com을 포함하고 localhost와 같은 로컬 네트워크 내부에 이름을 유지합니다.

찾다:

#bogus-priv

다음으로 교체:

bogus-priv

위의 명령은 DNS 서버가 업스트림 서버로 역방향 쿼리를 보내는 것을 중지하고 로컬 네트워크의 IP 주소가 DNS 서버로 전송되지 않습니다.

찾다:

#no-resolv

다음으로 교체:

no-resolv

위의 명령은 DNS가 업스트림 서버에 대한 구성 파일을 읽는 것을 중지합니다.

찾다:

#server=/localnet/192.168.0.1

다음으로 교체:

server=8.8.8.8
server=8.8.4.4

위의 명령은 DNS 서버가 업스트림 서버에 Google DNS 서버를 사용하도록 합니다.

찾다:

#cache-size=150

다음으로 교체:

cache-size=1000

위의 명령은 캐시 크기를 증가시켜 DNS 서버가 캐시 메모리에 저장할 요청 수를 늘립니다. 이제 CTRL+X를 사용하고 y를 입력한 다음 ENTER</를 입력하여 구성 파일에 대한 변경 사항을 저장해야 합니다. kbd> 키보드에서.

DNS 서버를 다시 시작하고 아래 명령을 사용하여 상태를 확인해야 합니다.

sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq

터미널에서 위의 명령을 하나씩 실행해야 하며 두 번째 명령은 다른 정보와 함께 활성: 활성(실행 중)과 같이 표시되며 이는 DNS 서버가 활성화되어 실행 중임을 의미합니다.

Raspberry Pi에서 DNS 서버 테스트

DNS 서버를 테스트하기 위해 아래 명령을 사용하여 설치할 수 있는 dig 도구를 사용할 수 있습니다.

sudo apt install dnsutils

설치 후 아래 명령을 사용하여 DNS 서버를 테스트할 수 있습니다.

dig ammar.com @localhost

위의 명령에서 dig 명령과 함께 @localhost를 사용하고 있으며 DNS 조회에 활용하고 아래 출력을 반환합니다.

dns 테스트

위의 명령을 다시 실행하면 위 이미지의 쿼리 시간이 줄어들어 이전 요청이 캐시 메모리에 저장되었음을 의미합니다.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - Raspberry Pi