• 7. 네트워크 기초 - Static NAT, Dynamic NAT, PAT, EIP(AWS)

    2023. 2. 20.

    by. Daramu

    IP는 사설IP와 공인IP로 나뉘어져 있으며,

    우리가 쓰는 인터넷은 외부로 나갈시 공인 IP로 바뀌며, 반대로 외부에서 들어오는 접속도 사설IP로의 바로 접속은 안된다는 것을 알았다.

     

    그림으로 표현하자면,

     

    여기서 192.168.10.100 사용자가 외부로 나가기 위해서는 211.168.10.103 이라는 공인IP로의 변환이 필요하다.

    우리는 이것을 "NAT(Network Adress Translation)" 라고 부른다.

     

    NAT는 크게 두가지로 나뉜다.

     

    Static NAT (정적 나트)

    Dynamin NAT (동적 나트)

     

    우선 Static NAT 먼저 살펴본다면,

     

    Static는 "특정 사설주소를 특정 공인주소와 1:1 매핑"한다.

    매핑을 어렵게 생갈 할 것없이, 매칭과 비슷하게 생각하면 될 것이다. 서로 다른 극의 자석을 붙이듯이 서로 붙여서 한쪽과 다른 한쪽을 완전히 동일하게 움직이게 만드는 것이라 생각해도 좋다.

     

    가령, 192.168.10.100과 211.168.10.103 을 Static ANT한다고 가정한다면,

    192.168.10.100 단말은 반드시 외부로 빠져나갈때 "반드시" 211.168.10.103 으로 변환된다. 

     

    이 말은 반대로 211.168.10.103을 통해 들어오는 IP는 공인IP -> 사설IP로 바뀔때 192.168.10.100 로 바뀐다는 뜻이니, 격리된 공인IP와 사설IP가 마치 세트 처럼 한개로 묶이는 현상이 일어난다.

     

    그럼, 해당 상황에서 211.168.10.103 으로 통신을 시도하면 결과적으로 어디와 통신이 되는 것일까?

    답은 무조건적으로 192.168.10.100 이 되는 것이다.

     

    이 방법은 Static IP와 마찬가지로 Server처럼 고정된 공인주소가 필요한 경우에 사용된다.

     

    (나도 잘 모르지만)여담으로 AWS에 EIP 라는 기능이 있다.

    처음 EC2를 만들고 공인 IP를 할당받을때 "고정IP로 받기 EIP(Elastic IP)"가 있는데 EIP가 바로 Static NAT이다.

    즉, EIP를 선택한다는 것은 Static NAT를 하겠다는 것과 같은 것이다.

     

    그럼 Dynamic NAT 는 무엇일까?

     

    Dynamic NAT는 별도의 Pool에 공인IP를 보관하고, 공인주소가 필요할때(가령, 사설IP가 외부로 빠져나갈때) 사용하지 않는 공인IP 를 그때그때 제공한다.

     

    해당 방법은 공인IP가 여러개일때 유요한데, 그림으로 보자면

     

     

     

    이렇게 특정 공인IP를 Pool에 저장하고, 200번 PC가 외부와의 통신을 요청한다면, 사용중인 100번과 101번 공인IP가 아닌 102번 공인IP로 변환하는 방식이다.

     

    즉, "불특정 공인IP로 변환되기에 고정적인 공인IP가 필요하지 않는 경우"에 사용된다.

     

    마지막으로 알아볼건 PAT다.

     

    여기까지 본다면 궁금증이 생긴다. 적어도 나는 생겨서 질문을 했던 기억이 있다.

    아무튼, 궁금한건 바로 당신이 사용하고 있는 공유기이다.

     

    아래의 예시를 보자.

    당신은 컴퓨터 두개(혹은 한대 + 와이파이를 연결한 스마트폰 한대)를 사용중인데, 당신의 공인IP는 하나 뿐이다.

    그럼 여기서 문제가 발생한다.

     

     

    바로 컴퓨터로 인터넷을 사용중인데, 스마트폰으로도 인터넷을 하고있는 것이다.

    공인IP는 유일하다. 인터넷에서 같은 공인IP는 없다. 공인IP가 같다면 외부에서 돌아올때 주소가 어떤 곳이 맞는지 알 수 없으니 연결이 될 수 없다.

     

    하지만 우리는 PC로도, 휴대폰으로도 한번에 수십개의 "같은 공인IP"를 사용해서 통신하고있다.

     

    어떻게 이런일이 가능할까?

     

    그 때 사용하는 것이 바로 "PAT(Port Address Translation)"이다.

    사용처는 위의 예시처럼 가정용 공유기가 사용하며, 공인IP주소가 매우 적어 다수의 사설IP가 한개의 공인IP를 사용해야 할때 사용하는 방법으로, IP는 고정으로 하되 Port를 변경하는 방식이다.

     

    IP가 가야하는 주소를 알려준다면, Port는 어떠한 프로그램을 사용하는지 알려준다.

    가령, naver는 http라는 web을 사용중인데 해당 Port는 80번 Port를 사용한다.

     

    좀 친밀한 예시를 들자면 IP는 아파트 주소이고, Port는 동,호수 정도된다.

    IP로 주소 찾아갔더니 아파트가 있는데, 어디로 들어가야 할지 모르겠다면 Port를 보면 되는 것이다.

     

    Port는 일반적으로 0 ~ 65535 번까지 있다.

    그 중에서 0~1023 번까지는 Well-Know Ports로 위의 web처럼 특정 용도가 있는 Port이고, 1024 ~ 65535 까지는 registered port로 특정용도가 아닌 비교적 자유롭게 사용할 수 있는 Port 번호이다.

     

    PAT는 바로 이 포트를 바꾼다.

     

    가령, 192.168.10.100 번 PC가 외부로 나갈때 라우터(이 경우에는 공유기지만)는 211.168.10.103:5254 처럼 IP뒤에 "1024~65535 사이에 랜덤한 Port 번호"를 꼬리표 처럼 붙여둔다.

     

    그리고 192.168.10.200 스마트폰이 외부로 나간다면 211.168.10.103:6000 과 같이 랜덤하게 붙여주고 (중복이라면 재설정), 후에 다시 통신이 들어왔을때 꼬리표가 5254면 "아! 이 꼬리표는 PC통신이네" 하고 100번 PC로, 6000번이라면 "이건 스마트폰 꺼내" 하고 통신할 수 있는 것이다.

     

     

    댓글