ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [기본 네트워크-3] Network Address Translation
    Backend & Infra/Network 2026. 7. 3. 14:50

    자 여러분 오늘은 Network Address Tanslation, NAT에 대해 공부해보겠습니다.

    제가 이 글의 전 글에서 라우터의 통신에 대해 이야기를 하면서 외부통신과 내부통신에 대해 말했습니다.

    전 글에 제가 쉽게 잘 적어두었으니 잠깐 보고오시는 거도 좋을 듯 합니다! 그리고 짧아요! ㅋㅋ

     

    목적지 주소에 대한 정보가 라우터의 라우팅 테이블에 존재하지 않으면 WAN 포트를 통해 전달하고 이를 외부 통신이라고 합니다!

    조금 더 생각을 해보면 의문점이 생길 겁니다. 제가 IP주소에 대해 이야기를 했었는데 IP 주소를 모든 디바이스나 라우터에 할당해주지 못하기에 인터넷과 연결이 가능한 public ip 그리고 그 public ip안에서 연결되는 private ip에 대해서 이야기를 했었죠.

     

    그렇다면 무슨 의문점이 생겨야할까요? 

    흠.....

    힌트를 드리겠습니다. private ip는 LAN 안에서만 라우팅 테이블을 통하여 서로와 연결되어 있는지 확인이 가능합니다. 그러면 만약 외부 통신을 한다면! 그리고 그 외부통신을 하는 주체가 private ip로 구성되어 있다면 어떻게 될까요? 외부 통신은 WAN을 통해서 하고 즉 public ip가 필요한건데 외부 통신을 하고 싶어하는 주체는 private ip.. 이걸 어떻게 해결해야할까요?

     

    이 문제를 해결하기 위해 바로 라우터의 NAT이라는 개념이 등장하게 됩니다. 이 글의 제목인 Network Address Translation 입니다!

     

    이 NAT는 public ip와 private ip를 서로 연결?치환? 해준다고 생각하시면 됩니다. 

    아주 좋은 예시가 여기 있습니다. 두 가지로 나누어서 설명해드릴게요. 

    1. Host에서 Server로 보내는 과정

    2. Server에서 Host로 다시 응답하는 과정

     

    사진을 보시면 조금 복잡하다고 생각하실 수 있는데 진짜 아무것도 아닙니다! 천천히 제가 끄적거린 걸 읽어봅시다!

     

    1. Host에서 Server로 보내는 과정

    먼저 호스트는 private network 입니다. 즉 private ip를 가지고 있다는 뜻이겠죠. 그리고 server는 인터넷과 연결되어 있습니다. 

     

    정리하면

    -Host -> private ip

    - Server -> public ip

    그러면 Host의 private ip가 public ip가 되도록 도와주는 것이 라우터의 NAT이라는 것 입니다. 그러면 여기서 또 궁금하지 않나요? 

    뭐가 또 궁금해야해..?

    맞아요 NAT이 어떻게 동작하길래 저 private ip와 public ip를 변환해주는? 역할을 할 수 있을까? 싶지 않나요?

    일반저긍로 NAT은 IP주소뿐만 아니라 포트 번호까지 함께 활용하여 패킷을 구별합니다. 

    만약 아까 호스트의 포트가 12345를 사용하여 서버의 80번 포트로 요청을 보냈다고 가정하면 NAT 테이블은 위와 같이 구성됩니다.

     

    1. 호스트에서 라우터로 갈 때 : 일단 여기는 사설 네트워크 구간이죠? 패킷이 외부 인터넷으로 나가야하니깐 라우터는 이. 패킷을 가로채서 NAT테이블에 새로운 행을 생성합니다. 그리고 사설 IP인 10.0.0.1을 외부에서 통신 가능한 공인 IP 150.150.0.1로 치환합니다.

    2. 라우터에서 서버로 갈 때: 일단 여기는 공인 인터넷 구간이죠? 서버는 이 패킷이 10.0.0.1이라는 사설 IP에서 온 것인지 전혀 모르고 그저 공인 IP인 150.150.0.1이 보낸 요청으로 인식하고 처리합니다.

     

    자 이렇게 데이터가 갔고, 이제 응신받는 과정을 보여드릴게요.

     

    2. Server에서 Host로 다시 응답하는 과정

     

    3. 서버에서 라우터로 갈 때: 라우터가 이 패킷을 받고 NAT 테이블을 역으로 조회하여 원래 내부의 ip주소를 찾습니다.

    4. 라우터에서 호스트로 갈 때: 라우터가 목적지 IP를 사설 IP로 다시 되돌려주었기 때문에, 내부 네트워크에 있는 호스트가 안전하게 서버의 응답을 수신하게 됩니다. 

     

    쉽게 예시를 들어 설명하면 NAT 라우터는 외부로 나갈 때 사설 대신 내 이름(공인)으로 보낼게! 하고 테이블에 적어둔 뒤(라우팅 테이블), 답장이 오면 그 테이블을 보고 원래 주인에게 다시 전달해주는 착한 친구 역할을 해주는 것 입니다.

     

     

    여기서 끝을 낼까했지만 여러분.. 이 NAT에도 종류가 있다는 거 알고 계시나요??? 저도 몰랐어요.. 정말 네트워크는 어렵고 복잡하네요 그래도 재밌어서 다행입니다. 여기서 제가 알아야하는 최소한의? 지식을 적어볼게요.

     

    일단 NAT은 전달되는 패킷의 방향에 따라서 종류가 달라집니다!

     

    만약 1 : 1 NAT의 경우에는 외부에서 공인 IP를 찾을 수 있고 Full Cone NAT이라는 녀석이 이에 해당됩니다!

    예시를 들어보자면 서버가 이에 속합니다! 왜냐면 서버는 외부에서 요청을 받을 일이 많이 때문이죠!

     

    근데 만약. N:1 PAT의 경우에는 외부에서 공인 IP를 찾을 수 없습니다. 그리고. Restricted-Cone, Port-Restricted-Cone, Symmetric 들이 이에 속합니다! 보통 저희 집에 있는 컴퓨터가 이에 해당합니다! 왜냐면 저희가 외부에서 요청을 받고 처리하는 일은 보통 없기 때문입니다 ㅎㅎ. 

     

     

     

    네트워크 관련 글을 마치며..

    제가 두서없이 적어서 이해가 잘 되지 않을수도 있지만 읽어주셔서 감사합니다! 저는 최대한 저의 시점에서 궁금했던 것을 위주로 작성해보았는데요 이런식으로 혼자 질문을 던지면서 공부하면 기억에 조금 더 잘 남더라고요!

     

    그리고 저의 블로그는 

    https://mark-kim.blog/understanding_aws_vpc_1/

     

    [AWS VPC 이해하기] 첫번째 - 일반적인 네트워크 통신 방식

    AWS VPC는 AWS 인프라를 사용하기 위해 기본적으로 사용해야하는 계정 전용 가상 네트워크다. 이번 글은 VPC를 이해하기 위해 도움이 되는 기반 지식을 정리한다.

    mark-kim.blog

    이 분의 블로그를 참고했고, 클로드나 제미나이 등을 통해 설명을 듣기도 했습니다! 위의 블로그가 진짜 자세히 설명 잘 해주셔서 공부하는데 너무 좋았어요! 여러분도 더 깊게 공부하고 싶으시다면 위의 블로그를 읽어보시는 걸 추천합니다!

     

Designed by Tistory.