[홈 서버] DNS, DDNS 설정하기
1. 소개
공인 IP와 포트 포워딩을 통해 홈 서버에 잘 접근할 수 있지만 매번 공인 IP를 통해 접근하는 것은 불편한 점이 많다. 사람이 기억하기 쉬운 이름을 통해 접근할 수 있게 DNS 설정을 해주면 서비스를 대표하는 도메인 네임으로 서비스에 접근할 수 있게 된다. 추가로 공유기의 DHCP 동적 할당 등을 통해 바뀔 수 있었던 사설 IP처럼 공인 IP 역시 고정해주지 않으면 바뀔 수 있는데 이 경우 홈 서버에 다시 접근할 수 없게 된다. 공인 IP를 고정하는 것은 비용 문제가 있기 때문에 동적으로 변할 수 있는 공인 IP를 찾게 해주는 DDNS를 이용해 안정적으로 접속할 수 있게 설정하는 것을 해보려 한다.
2. DDNS 설정하기
먼저 동적으로 바뀌는 공인 IP를 추적해서 찾을 수 있게 Dynamic DNS, DDNS 설정을 해줬다. 다른 공유기까지는 모르겠는데 ipTIME 공유기는 공유기 관리자 페이지에서 DDNS 설정이 가능했다. 공유기 DDNS가 아닌 다른 외부 서비스를 사용해도 된다.
먼저 공유기 관리자 페이지에 접속해주고,
DDNS 설정 탭으로 들어온 후 호스트 이름과 이메일을 설정해줬다.
설정이 잘 된 것을 볼 수 있었다.(DDNS 등록까지 시간이 좀 걸릴 수 있다.)
3. DNS 설정하기
DNS는 도메인 이름을 IP 주소로 변환해주는 일종의 웹 세상 전화번호부이다. 유료 또는 무료로 DNS 서비스를 제공하는 업체에서 발급 받을 수 있고 나는 가비아에 도메인을 하나 보유하고 있어서 이 도메인으로 진행해보려고 한다. 공유기 관리자 페이지 또는 https://ifconfig.me를 통해 공인 IP를 알아낸 후 DNS에 A 레코드로 등록을 해주면 이제 DNS 질의를 거쳐 도메인 네임으로 IP 주소를 알아낼 수 있도록 설정해줄 수 있다.(IPv4 기준) 다만 공인 IP는 고정을 하지 않으면 바뀔 수 있고 이 때문에 DDNS 설정을 해줬는데 이 DNS의 별칭을 DDNS로 설정을 하면 DNS -> DDNS -> 공인 IP 과정을 거쳐서 DNS로 홈 서버에 접근할 수 있게 된다. 별칭은 CNAME 레코드로 등록하면 된다.
등록이 완료됐으면 아래 명령어로 잘 되는지 테스트 해볼 수 있다.
1
dig solvemeup # dig [도메인 네임]
CNAME으로 등록한 DDNS와 DDNS를 통한 공인 IP 주소가 모두 잘 나오는 것으로 설정이 잘 된 것을 볼 수 있었다.
홈 서버에서 Netcat으로 80번 포트를 LISTEN한 후 도메인 네임으로 메시지를 보내면,
잘 수신되는 것을 볼 수 있다.
4. SSH 간편 접속 설정
이전 [홈 서버] 사설 IP 고정 및 SSH 연결 설정하기에서 간편한 SSH 접속을 위해 ~/.ssh/config 파일을 활용했는데 해당 파일은 사설 IP에 대한 간편 접속만 가능한 상태다. 외부에서도 간편 접속을 위해 추가 작성을 해줬다.
사설 IP를 통한 빠른 접속은 bobo-01-local로, 외부에서 접속은 bobo-01로 해주기 위해 아래와 같이 작성했다.
ssh bobo-01-local 명령어로 접속되는 모습을 볼 수 있고,
ssh bobo-01 명령어로도 접속되는 모습을 볼 수 있다.
맥북에서 와이파이 대신 모바일 핫스팟에 연결해서 IP 주소가 바뀐 것을 확인하고 두 명령어를 다시 실행하면 ssh bobo-01-local은 접속이 안되고 ssh bobo-01은 접속이 되는 것을 볼 수 있었다.








