본문 바로가기

라즈베리파이

라즈베리파이4 설정(5) - DNSZi에서 DDNS IP주소 자동 갱신하기

지난 글에서 DNSZi를 이용하여 도메인 관리하는 방법에 대해 간단히 언급 했었다.

https://blog.codesarang.com/10

 

DNSZi에서 내 도메인 관리하기

각자 본인의 도메인을 구매 하였고, 도메인 주소를 이용하여 내 서버로 연결을 원한다면 도메인과 IP주소를 매핑 시켜 주어야 한다. 대부분의 도매인 구매 사이트는 사용자의 도매인 관리를 위한 부가 기능을 제공..

blog.codesarang.com

DNSZi를 사용하여 도메인을 관리하는 이유는 집 IP 주소가 바뀌어도 연결되어 있는 도메인 주소의 A레코드(IP주소)를 자동 갱신되도록 하기 위해서이다.

 

그럼, 이번에는 라즈베리파이에서 내 도메인에 연결된 IP 주소를 어떻게 자동 갱신 시킬 수 있는지 그 방법에 대해 설명하도록 하겠다.

1. DDNS 업데이트 URL 확인 방법

보유하고 있는 도메인의 IP주소 자동 갱신 기능(이하 DDNS 기능)을 이용하기 위해서는 아래 그림에서 처럼

- A레코드에 도메인이 등록되어 있어야 하고

- 등록된 도메인이 DDNS로 설정되어 있어야 한다.

 

해당 정보는 DNSZi에서 "도메인 정보 보기"에서 확인할 수 있다. 

 

아래 그림의 의예에서 blog.mytestdomain.com과 www.mytestdomain.com 두 개의 도메인이 등록되어 있으나, www.mytestdomain.com만 DDNS로 설정되어 있는 것을 볼 수 있다.

따라서, 2개 도메인 중 www.mytestdomain.com 만이 DDNS 설정이 가능하다.

 

도메인이 등록되어 있다면 우선, "고급관리" 메뉴로 이동한다. 라즈베리파이의 운영체제는 리눅스를 기반으로 하므로, "리눅스용 DDNS 자동 업데이트 방법" 버튼 클릭 후 "2. /etc/crontab" 링크를 재 클릭한다.

 

참고로 crontab은 리눅스 운영체제에서 주기적으로 특정 명령을 자동 실행해 주는 기능이다.

 

DNSZi의 DDNS 설정을 위해서는 아래 그림에서 처럼 두 가지 명령을 사용할 수 있다. 둘 중 어느것을 사용해도 무방하나 여기서는 wget 명령을 사용할 예정이다. "#wget 사용시" 아래 줄에 있는 명령을 복사(? 기록?)해 두도록 한다.

 

2. 라즈베리파이 설정

이제 라즈베리파이에 DDNS 기능을 설정할 차례이다. crontab 명령은 일반 사용자 및 root 모두 수행 가능하다. 그러나 root일 경우에만 실행할 수 있는 명령이 있으므로 여기서는 root 권한에서 수행한다. "sudo -i" 혹은 "sudo su" 명령을 이용하여 root 사용자로 이동 후 아래 명령을 수행한다.

crontab -e

최초로 "crontab -e" 명령을 수행하면 아래처럼 편집기를 선택하는 명령이 나온다. 본인이 선호하는 편집기를 선택하면 되며, 디폴트 설정값은 1번 nano 에디터이다.

 

이제 편집기에서 아까 복사해 두었던 명령을 그대로 붙여넣기 한다. 여기서 주의할 점은 wget 명령 경로를 "/usr/local/bin/wget"에서 "/usr/bin/wget"으로 수정해 주어야 한다. 경로를 수정해 주지 않을 경우 제대로 명령 수행이 되지 않는다.

이제 저장하고 나가기만 하면 매 5분마다 DDNS 갱신이 자동으로 이루어 진다. 이로서 집 IP 주소가 변경되어도 외부에서 내 도메인 주소로 라즈베리파이에 접속 할 수 있게 되었다.

참고로 crontab에서 "*/5 * * * *"는 매 5분마다 명령을 수행한다는 의미이다. 

 

그런데 굳이 5분마다 DDNS를 갱신할 필요가 있을까? 나의 경우 매시간 30분(한시간에 한번) 및 재부팅시에 DDNS 갱신이 이루어 지도록 설정하였다.

참고로 "@reboot" 설정은 root 권한의 crontab 설정에서만 동작한다.

 

이상으로 라즈베리파이에서 DDNS 셋팅 방법에 대해 설명을 마치도록 한다.

언제 기회가 되면 crontab 설정 방법에 대해서도 추가 포스팅을 하도록 하겠다.