Skip to content

공인 IP 가 바뀌는 회선 ​

가정용·소규모 회선은 재접속할 때마다 공인 IP 가 바뀝니다. 도메인을 그 IP 로 직접 가리켜 두면, 바뀌는 순간 밖에서 아무것도 안 열립니다. 증상이 타임아웃 하나뿐이라 원인이 잘 안 보입니다.

바뀌는 IP 를 이름이 따라가게 하면 됩니다. 집이나 사무실 회선으로도 서비스를 올릴 수 있습니다 — 저희 자체 서버도 가정용 회선에서 이 방식으로 돌고 있습니다.

먼저, 나에게 공인 IP 가 있나 ​

회선이 CGNAT 이면 통신사가 공인 IP 하나를 여러 가입자에게 나눠 쓰게 하는 방식이라 나에게 배정된 주소가 없습니다. 이름을 따라가게 해도 밖에서 들어올 길이 없습니다.

bash
curl -s https://api.ipify.org      # 실제로 인터넷에 보이는 내 공인 IP

이 값을 공유기 관리 화면의 WAN IP 와 비교하세요.

같다공인 IP 가 있습니다 → DDNS 로 갑니다
다르다 (특히 WAN 이 100.64.x.x~100.127.x.x)CGNAT 입니다 → 터널로 갑니다

DDNS 로 이름이 IP 를 따라가게 하기 ​

IP 가 바뀔 때마다 도메인 레코드를 따라 바꿔주는 방식입니다. 둘 중 하나로 합니다.

방법어떻게
공유기 내장 DDNS대부분의 공유기에 있습니다. 공유기가 IP 변경을 직접 감지해 갱신하므로 서버에 아무것도 안 깔아도 됩니다. 먼저 여기를 보세요.
DDNS 서비스 + 갱신 클라이언트공유기에 기능이 없을 때. 서비스에서 이름을 받고, 서버에 갱신 클라이언트를 띄웁니다.

어느 쪽이든 결과는 같습니다 — 바뀌는 IP 를 따라가는 이름이 하나 생기고, 실제 서비스 도메인은 그 이름을 CNAME 으로 가리킵니다.

paas.example.com      CNAME   내이름.ddns-서비스.net

서비스 도메인에 IP 를 직접 박지 마세요

A 레코드 → 공인 IP 로 해두면 IP 가 바뀌는 날 직접 고쳐야 하고, 고칠 때까지 계속 닫혀 있습니다. 한 단계를 CNAME 으로 두면 갱신되는 자리가 한 곳으로 모입니다.

TTL 은 낮게 — 60초 권장

복구에 걸리는 시간은 갱신 주기 + TTL 입니다. TTL 을 "자동" 으로 두면 실제로는 5분쯤 잡히고, 정작 IP 가 바뀐 순간 그 값으로 캐시돼 5분을 기다리게 됩니다.

인증서 갱신도 같이 막힙니다

IP 가 어긋난 동안에는 인증서 갱신도 실패합니다. 발급 확인이 그 주소로 들어오기 때문입니다. 당장은 인증서가 살아 있어서 조용하다가, 갱신 시점에 드러납니다.

CGNAT 이면 터널로 ​

공인 IP 를 아예 쓰지 않는 방법입니다. 서버가 밖으로 나가서 붙기 때문에 공인 IP 가 없어도 되고, 공유기에 포트를 열 필요도 없습니다.

→ 9. 인증서와 주소

공인 IP 가 있다면 DDNS 쪽이 낫습니다

터널은 접속이 저희 서버를 거치기 때문에 저희 쪽 상태에 묶입니다. 자기 공인 IP 로 직접 서비스하면 그 의존이 없습니다.

내 장비를 클라우드처럼.