반응형

    소프트웨어 NAT 방식의 TwinIP의 문제점




    이전에 100Mbps 인터넷을 사용하던 시절에는 TwinIP 기능을 강력히 추천했습니다. 



    이유는 아주 간단한데, 공인 IP 주소를 서버에서 직접적으로 받아올 수 있기 때문에 가급적이면 TwinIP 기능을 사용하는 것이 좋다고 했습니다. 하지만, 인터넷 회선을 기가 비트 인터넷으로 바꾸고 나니 이 TwinIP 기능은 반쪽짜리 기능이 되어버렸고, 그 때문에 문제가 생겨 이번시간을 통해 조금 설명해야 할 부분이 생겼습니다.


    일단, 두 기능의 간략한 소개와 장단점에 대해 이야기를 가져보도록 하겠습니다.





    1. DMZ


    공유기를 사용하는 분들이고, 서버나 서버와 비슷한 환경을 운영하는 분들은 한번쯤 들어봤을 이름입니다.

    내부 IP중 하나의 IP를 지정하여, 공유기에 사용하는 공인 IP의 모든 포트를 지정된 IP주소로 연결을 합니다. 말이 복잡한데 아래 그림을 보면 외부로 들어오는 모든 포트 (80, 21 3369 등등) 포트를 지정된 IP주소로 포트포워딩 시키는 기능입니다.



    그 구조를 살펴보면 위의 그림과 같은데, 서버에 할당된 IP주소(192.168.0.10)는 사설IP주소로 할당받지만, 실질적으로 외부에서 접속을 할 때는 모든 포트가 연결되어 있기 때문에 마치 서버로 바로 접속하는 듯한 효과를 보여줍니다. 특별히 포트포워딩 설정을 한 포트를 제외하고는 모든 외부 접속(모든 포트)은 지정된 IP 주소의 내부 포트로 연결 됩니다. 이 부분에 대해서 장단점을 적자면


    장점

    1. 단순히 포트를 연결시켜 주는 기능이기 때문에 공유기의 성능과는 무관합니다. 

    2. 내부 네트워크 망과 외부 네트워크 망에서의 접속을 다르게 설정할 수 있습니다.

    3. 2번의 이유를 토대로 알 수 없는 이유로 인터넷 회선을 사용할 수 없게 된 경우에도 내부 IP 주소를 사용하여 접속할 수 있습니다.

    4. 유동 IP 환경에서 일일히 웹 사이트의 IP 주소를 변경할 필요가 없습니다. (IIS에 해당되는 이야기)

    단점

    1. 서버에서 공인IP를 사용하지 않기 때문에 일부 서버로 작동되는 프로그램에서 오류를 보일 때가 있습니다. (C++ 이 그런 종류인듯 합니다.)

    2. 공인 IP를 사용하지 않기 때문에 게임서버가 되는 상황(일반적으로 Xbox나 PS와 같은 콘솔 게임기로 FPS 게임을 할 때 해당되더군요.)에는 빠른 속도로 인식하지 못한다는 단점이 있습니다. 

    3. 그 외에 공인 IP 주소를 직접 서버에 할당받지 못해 예상치 못한 오류가 발생할 수 있습니다.


    부연 설명을 하자면, 2번의 경우에는 외부에서 서버의 상태를 체크할 때, 공인 IP를 획득하지 못한 MAC Address에 대해서는 차순위 선택권을 갖게 되는 것 같습니다.


    정리를 하자면 위와 같은 이유인데, 아래에서 설명할 TwinIP(SDMZ)와 다른 점은 딱 한가지 입니다. 바로, MAC Address를 기준으로 공인 IP를 다이렉트로 할당받으냐, 아님 IP주소를 토대로 단순히 포트만 전달 받으냐의 차이 입니다.


    위에처럼 약간 호불호가 갈리는 부분이 생길 수 있는데, 그 것을 맨 아래에 적도록 하겠습니다.





    1. TwinIP (SuperDMZ or SDMZ)


    ipTIME 공유기에서는 TwinIP 라고 불리는 기능이고, 다른 종류(특히 외산)의 공유기들이 쓰는 명칭은 SuperDMZ(SDMZ) 라는 기능입니다. 공유기와 유선(혹은 무선)으로 연결된 기기 중 MAC Address를 기준으로 공인 IP 주소를 직접적으로 부여하는 기능입니다.



    이 때 단순히 공인 IP 주소를 고스란히 연결을 해주는 것은 아닙니다. 공유기에서 하나의 맥 어드레스로 공인 IP를 사용하게 하기 위해서는 NAT 기능이 필요한데, 이 소프트웨어 NAT 기능으로 할당을 해주는 역할을 합니다. 조금더 그 과정을 설명하자면,


    지정된 MAC Address 에 임의의 사설 IP를 할당합니다. (예를 들면, 192.168.255.255 와 같은) 그리고 그 사설 IP는 NAT 기능을 이용해서 공인 IP로 변환되도록하여 서버에는 공인 IP를 할당 받습니다.

    결론적으로 DMZ 기능과 거의 같지만, 거기에 공인 IP 처럼 보이도록 살짝 기능을 더 추가한 것입니다.


    네트워크 주소 변환(영어: network address translation, 줄여서 NAT)은 컴퓨터 네트워킹에서 쓰이는 용어로서, IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다. 패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다. NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다. 많은 네트워크 관리자들이 NAT를 편리한 기법이라고 보고 널리 사용하고 있다. NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수 있는 것은 당연하다.

    - 출처 : 위키


    이 NAT 기능은 양날의 검인데, 사용하기 편리하게 하는 대신 공유기의 리소스를 잡아먹기 때문(또는 공유기의 성능의 영향으로)에 성능저하가 발생합니다. 기가비트 인터넷으로 바꾸고 이전에 사용했던대로 TwinIP 기능을 이용해서 서버에 지정을 해주었는데, 인터넷 속도 측정을 하니 업/다운로드 모두 300Mbps를 넘지 못하더군요. 


    이것때문에 인터넷 기사님과 씨름하고, 이것 저것 실험해보다가 DMZ 기능으로 돌려 사용하니 기가비트랜의 모든 속도를 이용할 수 있었습니다.


    장점

    1. 공인 IP주소를 그대로 할당해오는 것이기 때문에 서버를 운영하는데 더 안정적입니다.

    2. 서버를 구축하는데 내부 IP 주소를 사용하지 않고 공인 IP 주소를 사용해서 오류를 일으키지 않습니다.

    3, 게임서버를 열 경우 빠른 회선으로 인식합니다.

    단점

    1. 소프트웨어 NAT 기능을 사용합니다.

    2. 속도가 제한적입니다.


    참고로 소프트웨어 NAT를 사용하는 기능은 TwinIP외에도 VPN 기능이 있습니다. VPN 기능을 사용하게 되면 같은 사유로 속도 저하를 겪게 됩니다.




    결론


    이전에 100Mbps 환경에서는 TwinIP 및 VPN 기능을 동시에 사용을 해도 전혀 무리가 없었습니다. 내부 내트워크 망도 속도저하를 크게 느끼지 못했습니다. 

    하지만 기가비트랜 환경이면 제대로 속도를 사용할 수 없을 지경이더군요. TwinIP 나 VPN 과 같은 NAT 기능들을 사용하게 되면 300Mbps로 제한이 걸리는데 이전에 100Mbps 환경에서는 어차피 이용할 수 없는 속도 였기 때문에 큰 차이가 없었으나, 기가비트랜 환경에서는 1/3로 속도 저하가 발생을 하게 되어서 현재는 그냥 DMZ 기능을 이용중입니다.


    혹시라도 100Mbps 광랜을 이용중이라도 TwinIP나 VPN 기능을 사용중 회선의 속도가 원만하지 않다면 두 기능을 끄는 것도 좋은 방법일 듯 합니다.







    반응형
    Posted by clamp2x