ASUS 공유기 멀린펌에서 DNSEver 커스텀 DDNS 설정하기

ASUS 공유기에서는 기본적으로 asuscomm.com 도메인으로 DDNS를 지원하고 있습니다만, 개인 도메인을 소유하고 있는 경우(제 경우는 lovekey.pe.kr)에는 굳이 저 못생긴 도메인을 쓰고 싶지 않죠. 저는 DNSEver를 이용해서 제 개인 도메인에 DDNS를 등록하여 사용하고 있습니다.

DNSEver는 윈도우용 DDNS 클라이언트를 제공하고 있고, 기본적으로 윈도우 클라이언트로도 사용상에 문제는 별로 없지만, PC에서 VPN을 사용할 시 DNSEver DDNS 클라이언트가 VPN으로 변경된 IP 주소를 DDNS로 집어와서 DDNS가 꼬이는 경우가 있습니다(…)

그래서 PC에서 VPN을 사용하건 뭐건 DDNS가 영향 받는 것을 방지하기 위해, 윈도우 PC가 아닌 ASUS 공유기에서 직접 커스텀 DDNS를 설정할 수 있는지 시도해보았고, 리눅스 지식이 전무한 저는 약 4시간 동안 갖은 삽질 끝에 성공하였습니다(…)

DNSEver 유료화 이후 많이들 떠나가서 별로 수요가 없을지도 모르겠지만, 저같은 삽질을 할 사람이 혹시나 있을까 싶어 상세히 기록해둡니다.

준비물로는,

  1. 멀린펌웨어가 설치된 ASUS 공유기(저는 AC3100 사용중입니다.)
  2. DNSEver DDNS 인증 코드(DNSEver 로그인->상단메뉴 “내 정보”->좌메뉴 “DNS 환경설정” 에서 확인 가능)
  3. PuTTY

가 필요합니다.

그리고 당연한 전제조건으로, DNSEver 사이트에 도메인을 등록하고, 호스트 IP(A) 추가 메뉴에서 해당 도메인을 추가해놓아야 합니다.

DNSEver 사이트에서의 설정이 끝나셨다면, 다음은 공유기 설정입니다.

우선, 멀린펌의 커스텀 DDNS 기능을 사용하기 위해선 JFFS 파티션을 활성화시키는것이 필수입니다. 그리고 JFFS 파티션에 스크립트를 작성하기 위해서는 SSH 접속이 필요하고요.

공유기 설정 페이지에서 고급 설정 → 관리 → 시스템 탭에서, Enable JFFS custom scripts and configs와 Enable SSH 설정을 켜줍니다. 만약 JFFS 파티션을 이번에 처음 만드시는 경우에는 Format JFFS partition을 “예”를 고르시고 재부팅 한 번 해주셔야 할 겁니다.

상기 설정이 완료되면, PuTTY를 이용해 공유기에 SSH로 접속하여 로그인 한 후,

cd /jffs/scripts/
vi ddns-start

를 입력하시면 공유기 jffs 파티션의 scripts 폴더에 ddns-start라는 이름의 빈 파일이생성되고 vi 에디터로 열립니다.

저같은 리눅스 문외한이시라면 vi 에디터 사용법이 난해하실텐데요, 일단 열리자 마자의 상태에서는 문서를 편집 할 수 없습니다. 키보드 i를 누르시면 편집 모드로 들어가 문서 편집이 가능해집니다.

문서 편집이 가능해지면, 아래 스크립트를 입력하시면 됩니다. 리눅스 문외한인 제가 여기저기 인터넷 돌아다니며 사혼의 구슬조각 모으듯 여러 정보를 종합하여 어떻게 어떻게 겨우 ASUS 공유기 멀린펌에서 제대로 동작하도록 작성한 스크립트입니다(…)

#!/bin/sh

URL=$(wget -O - --http-user=사용자ID --http-passwd=인증코드 http://dyna.dnsever.com/update.php?host[등록할 도메인 주소])

result=$(echo $URL | sed -n 's/.*host.*code=\"\([^\"]\+\).*/\1/p')

if [ $result == "" ]
    then
    result=$(echo $URL | sed -n 's/.*code=\"\([^\"]\+\).*/\1/p')
fi

case $result in
    700|701|720|721)
        /sbin/ddns_custom_updated 1;;
    *)
        /sbin/ddns_custom_updated 0;;
esac

3번째 줄의 사용자 ID는 DNSEver의 ID, 인증코드는 DDNS 인증코드(로그인 비밀번호가 아닙니다), 등록할 도메인 주소는 말 그대로 도메인 주소를 입력하시면 됩니다.

입력이 끝나면 대략 이런 모양새가 될 겁니다. 그럼 esc키를 누르신 후 :wq엔터를 치면 파일이 저장됩니다. 마지막으로,

chmod 707 ddns-start
chmod +x ddns-start

를 입력하여 권한을 주시면 PuTTY에서 해야 할 일은 끝입니다. 이제 ASUS 공유기 설정에서 DDNS를 켜주는 일만 남았습니다.

고급 설정 → WAN → DDNS 탭에서 DDNS 클라이언트 사용 “예”에 체크해주시고 서버는 Custom, 호스트 이름에는 등록하실 도메인 주소를 입력하시고 원하시는 업데이트 주기를 선택하시고 적용을 누르시면 DDNS 등록이 끝납니다.

“처리중” 화면에서 오래걸리고 넘어가질 않는다거나, 혹은 금방 넘어는 가지만 오류가 뜬다거나 하는 경우는, PuTTY에서 마지막에 chmod로 권한 주는 것을 잘못했거나 vi 에디터에서 ddns-start 파일을 작성할 때 뭔가 잘못했을 가능성이 큽니다. 다시 한 번 잘 확인해 보세요.

실제로 DDNS가 잘 작동 하는지 확인하시려면, DNSEver의 호스트 IP 관리에서 적당히 아무 IP나 입력한 다음 WAN의 DDNS 탭에서 적용 버튼을 눌러보시고 다시 확인하시면, 제대로 된 IP로 바뀌어있는 것을 확인할 수 있습니다.

하고 보니 간단한 작업인데 이걸 삽질하면서 알아내느라 4시간…이나 걸렸네요;

별로 수요도 없을 것 같고 애초에 한참 방치했던 블로그라 볼 사람도 없겠고, 저 스스로가 잊지 않기 위해 기록용으로 작성한 글이긴 하지만, 누군가에게는 도움이 됐으면 좋겠네요. 혹시라도 댓글로 질문하시면 제가 아는 범위 안에서 답변 드리도록 하겠습니다.

주요 참고 페이지
asuswrt-merlin DDNS Sample Scripts
ASUS 공유기 Custom DDNS (CloudFlare DDNS) 성공기
Synology DDNS에서 DNSEver 사용하는 2가지 방법 (사용자 DDNS 업체 사용하기)

1 댓글

답글 남기기

이메일 주소를 발행하지 않을 것입니다.