본문 바로가기

IT 정보/Mobile, Cloud

나스 초보 설명서 - DDNS, 포트 포워딩

반응형

나스 초보 설명서 - DDNS, 포트 포워딩


나스를 내부에서만 사용한다면 내부IP + NAS의 서비스포트로 연결해서 사용하면 아무 문제 없이 사용이 됩니다.

하지만... 스마트 클라우드 시대에 외부에서도 써야죠.
직장 PC에서도 쓰고 스마트폰에서도 쓰고...
그러려면 외부에서 우리집으로 연결을 하고 나스로 연결이 되게끔 해서 써야만 가능합니다.

여기서 우리집으로 연결하는 방법이 DDNS, 거기에서 나스로 연결이 되게끔 하는게 포트포워딩입니다.

쉽게? 설명하면

집에 케이블 방송이 갑자기 안나온다하면
폰에서 T전화나 후후등의 앱으로 해당 고객센터를 검색해서 해당 고객센터 이름을 누르면 자동으로 해당번호로 전화를 걸 수 있습니다.
나는 그 전화번호를 외울 필요없이 그냥 이름으로 전화 걸면 연결이 됩니다. 이게 DNS입니다.
전화번호가 가끔 빠껴서 자동으로 변경된 번호를 알아서 바꿔놓아두는게 DDNS (Dynamic DNS - 동적 DNS) 입니다.

그렇게 전화가 연결됐을때 내선 번호를 입력합니다. 이게 포트 입니다.
고장신고는 몇번 요금안내는 몇번 상담원 연결은 몇번
네트웤에선 Http-80, FTP-21, Telnet-22, Samba-139 등등
하지만 교환기 자체에는 전화를 받을 사람이 없죠.
공유기 자체에도 일반 공유기엔 설정부분말고는 다 사용안되는 포트들입니다.(간이 나스 없는 포트일때)
교환기에서 1번을 누르면 실제 사무실의 내선번호 2001 번으로 연결해주고
2번을 누르면 실제 사무실의 3002번으로 연결해주고 이렇게 설정을 해둬야 통화가 연결이 됩니다.
이렇게 공유기에서 실제 사용하는 나스(NAS)로 넘겨주는것이 포트 포워딩입니다.

실제 네트웤 이야기로 해보면

1. DDNS
우선 IP라는건 들어봤을겁니다. 내가 사용하는 인터넷 회선의 주소입니다.
이론상 가능한 주소는 0.0.0.0(맞나? 암튼) 255.255.255.255 입니다.
숫자 4개로 이루어져 있는데 한칸당 1 Byte=8 Bit => 2의8승 = 256이기 때문에 그렇구요.
아뭏든 이런 4개의 숫자로 되어 있는게 실제 인터넷 주소입니다.

하지만 일반인들 중에 저걸 외워서 쓰는 사람은 없죠?
google.com 이 외우기 쉽지 59.18.34.88 이렇게 외우고 입력하고 사용하라면 ㅠㅠ
이렇게 숫자로 된 ip를 우리가 알기 쉬운 글자로 바꿔서 사용하는 것을 DNS라고 합니다.

DDNS는 Dynamic DNS 입니다. 동적으로 변경된다는 얘기죠.
기업들처럼 비싼 돈을 내고 고정ip를 쓰는것이 아니라면 언젠간 바뀔 수 있는 유동-ip를 사용하게 되어 있습니다.
예전엔 모뎀 껐다켜면 바뀌긴 했지만 요즘은 Mac Address라는걸로 설정되어 있어서 잘 바뀌진 않습니다만 그래도 바뀔 가능성이 있죠.

그래서 내 ip를 외우고 다니더라도... DNS에 현재 ip를 등록해서 쓰더라도 ip가 바껴버리면 연결 안됩니다.
이게 정기적으로 1년에 한번 바뀐다라면 뭐 그때 바꿔주면 되는데
1달후에 바뀔지 1시간뒤에 바뀔지 모른다면 문제가 생기죠.
그래서 ip가 바뀌면 자동으로 바뀐 ip로 접속하게끔 해주는게 DDNS(Dynamic DNS)입니다.

DDNS는 공유기에서 제공되기도 하고 NAS에서 제공되기도 합니다.
내가 사용하는 제품에는 둘 다 그런게 없다?하면... 유료서비스로 쓰던지 잘 없지만 무료로 해주는곳 등을 찾아서 써야겠죠.

