본문 바로가기

개발환경

DNS 관리하기 – DDNS 와 함께

728x90
반응형

사무실이나 집의 네트워크를 이용해서 홈페이지, 서버 등의 서비스를 하려고 한다면 필수적으로 DDNS와 DNS 에 대해서 알아야 해.

보통 사무실, 집에 들어오는 네트워크 주소는 동적 IP 야. 고정 IP 의 반대말이지.

예를 들어 153.210.13.21 이라는 IP 주소가 있다고 해볼께(지금 머릿속에서 막 만들어낸 주소야). 이 IP 는 통신사에서 동적으로 할당해준 거거든. 내 인터넷모뎀이 재부팅되면 통신사는 다른 IP 주소를 할당해주도록 설계되어 있어(거의 고정되긴 하는데, 바뀔 수 있다는게 함정). 그래서 할당받은 IP 주소를 어디에 영구적으로 써먹을 수가 없는거야.

이처럼 고정적이지 않고 상황에 따라 변경되는 IP 주소를 할당받기 때문에 사무실이나 집에 서버를 두고 웹 서비스를 하려면 DDNS 를 이용해서 도메인주소로 서비스해야 해. 잠깐 용어를 정리해보는 시간을 가져볼께.

용어 정리

IP 주소 (Internet Protocol Address)

인터넷에서 각각의 네트워크 장치가 부여받은 고유 번호. 점(.) 으로 구분되는 4개의 영역(IPv4)이 주소값. 예를 들어 153.210.13.21 처럼 153 210 13 21 이 점(.) 으로 연결됨. 1개 영역은 0부터 255까지 256개(2의 8승) 값이 가능. 따라서 IPv4 (IP version 4) 주소는 총 42억 9천만(4,294,967,296)개가 가능하다. 하지만, 일부의 값이 사설 네트워크망에 사용되도록 예약되었기 때문에 실제로는 적은 갯수가 사용가능하다.

DNS (Domain Name System)

네트워크 장치에 대해서 숫자로 이루어진 IP 주소가 아니라 사람이 읽고 이해하기 쉬운 이름으로 관리하기 위한 시스템. 예를 들어 www.example.com 과 같은 도메인 이름과 IP 주소를 매핑시켜 관리함으로써 사용자가 IP 주소가 아닌 도메인 이름으로 네트워크에 접근 가능할 수 있게 한다.

DDNS (Dynamic Domain Name System)

도메인 주소와 이에 해당하는 IP 주소가 서로 연결된 정보로써 저장되어 있는 것이 DNS 인데, 이 중 IP 주소가 변경되더라도 도메인 주소만을 이용하여 변경된 IP 주소에 연결가능하도록 관리하는 시스템이다.

DDNS

다들 iptime 공유기 하나정도 사용해 봤을거야. 이 공유기를 설치하면 공유기 환경설정 화면에서 여러가지 설정들을 할 수가 있지. 그 중에 DDNS 설정 기능도 있어.

호스트이름(예를 들어 myserver)을 기록해주고 DDNS 등록 버튼을 클릭하면 myserver.iptime.org 라는 도메인을 갖게 되는거지. 그 도메인 주소를 사용하게 되면 인터넷 모뎀이 할당받는 IP 주소가 변경되더라도 이 공유기로 연결이 되거든.

이런 DDNS 관리 서비스를 제공하는 회사가 여럿 있어.

No-IP, Dynu, Duck DNS, FreeDNS 는 무료로 서비스를 제공하고 있고(물론 유료 플랜도 있지), Dyn, EasyDNS, No-IP Plus, ChangeIP 는 고급기능을 유료로 제공하고 있어.

각 서비스마다 변경될 수 있는 IP 주소를 도메인에 연결하는 핵심 기능을 포함해서 다양한 관련 기능들을 제공하고 있으니 비교해보는 것도 재미가 있겠네.

그래도 iptime.org 도메인이나 DDNS 서비스를 제공하는 회사에서 주는 도메인으로 내가 제공하는 서비스를 한다는건 좀 볼품이 없어보이긴 해. 그래서 돈을 주고 나만의 도메인을 구입하게 되는거지.

어쨌든 고정 IP 가 아니기 때문에 필수적으로 DDNS 에 가입해야 했고, 나는 FreeDNS (freedns.afraid.org) 를 선택했어.

Domain

도메인 주소를 구입하는 방법은 간단해. 가비아bluehost 등 호스팅 업체에서 내가 원하는 도메인이 구입 가능한지를 검색해보면 구입가능한 도메인 목록을 나열해주고 구입 프로세스를 진행시켜주지.

내 이름으로 도메인 주소를 검색해봤어.


seungwoo.com 은 이미 존재하기 때문에 사고싶어도 불가능하군. 보통 도메인 주소에 대한 소유권은 1년마다 갱신이 되지. 즉, 최초 구입한 후에 1년마다 도메인 비용을 추가로 지불하면서 1년단위로 갱신을 해 주어야 해.

