OpenWrt ddns 설치 및 설정

OpenWrt 라우터에 ddns를 설치하고 설정하는 방법을 다룹니다

ddns

여러 ddns 중에서 넷기어 라우터 기본 ddns인 mynetgear.com(noip.com)와 대중적?으로 많이 쓰이는 duckdns.org, 자기 소유의 도메인이 있는 경우 사용할 수 있는 cloudflare.com, domains.google.com 설정 예를 설명합니다. OpenWrt는 20-30개 정도되는 많은 ddns를 지원합니다. 기존에 쓰던것 있으면 그것 쓰면 되고 없다면 duckdns 추천합니다.

duckdns

duckdns.org에 로그인하여 token과 내가 설정한 host(subdomain)를 확인합니다. 처음 duckdns에 가입했다면 host(subdomain)을 정하세요.

duckdns ddns

라우터에 ssh로 접속해 ddns와 https 지원을 위해 ca-certificates, wget 또는 curl 패키지를 다운받습니다.

opkg update
opkg install luci-app-ddns ca-certificates ca-bundle wget curl

duckdns.org에 설정한 host가 myhost.duckdns.org 이고 token이 'sjsjsjsj-iiiiaiia-zizizizi-ddpaqq-oiiajaja'라면 /etc/config/ddns화일을 아래와 같이 설정합니다.(이러한 설정은 luci를 통해서도 할 수 있습니다.)

...
config service 'duckdns'
        option service_name 'duckdns.org'
        option use_ipv6 '0'
        option lookup_host 'myhost.duckdns.org'
        option domain 'myhost'
        option password 'sjsjsjsj-iiiiaiia-zizizizi-ddpaqq-oiiajaja'
        option interface 'wan'
        option ip_source 'network'
        option ip_network 'wan'
        option use_https '1'
        option cacert '/etc/ssl/certs'
        option enabled '1'
Code language: Lua (lua)

설정을 마친 후 ddns 데몬을 재시작 합니다.

/etc/init.d/ddns restart

mynetgear.com (noip.com)

넷기어 라우터 사용자의 경우 정펌의 ddns는 noip.com와 제휴하여 host.mynetgear.com의 주소로 ddns를 지원합니다. 기존 ddns를 그대로 사용하려면 ddns설정을 위해 ssh로 접속해 아래처럼 패키지를 다운받습니다. (설치하는 패키지는 duckdns와 동일합니다.)

opkg update
opkg install luci-app-ddns ca-certificates ca-bundle wget curl

noip.com 웹페이지에 접속하는 id(이메일 주소)와 password 그리고 설정한 host를 이용해 /etc/config/ddns를 수정합니다. id : myname@mymail.com, password : strongpassword, host가 myhost.mynetgear.com이라면 아래와 같이 설정합니다. (이러한 설정은 luci를 통해서도 할 수 있습니다.)

...
config service 'mynetgear'
        option update_url 'http://[USERNAME]:[PASSWORD]@dynupdate.no-ip.com/nic/update?hostname=[DOMAIN]&myip=[IP]'
        option use_ipv6 '0'
        option use_syslog '2'
        option lookup_host 'myhost.mynetgear.com'
        option domain 'myhost.mynetgear.com'
        option username 'myname@mymail.com'
        option password 'strongpassword'
        option interface 'wan'
        option ip_source 'network'
        option ip_network 'wan'
        option use_https '1'
        option cacert '/etc/ssl/certs'
        option enabled '1'
Code language: Lua (lua)

설정을 마친 후 ddns 데몬을 재시작 합니다.

/etc/init.d/ddns restart

cloudflare

mynetgear.com이나 duckdns.org와 다르게 cloudflare의 ddns를 이용하려면 자기 소유의 도메인이 필요합니다. (이미 등록한 도메인이 없다면 굳이 돈주고 도메인 사서 라우터에 dns 연결할 필요는 없습니다. 기존에 도메인을 보유하고 있어서 자신의 도메인을 사용하려는 분에게 해당됩니다.)

  1. 예시)
    • 소유 도메인 : qquack.org
    • ddns를 이용할 host : myhost.qquack.org
    • cloudflare 로그인 계정(이메일) : myname@mymail.com
    • cloudflare grobal api key : sdfsmdkfkskdzjk1128s78dsdu2qw88 (계정정보에서 확인 가능)
  2. 먼저 cloudflare.com에 로그인하고 dns설정 페이지에서 레코드 추가를 눌러 dns레코드를 추가합니다.
    • type : A
    • Name : myhost
    • ipv4 address : 192.168.1.1 (아무 아이피를 일단 넣습니다.)
    • TTL : auto
    • proxied : off (프록시 기능은 nslookup으로 ip를 확인할 경우 도메인의 실제 ip를 보여주는게 아니고 프록시된 cloudflare의 ip를 보여주는 보안기능입니다. http가 아닌 외부에서 ssh로 접속을 위해서는 off(회색 아이콘)로 해야 합니다. openwrt에서 직접 on/off하는 기능은 확인이 안되네요.)
    • save
  3. 도메인을 구입한 경우 도메인등록기관(도메인 구입처)에 cloudflare.com에서 알려주는 네임서버로 네임서버주소를 변경합니다.
