도메인 등록과 DNS 설정
도메인은 서버의 간판이자, 한동안 떠나 있던 플레이어가 다시 찾아오는 중요한 통로다. 좋은 도메인은 짧고(너무 길면 아무도 못 외운다) 기억에 남아야 한다(Minecraft나 서버 콘텐츠와 관련 있으면 더 좋다). 약간의 돈과 후보 이름 몇 개를 준비하고 시작하자.
도메인이란
섹션 제목: “도메인이란”간단히 말해 도메인은 컴퓨터끼리 네트워크 주소를 식별하는 데 쓰는 IP 주소를, 사람이 읽고 외우기 쉬운 점으로 구분된 문자열로 바꾼 것이다.
예시:
- github.io
- 仿真教学.中国
- example.mc.12345.org
위 도메인들은 서로 다른 개수의 .으로 나뉘어 있고, 각 조각은 중국어, 영어, 숫자 등이 될 수 있다. 이 문자열과 IP의 대응 관계는 DNS 서버에 저장되어 있어서, 도메인에 접속하면 DNS를 조회해 그 도메인에 해당하는 IP 주소 레코드를 얻는다.
또한 DNS 서버는 도메인 소유자가 IP 대응 관계를 바꾸면 그 변경 사항을 기록한다.
오른쪽에서부터 .으로 나뉜 n번째 조각이 n단계 도메인이다. 아래 표는 위 예시의 도메인 단계를 나타낸다.
| 4단계 도메인 | 3단계 도메인 | 2단계 도메인 | 최상위 도메인 |
|---|---|---|---|
| github | io | ||
| 仿真教学 | 中国 | ||
| example | mc | 12345 | org |
최상위 도메인은 국가(cn은 중국)나 용도(com은 기업)를 나타낸다. 우리가 주로 신경 써야 하는 것은 2단계 도메인이다.
Minecraft 서버에서 도메인은 플레이어가 주소를 외우고 접속하기 쉽게 해 줄 뿐 아니라 서버의 콘텐츠나 이름을 대표하기도 한다.
그래서 오래 운영할 Minecraft 서버라면 자체 도메인을 사는 것을 추천한다.
적당한 도메인 업체를 찾아 도메인 검색하기
섹션 제목: “적당한 도메인 업체를 찾아 도메인 검색하기”원하는 도메인을 검색한다.
도메인 가격은 입력한 도메인의 인기에 따라 정해진다. 인기 있는 이름일수록 비싸고, 할인이 없으면 첫해도 가장 싼 가격이 그 정도다. 첫해는 아주 싸지만 이듬해 갱신 비용이 수백, 수천이 되는 도메인도 있으니 갱신 가격을 꼭 확인하자. .top을 추천한다. 이듬해 가격이 가장 싸서 오래 운영할 서버라면 무조건 추천한다.
여러 이유로 이른바 무료 도메인은 추천하지 않는다.
도메인 구매
섹션 제목: “도메인 구매”구매 후 도메인이 정상적으로 동작하기까지 보통 최대 24시간이 걸린다. WHOIS에서 도메인을 조회해 도메인 상태가 정상((ok))이면 쓸 수 있다.
DNS 레코드 설정
섹션 제목: “DNS 레코드 설정”A 레코드는 도메인을 IPv4 주소에 연결하는 DNS 레코드다(흔히 말하는 IP 레코드다).
SRV 레코드는 서브도메인에 포트 정보를 기록한다. SRV를 쓰면 주소에서 포트를 숨길 수 있다.
A 레코드
섹션 제목: “A 레코드”도메인을 IPv4 주소에 연결한다. 쉽게 말해 숫자로 된 IP 주소를 영문 도메인으로 바꾸는 것이다.
도메인 관리 화면에서 도메인의 DNS 설정으로 들어간다. 레코드를 추가하고 유형을 A 레코드로 고른다.
이름(호스트)은 @로 두고(2단계 도메인을 그대로 쓴다는 뜻이다), 값에는 서버의 IP를 적는다.
반영될 때까지 기다린다. 그러면 플레이어는 xxx.top:22222로 서버에 접속할 수 있다.
CNAME 레코드
섹션 제목: “CNAME 레코드”도메인을 다른 도메인에 연결한다.
호스팅 업체가 IP 주소 대신 이미 설정된 도메인을 준다면(예: 서버 접속 주소가 play.simpfun.cn:xxxxx), 이 레코드로 내 도메인이 그 주소를 가리키게 해야 한다.
유형을 CNAME으로 고르고, 이름에는 원하는 서브도메인을 적는다. @를 적으면 2단계 도메인을 그대로 쓰므로 플레이어가 접두어 없이 접속할 수 있다.
값에는 호스팅 업체가 준 도메인을 적으면 된다.
SRV 레코드
섹션 제목: “SRV 레코드”레코드를 추가하고 유형을 SRV로 고른다. 이름에는 원하는 서브도메인을 적는다. 예를 들어 xxx.top:22222(포트) 대신 minecraft.xxx.top을 쓰고 싶다면 이름을 다음과 같이 적는다.
_minecraft._tcp.mc
여기서 minecraft는 play, * 등 다른 것으로 바꿔도 되고, @를 적으면 접두어 없이 쓸 수 있다. 값은 다음과 같이 적는다.
5 0 22222 xxx.top
5 0은 고정값이고, 22222가 포트다.
확인을 누르고 잠시 기다리면 도메인만으로 서버에 접속할 수 있다.
AAAA 레코드
섹션 제목: “AAAA 레코드”도메인을 IPv6 주소에 연결한다. A 레코드와 달리 AAAA 레코드는 IPv6 주소 전용이라 IPv4 주소를 가리킬 수 없다. 반대로 A 레코드도 IPv4 주소만 가리킬 수 있고 IPv6 주소는 가리킬 수 없다. 즉 서버의 IPv6 주소에도 도메인을 연결하려면 AAAA 레코드를 따로 만들어야 한다.
A 레코드와 같은 방법으로 도메인의 DNS 설정에 들어가 레코드를 추가하고, 유형을 AAAA 레코드로 고른다.
이름은 예를 들어 playv6로 적고, 값에는 서버의 IPv6 주소를 적는다.
반영될 때까지 기다린다. 이름을 playv6로 했다면 IPv6를 쓸 수 있는 플레이어는 playv6.xxx.top:22222로 서버에 접속할 수 있다.
듀얼 스택 서버에 IPv4와 IPv6를 모두 지원하는 도메인 설정하기
섹션 제목: “듀얼 스택 서버에 IPv4와 IPv6를 모두 지원하는 도메인 설정하기”여러 도메인이 같은 IP 주소를 가리킬 수도 있고, 반대로 한 도메인이 여러 IP 주소를 가리킬 수도 있다.
IPv6를 지원하는 웹사이트 상당수는 IPv6 환경에서는 IPv6로 접속되지만, IPv4만 되는 네트워크에서도 여전히 접속된다. 이런 사이트의 도메인은 IPv4 주소와 IPv6 주소를 모두 가리키기 때문이다.
같은 도메인에 A 레코드와 AAAA 레코드를 함께 추가하면 된다. 방법은 다음과 같다.
-
도메인 관리 화면에서 서버 IPv6 주소에 쓰고 있는 AAAA 레코드의 편집 화면을 연다.
-
이름을 A 레코드와 똑같이 바꾼다. 예를 들어 서버 접속 주소가
xxx.top:22222라면 AAAA 레코드의 이름도 A 레코드처럼@로 적고 저장한다. -
이제 IPv6를 쓸 수 있는 플레이어는 IPv6로 서버에 접속한다. IPv6를 못 쓰는 플레이어는 영향 없이 계속 IPv4로 접속한다.
DDNS 서비스
섹션 제목: “DDNS 서비스”DDNS가 왜, 언제 필요한가
어떤 네트워크에서는 서버를 바꾸지 않아도 IP 주소가 바뀐다. 이를 동적 IP라고 한다. 반대로 IP 주소가 한 컴퓨터에 계속 묶여 있어 절대 바뀌지 않으면 고정 IP다.
서버가 고정 IP라면 도메인과 IP가 어긋날 걱정은 없다. 직접 서버를 바꾸거나 IP를 바꾸지 않는 한 IP가 변하지 않기 때문이다. 하지만 동적 IP는 다르다. 동적 IP에서는 서버를 전혀 건드리지 않아도 IP 주소가 바뀔 수 있고, 관리자도 모르는 사이에 도메인과 IP가 어긋나게 된다.
그래서 IP 주소가 바뀔 때마다 DNS 서버에 반영하려면, 컴퓨터가 스스로 IP 변화를 감지해 DNS 서버와 동기화해야 한다. 이런 서비스를 DDNS(동적 DNS)라고 한다. DDNS가 있으면 컴퓨터가 자기 도메인에 연결된 IP를 수시로 갱신하므로, IP가 어떻게 바뀌든 도메인은 항상 그 컴퓨터를 가리킨다. 사용자도 IP가 고정되지 않은 서버에 도메인으로 바로 접속할 수 있다.
가정용 인터넷은 거의 전부 동적 IP다(항저우 화수(Wasu)를 콕 집어 비판한다. 항저우에서 알래스카 IP를 줄 수도 있다). 공인 IPv4를 받았거나 플레이어가 IPv6로 서버에 접속하게 하려면 공인 IPv4와 IPv6 주소를 플레이어에게 알려야 한다. 그런데 가정용 인터넷에서는 이 주소들이 모두 동적이다. 그러니 DDNS를 설정하지 않으면 접속 주소를 수시로 다시 공지하거나 DNS 레코드를 직접 고쳐야 한다.
DDNS를 설정하려면 먼저 도메인이 있어야 한다. DDNS 소프트웨어로는 현재 서버 운영자들 사이에서 ddns-go가 가장 많이 쓰인다. 설치 후 바로 쓸 수 있고, 간단한 설정 몇 단계만으로 도메인을 서버에 연결할 수 있어 편리하다.
독자마다 쓰는 도메인 업체가 다르고 지면도 한정되어 있으니, 여기서는 Windows와 ddns-go 조합만 설명한다. 다른 업체나 운영체제도 설정 방법은 크게 다르지 않으니 적당히 응용하고, 모르는 부분은 검색 엔진을 활용하자.
-
https://github.com/jeessy2/ddns-go/releases 에서 최신 버전의 ddns-go를 내려받는다.
-
내려받은 압축 파일을 실수로 지우지 않을 위치에 푼다(어디가 안전할지 모르겠다면 파일 탐색기 왼쪽의 ‘문서’ 폴더에 풀자).
-
ddns-go.exe가 있는 폴더에서 PowerShell을 연다. -
./ddns-go.exe를 실행한다. -
브라우저에서 localhost:9876에 접속한다. ddns-go의 관리 패널이다.
-
계정과 비밀번호를 물어보는데, 처음 접속하는 것이므로 그냥 로그인을 누른다.
-
아래로 내려가 상황에 맞게 IPv4 또는 IPv6를 켠다. IP 가져오기 방식은 둘 다 인터페이스(API)로 가져오기를 추천한다.
Domains에는 추적할 DNS 레코드를 적는다. 예를 들어mc.arsky.club이 이 컴퓨터를 가리키게 하려면mc.arsky.club을 적는다.mc만 적지 말고 도메인 전체를 적어야 한다. -
기타 설정에서공인망 접근 금지를 체크하고ddns-go의 로그인 사용자 이름과 비밀번호를 정한다. 다음에 관리 패널에 로그인할 때는 여기서 정한 사용자 이름과 비밀번호를 입력해야 한다. 도저히 못 외우겠다면 서버 바탕화면에 텍스트 파일로 적어 둘 수도 있지만, 안전하지 않으니 추천하지 않는다. 정말 못 외우겠다고 생각하는 경우가 아니라면 말이다. -
맨 아래의
Save를 누른다. 이것으로 DNS 설정이 끝난다. 페이지 맨 위로 올라가면 오른쪽에 로그가 보인다. ‘도메인 레코드 xxx 수정 성공!’ 또는 ‘IP가 바뀌지 않음, n번 대기한 뒤 DNS 제공자와 비교’ 같은 메시지가 보이면 설정에 성공한 것이다. 실패하면 로그에 오류 원인이 나온다.