동적 IP 홈서버를 DDNS로 연결해서 사용하기
집에서 델 미니 서버 한 대를 돌리고 있다.
개인적으로 사용할 서버가 필요해서 하나 구축했고, 블로그도 여기서 운영하고 있다. 서버를 집에 두고 쓰다 보니 가장 먼저 해결해야 했던 게 외부에서 서버에 어떻게 접속할 것인가였다.
문제는 집 인터넷의 공인 IP가 고정되어 있지 않다는 것이다.
현재 IP가 123.123.123.123이라고 해도 나중에 인터넷 연결이 끊겼다가 다시 연결되거나 통신사 쪽에서 IP가 변경되면 다른 주소를 받을 수 있다.
그렇다고 정적 IP를 신청할 생각은 없었다.
개인 서버 하나 운영하는데 굳이 돈을 더 내면서까지 IP를 고정할 필요가 없다고 생각했다. 필요한 건 IP 자체를 고정하는 게 아니라, IP가 바뀌어도 계속 같은 주소로 서버에 접근하는 것이었다.
그래서 DDNS를 사용했다.
DDNS를 사용하기로 했다
DDNS는 Dynamic DNS다.
일반적인 DNS는 도메인 이름을 IP 주소에 연결해 놓는 방식인데, 집에서 사용하는 인터넷처럼 IP가 바뀌는 환경에서는 이 정보도 같이 바꿔줘야 한다.
예를 들어 현재 서버가 다음 IP를 사용하고 있다고 하자.
myserver.example -> 123.123.123.123
그런데 어느 날 공인 IP가 바뀌었다.
123.123.123.123 -> 234.234.234.234
이때 DNS가 여전히 예전 IP를 가리키고 있으면 서버에 접근할 수 없다.
DDNS는 이 부분을 자동으로 갱신해주는 방식이다.
공인 IP 변경
-> DDNS 클라이언트가 변경 감지
-> DDNS 서비스에 새로운 IP 전달
-> hostname 갱신
결국 내가 필요한 건 이거였다.
IP가 바뀌는 것 자체는 그냥 놔두고, 바뀌었을 때 알아서 따라가게 만드는 것이다.
No-IP를 사용했다
DDNS 서비스는 여러 가지가 있는데 나는 No-IP를 사용했다.
No-IP에서 DDNS용 hostname을 하나 만들고 서버에 DDNS 클라이언트를 설치했다.
서버는 계속 켜져 있기 때문에 굳이 별도의 장비를 두지 않고 서버에서 IP 갱신까지 처리하도록 했다.
구성 자체는 별거 없다.
Dell Mini Server
-> 현재 공인 IP 확인
-> No-IP DDNS에 IP 전달
-> hostname이 현재 IP를 가리키도록 갱신
IP가 바뀌었는지 주기적으로 확인하고 변경되었으면 No-IP에 알려주는 방식이다.
그래서 내가 직접 공인 IP를 확인해서 수정할 필요가 없어졌다.
예전에는 IP가 바뀌면 서버 주소도 같이 바뀌는 느낌이었다면 지금은 그냥 도메인 하나만 기억하면 된다.
No-IP 주소를 그대로 쓰지는 않았다
여기서 한 가지가 더 있었다.
No-IP에서 제공하는 hostname을 그대로 사용해도 서버 운영에는 아무 문제가 없다.
그런데 블로그까지 올려놓고 보니 아무래도 내가 사용하는 도메인으로 접속하는 게 더 깔끔했다.
그래서 내도메인.한국에서 무료 도메인을 하나 만들었다.
여기서 kro.kr을 사용했다.
개인적으로 도메인 이름도 나쁘지 않고 무료라서 이쪽을 선택했다.
결과적으로 DDNS와 실제 블로그 주소를 분리했다.
내 도메인
-> No-IP에서 관리되는 DDNS 주소
-> 현재 공인 IP
-> 집 공유기
-> Dell Mini Server
이렇게 구성하면 내가 사용하는 도메인은 그대로 유지하면서 실제 IP가 바뀌는 문제는 No-IP 쪽에서 처리할 수 있다.
서버에서 하는 일은 생각보다 단순하다
처음에는 DNS니 DDNS니 해서 뭔가 복잡할 것 같았는데 실제로 구성하고 나니 서버에서 하는 일은 별로 없다.
No-IP 클라이언트가 백그라운드에서 동작하고 있고 주기적으로 IP를 확인한다.
예를 들어 현재 IP가
123.123.123.123
이라면 DDNS도 이 주소를 가지고 있다.
나중에 IP가
234.234.234.234
로 바뀌면 클라이언트가 변경된 것을 확인하고 No-IP에 새로운 IP를 전달한다.
123.123.123.123
|
| IP 변경
v
234.234.234.234
|
| DDNS Update
v
No-IP hostname
|
v
234.234.234.234
이 과정이 자동으로 돌아가니까 서버를 사용하는 입장에서는 IP가 변경됐다는 사실을 크게 신경 쓸 일이 없다.
DDNS만 설정한다고 서버가 열리는 건 아니다
이 부분은 처음 구성할 때 조금 헷갈릴 수 있다.
DDNS는 외부에서 내 집의 공인 IP를 찾을 수 있게 해주는 것까지다.
실제 서버까지 연결하려면 공유기 설정도 필요하다.
내부에 있는 서버는 보통 사설 IP를 사용한다.
인터넷
-> 공인 IP
-> 공유기
-> 192.168.x.x
-> 홈서버
외부에서 웹 요청이 들어오면 공유기가 해당 요청을 내부 서버로 전달해야 한다.
그래서 필요한 게 포트포워딩이다.
예를 들어 웹 서버를 80번 포트에서 실행하고 있다면 공유기의 80번 포트를 내부 서버의 80번 포트로 전달하도록 설정할 수 있다.
외부 요청
-> 공인 IP:80
-> 공유기
-> 포트포워딩
-> 홈서버:80
-> 웹 서버
DDNS와 포트포워딩은 같은 기능이 아니다.
DDNS는 현재 공인 IP를 찾아가는 문제를 해결하고, 포트포워딩은 그 요청을 집 안의 어떤 서버로 넘길지를 결정한다.
이 둘을 따로 생각하면 구성하기 편하다.
실제로 구성하고 나니 편했다
이걸 설정하기 전에는 외부에서 서버에 접근할 때 IP를 직접 알아야 했다.
그런데 홈서버를 계속 운영하다 보면 이런 게 은근히 귀찮다.
특히 IP가 변경됐는지 확인하는 것 자체가 관리 포인트가 된다.
지금은 그냥 도메인으로 접속한다.
공인 IP가 바뀌면 DDNS가 알아서 갱신한다.
공인 IP 변경
-> No-IP DDNS 갱신
-> 도메인이 새로운 IP를 가리킴
-> 기존 주소 그대로 사용
서버의 실제 IP는 계속 변할 수 있지만 내가 사용하는 주소는 변하지 않는다.
이게 생각보다 편하다.
지금 홈서버 구성
현재 내가 사용하는 구조를 단순하게 정리하면 이렇다.
가정용 인터넷
-> 동적 공인 IP
-> No-IP DDNS
-> kro.kr 도메인
-> 공유기
-> Port Forwarding
-> Dell Mini Server
-> 블로그 및 개인 서비스
처음부터 정적 IP를 구매하는 방법도 있었지만 내 환경에서는 필요하지 않았다.
서버 한 대를 개인적으로 운영하는 수준이라면 동적 IP를 그대로 사용하고 DDNS로 관리하는 쪽이 비용이나 관리 측면에서 더 낫다고 판단했다.
결국 IP를 고정한 게 아니다.
IP가 바뀌어도 같은 주소로 접근할 수 있도록 만든 것이다.
개인 홈서버에서는 이 정도만 구성해도 충분히 쓸 만하다.
지금은 서버에서 돌아가는 블로그도 이 구조를 통해 외부에서 접근하고 있다.