집에 웹서버나 NAS, FTP서버, 혹은 집안을 감시(?)하기위한 웹캠을 설치하기 위해 라즈베리파이 또는 구형 pc, 사양이 떨어지는 노트북, NAS서버용 임베디드 서버 등을 설치해 놓고 가정용 인터넷을 연결하는 경우가 많이 있다. 이런 경우 웹서버 또는 개인용 서버를 외부에서 접속하기 위해서는 당연히 인터넷 주소가 있어야 하는데 현재 서비스되는 대부분의 인터넷은 접속시 주소를 할당받는 (가끔은 접속중에 접속이 끊기고 새로운 주소가 할당되기도 하는) 방식이다 보니 내 서버의 인터넷 주소가 그 때 그 때 달라진다. 즉, 인터넷 서비스 제공업자가 할당받은 인터넷 주소를 다른 인터넷 사용자들과 공유하며 필요할 때 하나씩 받아서 쓰는 형태다.
그렇다보니 웹서버, FTP서버 등에서 필요한 주소가 확정적(Static)하지않고 동적으로 변(Dynamic)하여 외부에서 정상적인 접속을 하려면 고정 주소가 추가로 필요하다.(내 주소가 168.126.xx.xx라서 학교에서 그 주소로 접속했더니 그 새 그 주소를 다른 사람이 쓰고 있는 경우가 발생한다)
이 경우 인터넷 서비스제공업체에서 추가적인 비용을 받고, 또는 별도의 상품으로 고정 주소를 할당해 주기도 하는데 간단한 서비스 또는 시험적인 개인 용도의 웹서버, NAS서버에 돈을 더 내기는. .
이 때 이용할 수 있는 것이 DDNS이다. DDNS란 dynamic DNS로 인터넷 주소를 숫자형태가 아닌 이름 형태로 전환해 주는 네이밍 서비스(DNS:Domain Naming Service)를 동적으로 사용할 수 있도록 해 주는 서비스다.
DNS
원래 우리가 사용하는 인터넷 주소 서비스는 168.126.xx.xx 등과 같이 할당된 주소를 입력해야하는데 이 숫자로 된 주소를 모두 기억할 수 없어서 도메인 명과 호스트 명을 등록해 놓고 이름을 숫자로 전환해 주는 방식을 사용하고 있다.
예를 들어 jeus.fsquare.co.kr과 같이 주소창에 입력을 하면 이 주소는 내 인터넷에 등록된 네임서버 주소에 질의를 한다. 도대체 jeus.fsquare.co.kr이라는 이름의 서버는 주소가 몇번이지?하고. 그러면 내 네임서버는 이 정보가 있으면 바로 응답을 해 주고, 없으면 상위 네임서버(주로 최상위 도메인 관리 기관:루트 도메인서버)에 다시 질의를 하면 이 서버에서 대답해 주거나 이 서버에서 fsquare.co.kr이라는 도메인 서버의 주소를 확인하고 그 도메인 서버에 다시 질의를 던진다(fsquare.co.kr도메인 소유자는 이 도메인의 네임서버를 반드시 등록해야 한다). “어이, jeus.fsquare.co.kr의 주소는 몇번이지?”하고.
이 때 도메인 관리자가 도메인 서버를 운용하고 서버주소를 일일이 등록하고 관리해주었다면 바로 서버주소를 응답해 주어 서비스 접속자가 jeus.fsquare.co.kr의 주소를 알게되어(이 과정은 컴퓨터가 0.5초 내로 대신 수행해주어 사용자는 눈치채지 못한다) 그 주소로 웹 요청을 던진다. 만약 도메인서버를 관리하지 않거나 호스트를 등록해 두지 않았으면 그런서버는 없다는 대답을 토해낸다.
DDNS
그런데 다시 우리의 고민인 가정용 웹서버 구축으로 돌아간다면, 우리가 도메인 네임서버를 운용하고 별도의 관리도 해야 한다는 문제가 생긴다. 도대체 네임서버는 또 뭐고 어떻게 관리해? 거기다 집에서 접속할 때 마다 주소가 새로 바뀌는데 그럼 그걸 매번 관리해 주어야 해??
이 질문에 대한 대답이 DDNS(Dynamic Domain Naming Service) 이다. 동적으로 바뀌는 주소를 자동으로 등록하고 DNS를 유지, 관리해 주는 서비스다. 여기서 핵심은 동적으로 주소를 DNS에 업데이트해주고 관리하는 서비스란 점이다.
외국의 경우 일찌기 이런 서비스가 있어서 가정용 라우터에 등록하여 사용할 수있도록 해 주는 서비스가 있어왔다. 국내에도 CODNS나 DNSEVER 등의 서비스 등이 있으나 일부 서비스의 경우는 개인 도메인을 등록하기위해 비용을 지불해야 하는 경우가 있어 자세히 살펴보고 사용해야 한다.
필요한 서비스는?
단순히 주소 매핑이 필요한 경우 해당 서비스를 신청하면 JEUS.CODNS.COM, JEUS.DYNDNS.COM과 같이 서버명을 자기가 원하는 호스트명을 등록하고(도메인은 서비스 제공업체의 도메인을 사용) 프로그램을 설치하면 외부에서 집으로 접속할 때 간단히 이름 주소로 접속이 된다.
자기가 가진 도메인명까지 등록하고 사용하기 위해서는 별도의 비용을 지불하거나 dnsever의 서비스를 사용하면 된다. Dnsever도 무료로 제공하다가 현재는 유료로 전환하고 있으나 개인용 서버의 경우 아직 무료이다.(트래픽이 작은 경우, 배너를 걸어주는 경우 등의 프로모션을 통해)
사용 방법은 간단하다. Dnsever.com에 접속하여 프로그램을 다운 받아 이 프로그램이 서비스를 제공할 서버에서 계속 돌아가게 해 주기만 하면 된다. 추가 서버나 추가 서비스용 가상 호스트들은 dnsever의 웹에서 먼저 등록해 주고 내 Pc에서 추가 설정해 준다)
물론 환경 설정도 간단하다. 설치 프로그램이 계속 돌아가야 하는 이유는 내 서비스 제공 서버의 주소를 지속적으로 dnsever서버에 업데이트 해주기 위해서다.
즉 프로그램이 계속 dnsever서버에 내 서버 주소를 자동 업데이트 해주기 때문에 외부에서 내 웹서버에 이름 주소로 쉽게 접속이 가능한 것이다. UNIX(Linux)시스템에서는 crontab에 넣어주면 일정한 시간 마다 자동 실행된다.
유료화
사실 이런 서비스를하기위해서는 많은 서버(앞에서 말한 네임서버)를 유지해야하고 엄청난 트래픽을 감당할 네트웍을 유지해야 하기 때문에 무료 dns서비스를 제공하는 업체로서는 많은 비용이 발생한다. 따라서 당연히 비용을 지불하는 것이 옳지만 소규모 가정용, 개인용, 테스트용 등을 위해 단 몇천원이라도 지불해야한다면 주머니 사정이 가벼운 우리나라 영세 사업자나 학생들은 발길을 돌릴 것이다.
Dnsever는 사실 다른 사이트에 비해 정보업데이트도 빠른 편이며 웹서버의 정보 갱신도 잘 되는 편이라 추천할 만하다.
앞으로 fsquare와 형제 사이트에서 제공할 몇가지 서비스가 폭발적인 인기를 누린다면 당연히 비용을 지불하겠지만 아직은 때가 아니므로 무료로 계속 dnsever의 서비스를 사용할 계획이다.