cloudflate dns

라우터에 ssh로 접속해 다음 패키지를 다운 받습니다.

opkg update
opkg install ddns-scripts_cloudflare.com-v4 luci-app-ddns ca-certificates ca-bundle wget curl

/etc/config/ddns 화일을 다음과 같이 수정합니다.(luci를 통해서도 할 수 있습니다.)

...
config service 'cloudflare'
	option service_name 'cloudflare.com-v4'
	option lookup_host 'myhost.qquack.org'
	option domain 'myhost@qquack.org'
	option username 'myname@mymail.com'
	option password 'sdfsmdkfkskdzjk1128s78dsdu2qw88'
	option use_https '1'
	option cacert '/etc/ssl/certs'
	option ip_source 'web'
	option ip_url 'http://checkip.dyndns.com'
	option ip_network 'wan'
        option enabled '1'
Code language: Lua (lua)

ddns 데몬을 재시작 합니다.

/etc/init.d/ddns restart

domain.google

cloudflare와 같이 자기 소유의 도메인이 필요합니다.

  1. 예시)
    • 소유 도메인 : qquack.org
    • ddns를 이용할 host : myhost.qquack.org
    • username : jRcpKKgHy9lRbrJh (사용자 인증정보보기에서 확인)
    • password : PCAJDjum36INXq3w (사용자 인증정보보기에서 확인)
  2. 구글 도메인에 로그인하여 해당 도메인의 설정페이지의 동적 dns 관리에서 호스트를 추가합니다.
  3. 사용자 인증정보보기를 눌러 랜덤으로 생성된 username, password를 확인합니다. (한참의 시간이 흘러야 사용자 인증정보보기가 보이더군요.)

라우터에 ssh로 접속해 다음 패키지를 다운 받습니다.

opkg update
opkg install luci-app-ddns ca-certificates ca-bundle wget curl

config service 'google'
        option service_name 'google.com'
        option use_ipv6 '0'
        option lookup_host 'myhost.qquack.org'
        option domain 'myhost.qquack.org'
        option username 'jRcpKKgHy9lRbrJh'
        option password 'PCAJDjum36INXq3w'
        option interface 'wan'
        option ip_source 'network'
        option ip_network 'wan'
        option use_https '1'
        option cacert '/etc/ssl/certs'
        option enabled '1'
Code language: Lua (lua)

ddns 데몬을 재시작 합니다.

/etc/init.d/ddns restart

참고사이트

6 thoughts on “OpenWrt ddns 설치 및 설정”

  1. 다른공유기 아래에 무선으로 openwrt를 연결해서 쓰려고 하는데
    상위에 있을때는 ddns가 잘 작동하다가 아래로 연결하니 작동하지 않네요.

    응답
    • 공유기는 외부ip와 내부ip를 갖는데 ddns는 외부ip(wan ip)와 매칭되고 또한 공인ip여야 합니다.
      따라서 첫번째 공유기에서만 ddns가 작동되며 두번째 공유기는 첫번째 공유기의 내부ip주소중에서 하나이거나 다른네트워크 대역를 선택하더라도 결국 공인ip가 아닌 사설ip이므로 ddns가 작동하지 않습니다.
      외부에서 두번째 공유기에 접근하려면 첫번째 공유기에서 포트포워딩을 설정해야 합니다.
      이와 관련된것은 포트포워딩 글을 참고하시고
      또한 2대의 공유기가 다른 네트워크 대역을 가진다면 라우팅관련들을 참고하세요.

      응답
  2. option ip_source ‘network’
    option ip_network ‘wan’
    대신에
    option ip_source ‘web’
    option ip_url ‘http://ipv4.wtfismyip.com/text’
    로 하니 잘 작동되네요. 도움 주셔서 감사합니다.

    응답

Leave a Comment