이렇게 내가 구입한 도메인은 woohahaapss.com 이야. 내 서비스의 이름표가 되는거지.

DNS 관리

도메인을 구입하게 되면 구입 프로세스를 진행한 회사 사이트에서 제공하는 DNS 관리 기능을 사용할 수 있어. DNS 관리 기능이란게 뭐냐 하면, 도메인 주소와 해당 도메인이 가리키는 IP 주소를 연결시키는 정보를 관리하는 기능이야.

그 외에도 소유자, 관리자 설정 관리, 이 도메인을 등록시킬 네임서버 관리 등도 관리 기능에 포함되지.

그런데 어떤 이유에서인지 모르겠지만, DNS 관리 기능을 무료로 제공하는 사이트가 존재해. 예를 들면 cloudflare.com 이야. 이런 전문적인 DNS 관리 사이트가 존재한다는 건 DNS 관리 기능 외에도 전문적으로 제공할 수 있는 서비스 종류가 많다는 의미겠지.

검색해보니 cloudflare.com 말고도 Google Public DNS, OpenDNS, Quad9 등이 있네.

도메인 구입 사이트(예를 들면 가비아)에서 관리하던 도메인을 다른 사이트(예를 들면 cloudflare.com)에서 관리하기 위해서는 기존의 네임서버 주소를 변경해 주어야 해. 변경 주소는 각 사이트에서 안내해주고 있어.

나는 가비아에서 도메인을 구입했고, cloudflare.com 으로 도메인 관리를 이전하기 위해서 가비아에서 제공하는 도메인의 네임서버 관리 화면에서 cloudflare.com 이 제공하는 네임서버 주소로 변경해 주었지(cloudflare.com 에 회원가입한 후 안내에 따라야 해).

DNS 를 관리하고자 하는 사이트에서 제공하는 네임서버 주소로 변경하고나면 해당 사이트에서 DNS 를 관리할 수 있게 되지.

여기에서는 DDNS 를 관리하는 방법에 대해서만 살펴볼거야.

일단, 내 사무실 또는 집으로 들어오는 IP 주소에 대해서 DDNS 를 등록해 두어야 해. 나의 경우에는 FreeDNS 에서 mooo.com 의 서브도메인 주소 하나를 할당받아서 설정을 마쳤지. 설명하기 쉽게 예를 들어 seungwoo.mooo.com 이라는 DDNS 용 도메인을 할당받았고, 사무실 인터넷 IP 주소 211.22.43.21 이 seungwoo.mooo.com 도메인에 연결된 상태라고 가정할께.

seungwoo.mooo.com 은 곧 211.22.43.21 을 가리키게 되는데, 사무실 IP 가 변경될 가능성이 있기 때문에 DNS 관리할 때 IP 주소를 직접 사용하지 못하고, 대신 seungwoo.mooo.com 도메인을 사용해야 해.

cloudflare.com 의 DNS 관리 화면에서 DNS 레코드를 하나 등록해야 하는데, Type 은 CNAME 으로, Name 과 Target 은 각각 woohahaapps.com, seungwoo.mooo.com 으로 입력해줬어.

이렇게 등록하면 내가 구입한 도메인 woohahaapps.com 이 seungwoo.mooo.com 으로 연결되고, 다시 사무실 IP 주소로 연결되는 결과로 woohahaapps.com = 211.22.43.21 이 성립하게 되지.

DNS 관리에서 woohahaapps.com 의 서브도메인 www, wiki, git 등을 CNAME Type 으로 등록하고, Target 을 woohahaapps.com (@로 입력 가능) 으로 설정하면 www.woohahaapps.com, wiki.woohahaapps.com, git.woohahaapps.com 등의 도메인에 대해서 서비스가 가능해져.

사무실 공유기는 외부 IP 주소로 211.22.43.21 을 할당받은 상태이고, 내부 IP 대역은 192.168.219.0/24 대역으로 설정되어 있는데, 이 중에서 MicroServer 에서 동작하는 pfSense 서버가 할당받은 IP 주소는 192.168.219.254 이고, 공유기의 DMZ 기능으로 외부에서 들어오는 모든 트래픽을 pfSense 가 받을 수 있도록 설정한다면 외부 IP 주소 211.22.43.21 이 곧 192.168.219.254 (pfSense) 가 되고, pfSense 에서 포트포워딩이나 HAProxy 등을 통해서 내부 VM 이 제공하는 서비스가 외부로 연결되는 구조가 완성되는거지.

이 설명을 다시 그림으로 표현해볼께.

이렇게 MicroServer 를 사무실이나 집의 네트워크를 이용해서 서비스용 서버 시스템으로 사용할 수 있게 된건 DDNS, DNS, Domain, ESXi, pfSense 의 덕분이지.

이제 MicroServer 안의 내부 LAN 에 여러 종류의 서버 VM 을 설치하고 구성하는 일이 남았네.

반응형