13강 / 20강

NAT — 집 인터넷에는 공인 주소가 없다

사설 대역 · 포트포워딩 · CGNAT

NAT — 집 인터넷에는 공인 주소가 없다
공유기 뒤의 기계들은 주소를 나눠 씁니다. 밖에서 보면 전부 한 집으로 보입니다.

8강에서 이 서버의 주소가 192.168.219.157 이라고 했습니다. 이 주소는 세상 어디에도 없습니다. 정확히는, 세상 곳곳에 수억 개가 있습니다.

사설 대역이기 때문이에요. 우리 집에도 옆집에도 192.168.0.1 이 있습니다. '우리 집 안에서만 통하는 번호' 니까요.

공유기 안팎을 눌러 보세요. 나가는 길과 들어오는 길이 왜 다른지 보입니다.
불러오는 중…

사설 대역 넷

대역주소 개수어디서 보나
10.0.0.0/81,677만큰 사내망
172.16.0.0/12104만도커 기본값이 여기 삽니다
192.168.0.0/1665,536집 공유기
100.64.0.0/10419만통신사 CGNAT — 아래 참고

나가는 길은 되는데 들어오는 길이 안 된다

공유기는 나가는 요청을 기억해 뒀다가 답장을 제 자리로 돌려줍니다. 그래서 웹 서핑은 잘 되죠.

그런데 밖에서 먼저 두드리면 공유기는 난감합니다 — 집 안 어느 기계에 줘야 할지 알 수 없으니 그냥 버립니다.

이 한 가지 때문에 집 서버를 밖에 내놓기가 어렵습니다.
Python 브라우저에서 실행

고전적인 해법 — 포트포워딩

공유기에 규칙을 하나 적어 둡니다. "바깥 443 으로 온 것은 192.168.219.157 의 443 으로 넘겨라."

되는 조건
공유기가 진짜 공인 IP 를 받고 있어야 합니다. 그리고 그 IP 가 자주 바뀌지 않거나, 바뀔 때마다 A 레코드를 고쳐야 하고요.
안 되는 경우 — CGNAT
통신사가 공유기에도 사설 주소(100.64.x.x)를 줍니다. NAT 이 두 겹이라 포트포워딩을 아무리 해도 밖에서 닿지 않습니다.
🤔 확인 문제
통신사가 공유기에 100.72.5.9 를 줬습니다. 포트포워딩으로 집 서버를 열 수 있을까요?