이중 NAT 사무실에서 서비스 공개하기

공유기가 두 단이라 포트포워딩이 막혔습니다. 바깥으로 연결하는 Cloudflare Tunnel로 해결했습니다.

처음에는 공유기 포트포워딩 하나면 될 거라고 생각했습니다. 그런데 공인 IP로 접속해 보니 로그인 화면이 떴습니다. 우리 공유기가 아니라 상위 공유기의 관리 페이지였습니다.

이중 NAT

인터넷 ─ 상위 공유기 (공인 IP) ─ 사무실 공유기 ─ 서버(Mac)

공유기가 두 단이면 외부에 공개하려면 두 공유기 모두 포트포워딩을 해야 합니다. 사무실 공유기 설정은 끝냈지만, 상위 공유기는 관리자 계정이 없어서 손댈 수 없었습니다.

해결: 안에서 바깥으로 연결

각 Namespace에 cloudflared Deployment를 띄웠습니다. 이 Pod가 Cloudflare로 아웃바운드 연결을 열고, 받은 요청을 클러스터 안의 Gateway로 전달합니다. 들어오는 포트를 열 필요가 없습니다.

  • prd 터널은 Gateway로 그대로 보냅니다. 기본 라우트로 처리됩니다.
  • dev 터널은 --http-host-header dev.localhost로 Host를 바꿔 dev 라우트에 매칭시킵니다.

지금은 Quick Tunnel이라 재시작하면 주소가 바뀝니다. 도메인을 사면 이름 있는 터널과 TLS로 고정할 계획입니다.

← 기술블로그 목록