2. 포트 포워딩

그런데 초보들이 오해하는게 NAS에서 DDNS를 설정하면 NAS의 주소가 DDNS로 연결되는지 압니다.
그래서 DDNS를 입력하면 나스가 연결되야 하는데 공유기 설정이 나온다던지 에러가 난다고 질문글이 무지하게 올라오죠.

나스를 실제 인터넷 회선에 바로 연결했다면 그말이 맞습니다만 보통 공유기 밑에 연결하죠.
그러면 실제 (공인)IP는 공유기까지만 연결됩니다. NAS는 그 밑에 내부ip(192.168.x.x)로 되어 있어서 외부에서 바로 접속 못합니다.

아파트 단지에서 피자를 시켰는데 xx아파트 몇호라고만 말하고 피자가 왜 안오냐고 묻는거랑 같습니다.
몇동인지를 알아야 정확하게 도착하죠.
마침 입구 수위실에서 피자를 시켰으면 아 내거 온건가보다 하고 먹는거고 아니면 몰라!하고 돌려보냅니다.
이게 위에 적은 공유기 설정이 나온다던지 에러가 난다는 말입니다.

그래서 포트 포워딩이란걸로 공유기로 들어온 요청을 나스로 넘겨서 나스의 서비스들을 이용 가능하게 하는겁니다.

포트란것은 각 서비스들이 사용하는 통로입니다.
위에서 IP란것을 얘기했었는데 이건 네트웤의 주소이고 실제 데이터들이 왔다갔다 하는 것은 포트(통로)를 통해서 합니다.
포트는 0부터 65535 (2의 16승)까지이며, 0부터 1023 (2의 10승)까지는 시스템들이 사용하도록 미리 규정된 포트들이고
사용자나 프로그램들은 그 이상의 포트를 정의해서 사용합니다.
일반적으로 브라우저로 서핑하는 Http는 80포트, FTP는 21포트 등을 규정해놓고 사용합니다.

그러니까 브라우저에서 http://google.com 하면 자동으로 80 포트를 사용해서 연결됩니다. DDNS주소도 http://xxxxx.iptime.org 하면 80포트입니다.
그래서 그냥 DDNS만 입력하고 포트포워딩 안되어 있으면 공유기가 80포트로 설정에 연결되어 있다면 설정화면이 뜨고 아무것도 안되어 있으면 아무것도 없다고 에러납니다.
마찬가지로 FTP도 ftp://xxx.iptime.org 로 연결하면 자동으로 21 포트로 연결이 됩니다.
이렇게 기본포트로 사용할때는 뒤에(또는 프로그램 설정의 포트 난에) 따로 입력하지 않아도 자동으로 기본포트로 연결됩니다.

가끔 본적이 있는지 모르겠는데 http://xxx.xxxx.com:8080 이렇게 뒤에 :8080 같은게 붙은걸 본적이 있나요?
이건 기본 80포트를 쓰지않고(또는 다른 서비스가 사용중이라서) 해당 서비스는 8080 포트로 연결되게해서 쓴다. 라는 겁니다.

이제 포트 포워딩을 어떻게 설정하느냐를 알아보겠습니다.

저는 iptime 공유기 + iptime NAS를 사용중이라서 사실 기본 포트포워딩은 다 자동으로 설정됩니다.
samba의 경우는 직접 추가하긴 했습니다.

공유기마다 표시방법은 조금 다르긴 하겠지만 내용은 동일합니다.
외부에서 어떤 포트에 대한 요청이 오면 내부의 어느 ip에 어느 포트로 넘겨줄것인가를 설정하는 것입니다.

자 그림을 봅시다.

사용자정의규칙 : 그냥 이름. 알기 쉽게 아무거나 적으면 됩니다
내부IP           : 어느 ip로 보낼것인가? NAS의 ip를 적으면 됩니다.
외부 포트        : 외부에서 사용할 포트입니다. 외부에서 DDNS와 같이 (또는 기본포트라 생략된) 입력하는 포트.
내부 포트        : 내부(NAS)에서 사용하는 실제 포트입니다.

