DDNS 이해하기

    포트포워드 설정하기



    외부에서 서버에 접속하기 위해 몇가지 방법이 있지만 지난 시간에는 TwinIP와 포트포워드에 대한 이해에 대해서 설명을 한적이 있습니다.



    외부에서 공유기 내부의 네트워크으로 접속하기 위해서는 몇가지 준비과정이 필요합니다.




    DDNS란?


    DDNS (Dynamic Domain Name Server)

    현재 인터넷 업체에서 사용하는 IP 할당방식은 유동아이피 할당입니다. 일정 시간이 지나면 IP주소가 변경이 되는데 IP주소가 바뀌어도 항상 고정 시켜주는 주소를 만들어 줍니다.고정 IP는 비용부분에서 차이가 생기고, 개인 사용자에게는 잘 안내어주는 걸로 알고 있습니다.

    DDNS 구성은 구조가 IP가 변경이 되면 그 도메인에 자동으로 반영해주는 역할만 합니다.


    사실 제가 사용하고 있는 구성을 살펴보면 공유기에 달려있는 DDNS 구성은 별로 입니다. 그리고 DDNS를 지원한다고 하는 다른 사이트를 봐도 별로입니다.

    이유는 근본적으로 IP주소를 고정해주는 것이 아니라 변경되는 아이피 주소를 하나의 웹 도메인으로 연결하기 때문입니다. 게다가 그 도메인 주소도 제가 원하는 주소도 아닙니다.


    ipTIME의 경우를 예를 들어서 설명하자면,

    공유기 내에서 DDNS 서비스를 신청하면 도메인 주소는 http://DDNS계정.iptime.org 입니다. 만약, 하나의 도메인만 사용하고 포트 포워딩 기능을 사용하지 않을 거라면 이렇게 사용하여도 무방합니다.


    이미 제가 원하는 도메인 주소가 아닙니다. XXX.iptime.org 라는 3차 도메인 구조를 가지고 있고, 여타 DDNS 서비스를 제공하는 사이트들을 봐도 같은 방식입니다.


    도메인에 대해서 이해하기 (도메인 형태)


    즉, 근본적으로 IP를 고정해주는 것이 아니라 단순한 웹 포워딩 정도의 수준밖에 되지 않습니다. 이것은 고정 IP로 변경해주는 것이 아니라 고정된 도메인으로 연결을 하기 때문에 불편한 점이 이만저만이 아닙니다.


    현재 저는 TwinIP로 공인 아이피를 서버에 동시에 사용하도록 하고 있고, 도메인의 연결 IP를 공인 아이피 주소로 설정해 놓고 있으며, 만약, 공인 아이피 주소가 변경된 경우 일일이 변경하는 방식으로 설정 해놓고 있습니다. (물론 이 과정을 자동화 해주는 프로그램이 있기는 합니다.) 애지간해서는 공인 IP가 변경되는 일이 드물기 때문에 개인 서버를 구축한 뒤로 한번도 IP주소가 변경된 적이 없네요.


    만약 공인 IP주소를 그대로 가져올 수 없는 회사같은 환경이라면 일반적으로 외부에서 접속하기 위해서는 이 ddns와 포트포워드 기능을 활용하여 사용할 수 있습니다. 기왕에 웹사이트를 하나 지정해서 접속하는 방법으로 알아보도록 하겠습니다.





    IIS에서 웹사이트 바인딩 설정하기


    IIS에서 웹 사이트를 만들고 포트 포워드 기능을 통해 연결하기 위해서는 물리적인 IP주소가 필요합니다. 새로운 웹사이트를 만들 때 바인딩 설정을 localhost로 진행을 하면 연결을 할 수가 없습니다. 애초부터 바인딩에 IP주소를 사용하고 그 아이피 주소가 공유기의 사설 IP(내부IP)주소이기 때문에 이를 포트 포워드 기능으로 연결하는 것이 주된 목적입니다.


    만약, DMZ 기능이나, TwinIP 기능을 통해서 공인 IP를 사용하고 있다면 이 포트포워드로 연결할 필요가 없습니다.


    새 웹사이트를 만드는 경우IP 주소를 사설 IP주소로 설정합니다.



    만약, 이미 만들어져 있는 웹 사이트의 바인딩 설정을 변경하고 싶다면 우측에 바인딩 메뉴를 통해 설정할 수 있습니다.



    추가를 눌러서 실제 IP주소를 추가해 줍니다. 



    현재 아이피 주소는 *로만 되어있는데 이것은 localhost를 뜻합니다.



    새로운 바인딩을 추가하고 나면 IP주소와 포트부분을 다시 한번 확인합니다.



    방금 위에서 이야기 했다 시피 바인딩을 설정할 때 중요하게 참고해야 하는 부분이 두가지 있습니다. 먼저, 사설 IP 주소와 포트 입니다.


    여러개의 웹사이트를 만드는 경우 하나의 사설 IP로 포트주소를 다르게 하여 설정해야 하는 경우가 있습니다.


    예를 들어,

    A site : http://192.168.0.164 / port : 80

    B site : http://192.168.0.164 / port : 88

    C site : http://192.168.0.164 / port : 8080


    이렇게 세개의 사이트를 만들어서 사용하는 경우를 생각해보면, IP주소는 한개밖에 사용할 수 없고(IPv4) 포트번호만 변경해서 사용해야 합니다. 이런 경우 포트포워딩을 설정하기 위해서 반드시 IP 주소와 포트 번호를 확인해야 합니다.





    포트 포워드 연결하기


    웹 사이트에서 IP주소를 토대로 실제 주소를 구축하였다면 이제는 공유기에서 포트포워드를 연결할 차례입니다.


    각 라우터(공유기)의 장치페이지로 접속합니다.

    저는 ipTIME를 사용하고 있으므로 http://192.168.0.1 로 접속을 합니다.

    다른 공유기를 사용하는 경우에 각 라우터 별로 설정페이지가 따로 있으니 참고하시기 바랍니다. 


    고급 설정 > NAT / 라우터 관리 > 포트포워드 설정 으로 들어갑니다.



    여기에 아까 바인딩 연결할 때 IP주소와 포트 주소를 확인하였을 겁니다. 이제 이 공유기 설정부분에서 설정할 차례 입니다.


    1. 내부 IP 주소 : 바인딩에서 설정한 IP주소로 입력합니다.

    2. 내부포트 : 바인딩에서 설정한 포트 번호를 입력합니다.

    3. 외부포트 : http://ddns.도메인:포트번호 에서 사용할 포트번호를 선택합니다.


    위에서 예를 들었던 A, B, C site 설정을 한번 예를 들어보도록 하겠습니다.


    A site

    외부포트 : 88   /  IP주소192.168.0.164  /  내부포트 : 80

    외부에서 접속 주소 : http://ID.iptime.org:88


    B site

    외부포트 : 8080  /  IP주소 : 192.168.0.164  /  내부포트 : 88

    외부에서 접속 주소 : http://ID.iptime.org:8080


    C site

    외부포트 : 8000  /  IP주소 : 192.168.0.164  /  내부포트 : 8080

    외부에서 접속 주소 : http://ID.iptime.org:8000


    이런 식으로 여러개 설정할 수 있습니다.


    예시 화면을 기준으로 설명하자면, 설정한 IP주소는 http://192.168.0.4 / 포트 80 이었기 때문에 

    내부 IP주소는 192.168.0.4 내부 포트는 80~80으로 설정합니다. 그리고 외부포트를 88로 잡아서 http://ID.iptime.org:88 로 접속하면 해당 사이트로 접속되게끔 설정할 수 있습니다.




    앞으로 외부에서 88 포트를 타고 들어오면, 내부 사설망에 192.168.0.4 컴퓨터의 80번 포트를 가진 사이트로 접속을 하게 됩니다.



    브라우저 주소창에 다음과 같이 입력을 하면 정상적으로 접속이 되는 것을 확인할 수 있습니다.

    위에도 설명드렸다시피 DDNS 주소가 아닌 공인 IP주소를 직접 입력해도 상관 없습니다. 공인 IP주소뒤에 :88 을 붙여서 해당 웹 사이트로 접속할 수 있습니다.




    포트포워드에 대한 견해


    개인적으로 포트포워드 기능은 별로 좋아하지 않습니다. 일반적으로 도메인을 구입하여 사용할 때 정상적으로 연결할 수 없고, 뒤에 포트번호를 반드시 써야 하는 특성상 도메인을 구입하여도 변변찮은 웹 포워드 기능만 활용해야 합니다. 웹포워드는 안정적인 도메인 제공을 하지 못해 별로 추천하고 싶지 않습니다.


    가급적이면, 공유기 기능중에 DMZ 기능을 이용하거나, TwinIP(SuperDMZ) 기능을 이용할 것을 적극 추천합니다!






    Posted by Study For Us clamp2x
    • Favicon of http://abc1211.tistory.com BlogIcon 길위의 개발자
      2017.07.21 16:01 신고

      안녕하세요. 평소 눈팅만 하면서 큰 도움 얻고 있습니다..ㅠ 포트포워딩중 문제가 생겨서 댓글을 남깁니다. 회사 컴퓨터로 우분투(vmware) 웹서버(nodejs port:3000)를 돌리고 있습니다. 위부 접속을 위해 포트포워딩을 하려고 iptime 열어서 포스팅 해주신 내용을 토대로 twin ip를 설정하였고, vmware 네트워크 편집에서도 vnet 포트포워딩 설정 잘 마쳤습니다. 그리고 어제 구입한 www.happygate.me 라는 도메인과 연결시켰습니다. 외부 pc에서 접속했을 때 잘열렸습니다. 문제는..친구에게 보라며 도메인을 보냈는데 폰에서 접속이 안되는 겁니다..혹시나해서..도메인 뒤에 :3000 을 붙여서 다시 보냈습니다.www.happygate.me:3000 이렇게요. 열렸습니다..뒤에 포트번호를 붙이니 열리더군요..pc에서는 뒤에 포트 없이도 접속이 가능한데 왜 폰에서는 :3000을 붙여야 되는지 이해가 가질 않습니다..조언부탁드립니다.

    • Favicon of http://abc1211.tistory.com BlogIcon 길위의 개발자
      2017.07.21 16:04 신고

      그리고 덧붙여서 말씀드리면 제 아이폰에 ping 어플을 설치했습니다. 제 회사컴퓨터 공인 ip를 입력후 ping을 하니 잘되었습니다. 그런데왜..브라우저에서는 안될까요. 사파리,google..전부 도메인:3000 , 공인ip:3000 을 해야 페이지가 뜹니다...

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2017.07.21 19:11 신고

        제가 봤을때는 브라우저에서 접속이 되던것 브라우저에 남아있던 캐시때문에 보여지는 것일겁니다.
        일반적인 상황이라면 뒤에 포트번호 3000을 붙이는게 맞는것 같구요. 완전 외부네트워크에서 완전 처음 접속을 하는 PC에서는 잘 접속이 되나요? ^^

    • 일랑인
      2017.07.21 19:18 신고

      아 답변감사드립니다. 완전 외부네트워크에서 접속할때도 뒤에 :3000을 붙어야 되더라구요..ㅜ 그래서 iptime 포트포워드설정에서 다른거 다 지우고 내부 ip 입력, 외부포트 80-80 내부포트 80-80 입력하고 DMZ를 내부 IP주소로 입력하고 적용을 했더니 내부PC, 외부PC에서도 :3000을 붙이지 않고 도메인명(공유IP)으로만 접속이 가능하더라구요. 그런데 걱정이..내부 IP가 수시로 변하는데..예를 들면 192.168.0.10 에서 얼마지나면.. 192.168.0.16 이런식으로 바뀌는데, 과연 DMZ 설정만으로 계속 외부접속이 가능한지요..아니면 수시로 DMZ 나 포터포워딩에서 수시로 바뀌는 내부IP주소로 갱신해야 하는지..이부분이 개념이 아직 안잡혀서요..

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2017.07.21 19:22 신고

        공유기 내에서 내부 네트워크 아이피 주소를 고정시킬 수 있습니다. 그 내용도 이 블로그에 포스팅 되어 있습니다. (제가 모바일이라 주소까지 링크를 못시켜서 죄송합니다. ) 그리고 포트포워딩을 외부 80 내부 3000포트로 해야 정상접근이 될것 같은데 내부 80으로 해도 접근이 되네요. ^^

티스토리 툴바