ftp와 http는 iptime에서 기본적으로 셋팅해준거고 SAMBA는 제가 직접 추가 했습니다.
139번 포트는 거의 모든 인터넷 제공회사에서 보안상?등의 이유로 사용이 막혀있어서 따로 사용하기 위해 임의의 포트로 제가 바꾼겁니다.
외부에서 DDNS:9139 로 연결 요청이 오면 내부의 나스(192.168.0.x)의 139 로 연결을 넘겨주라는 설정입니다.



기본적으로는 외부포트와 내부포트를 같은 것을 써도 됩니다.
FTP      192.168.0.x     21     21
HTTP    192.168.0.x     80     80

그런데 왜 9139, 9021, 9080 으로 썼느냐?
우선 9139는 위에서 말했지만 통신사에서 막혀있어서 외부에서 139로 연결이 안됩니다.
FTP(21) 포트 등은 kT같은 경우는 열려있는데 SKB였나? 이것도 막혀 있는 경우도 있습니다. 그럴땐 외부포트에 21 적으면 연결안됩니다.
이렇게 통신사나 회사 네트웤 정책상 해당 포트가 막혔다면 이렇게 임의의 포트를 설정해서 써야 합니다.

두번째... 보안상...
21, 80은 위에서 기본적으로 정해져 있는 포트라고 했었죠? 아는 사람은 누구나 다 안다는 뜻입니다.
그러면 누구라도 내ip(또는 DDNS)만 알면 그냥 내 나스까지 해당 서비스(http, ftp 등)으로 바로 연결이 된다는 겁니다.
그래서 외부포트는 알려진 포트가 아닌 내 맘대로 임의의 포트를 사용하는 거죠.
사실 어느정도 아는 사람이라면 바꿔놔도 다 찾아내긴합니다만...
뭐 자물쇠 여러개 달아놔도 도둑이 맘만 먹으면 다 들어오긴 합니다만 그래도 단순 도둑등은 막겠죠.

자 저렇게 포트포워딩 설정을 해 놓고 어떻게 연결하는지 알아보겠습니다.
나스의 FTP 서비스를 filezila 를 이용해서 내/외부에서 연결하는 방법을 보겠습니다.
다른 서비스도 다른 프로그램이라해도 기본은 같습니다.


  • 내부 연결
호스트에는 나스의 ip를 입력합니다.(예. 192.168.0.100)
로그온 유형 : 일반으로 하고 나스에서 생성한 해당 서비스에 권한이 있는 사용자id와 비밀번호를 입력합니다.


그런데 포트에는 아무것도 안적었죠? 위에서 말했다시피 기본포트는 생략해도 알아서 연결됩니다.
만약 나스 설정에서 포트를 다른것으로 바꿨다하면 그 포트를 적어줘야 합니다.



  • 외부 연결
호스트에는 DDNS 주소를 적어줍니다.
로그온 유형은 내부와 동일합니다.


여기에는 포트에 포트포워딩에서 외부포트로 설정해준 정확한 값을(예. 9021) 적어줘야 정상 연결이 됩니다.
만약 내부처럼 비워두면 21번 포트로 연결시도하고 공유기는 포트포워딩에 21포트에 대한것은 없기때문에 에러내고 맙니다.

포트를 제대로 안적고 연결이 안된다고 질문하는 사람도 많습니다.
그래서 임의의 포트를 쓰면 조금 불편합니다.


사용면에서 보면 내/외부 모두 기본포트 (21, 80 등)으로 쓰는게 편합니다. 기본 포트는 생략해도 되니까요.
따로 정의하면 프로그램의 설정에 있는 포트에도 값을 입력해야만 하고
기본포트면 ftp://xxx.iptime.org 라고만 입력해도 되는걸 ftp://xxx.iptime.org:9021 까지 입력해야만 연결됩니다.
하지만 약간의 보안상 문제가 있다는것...
어떻게 쓸지는 본인의 선택으로...

내부ip로 사용할 나스의 포트까지 임의로 바꿔쓰는 사람도 있는데
직장 등에서 내부 네트웤에 많은 사람이 있고 혼자나 특정그룹만 사용한다고했을땐 그게 약간의 의미가 있긴 하지만
(그래봐야 알려면 다 안다고 했죠? ^^)

집에서 혼자나 가족끼리 다 공유해서 쓰는데 굳이 바꿔서 불편하게 쓸 필요는 없습니다.



ddns, 포트포워딩 설정했는데 접속 안될때 아래 글을 참고하세요.

2018/05/22 - DDNS 로 나스 외부접속이 되지 않을때



반응형