NAS & ODROID/NAS, ODROID

NAS 필수 지식 - 포트포워딩 이란?

awesometic 2017. 7. 21. 12:26
반응형

홈 NAS를 사용하기 위해선 포트포워딩을 알고, 실제로 사용하셔야 합니다. 그래서 이번 포스팅을 통해 간단히 정리해드리겠습니다.




포트포워딩을 알기에 앞서, 공유기와 사설 IP, 포트에 대한 개념이 필요합니다.

간단하게 정말 필요한 지식만 설명하겠습니다.


* 공유기

공유기(Router)는 다들 아시다시피 집안에 인터넷을 하나만 설치해도 여기저기서 사용할 수 있도록 해주는 장비입니다.

보통 집에 인터넷을 신청하시면 SKB, KT, LGU 등 ISP(Internet Service Provider, 인터넷 회사)로부터 회선 하나가 들어옵니다. 그리고 그 회선에 자동으로 이름이 붙여져요. 그 이름이 IP입니다. 세상 사람들에게 "난 이 IP를 가지고 인터넷한다!"는 걸 알리면서 하는 거죠.

근데 사실 회선 하나에 장치 하나만 사용이 가능합니다. 랜선이 가다가 두 갈래로 나눠지고 그러진 않죠. 불과 10년 전엔 인터넷을 컴퓨터 한 대를 위해 신청하곤 했었습니다.

하지만 지금은 컴퓨터 뿐 아니라 거실에도 인터넷 TV, 그리고 개개인의 스마트폰 등 회선 하나를 여러 기기에서 사용할 필요가 생겼어요.

그래서 유무선 공유기를 구매해 들어오는 그 회선을 유무선 공유기의 WAN 부분에 먼저 꼽아줍니다.

그러면, 공유기는 LAN을 통해 그걸 여러 갈래로 나눠줍니다. 무선으로도 쏴주고, 유선으로도 나눠줘요. 그리고 우리는 그 공유기를 통해서 인터넷도 하고 TV도 보는 겁니다. 실제로 인터넷 TV를 신청해도 기사 아저씨가 다 이렇게 해줍니다. 뭔가 네모난 거 몇 개 거실에 두거나 어디 구석에 벽을 바라보며 일을 하실 겁니다.

공유기 입장에서 들어오는 인터넷 회선은 넓은 세상이므로 WAN(Wide Area Network), 가정에 나눠줄 땐 좁은 지역이므로 LAN(Local Area Network)이라고 표현합니다.

노란 곳이 WAN, 나머지가 LAN이에요. 노란 곳에 집으로 들어오는 인터넷 을 꼽아 주고, 나머지 주황색인 곳에 컴퓨터나 오드로이드 등을 꼽아주겠죠.


* 공인 IP와 사설 IP

(참고) IP는 10진수 숫자 3개씩 4덩어리로 이루어져 있습니다. 굳이 저렇게 말하는 이유는, 사실 IP는 컴퓨터가 알아보기 쉽게 2진수 32비트로 이루어져 있기 때문입니다.

근데 회선 하나당 IP는 하나잖아요. 어떤 장치든 인터넷을 하려면 IP 주소가 꼭 필요합니다. 공유기는 IP 하나를 여러 개로 나눠주는 역할을 수행해서 이를 가능하게 해줘요.

ISP에서 저희 집에게 부여해준 IP는 공인 IP입니다. 세상 사람들 누구나 그 공인 IP만 있으면 저희 집 컴퓨터로 접속할 수가 있어요. 여기서 접속한단 말은 꼭 어떻게 인터넷으로 접속하는 게 아니라, 지금 이 IP를 쓰는 장치가 켜져있나 정도는 알 수 있다는 말입니다.

공유기는 집으로 들어오는 그 공인 IP를 지가 제일 먼저 받습니다. 그리고 여러 개의 가짜 IP를 만들어요. 어떤 스마트폰이 이 공유기 와이파이에 접속하면, 공유기는 준비한 가짜 IP 하나를 스마트폰한테 줘요.

이런 식입니다. 의미가 조금 다르지만, 가운데 NAT을 공유기라고 보시면 돼요.

그런 가짜 IP를 사설 IP라고 합니다. 일반적인 가정의 사설 IP는 보통 192.168.0.0 ~ 192.168.255.255 입니다. 이렇게 나눠지는데 있어선 IP 클래스, 서브넷 마스크에 대한 개념이 있어야 하는데 그런 자세한 건 저희는 몰라도 괜찮아요. 사진은 이상하게 192.68.x.x 로 되어 있네요.

이런 사설 IP는 외부에 아무리 알려줘도 접근을 못해요. 친구한테 "나 NAS 구축함 ㅎㅎ IP가 192.168.0.10인데 와서 영화 받고 가" 라고 얘기해봐야 접속을 못합니다. 그 친구도 IP가 192.168.0.10 일 수 있어요. 그럼 그 둘은 혼란에 빠집니다.

그럼 어떻게 외부에서 192.168.0.10에 접속을 가능하도록 할까요?


* 포트

여기서 포트포워딩이 필요합니다. 먼저 포트에 대해서 설명 드릴게요.

포트는 0 ~ 65535의 숫자로 표현할 수 있어요. 그래서 포트 번호 라고도 표현합니다.

인터넷을 사용하는 모든 프로그램은 포트 번호를 하나씩 지정해 사용합니다. 지금 이 게시글을 보고 있는 웹 브라우저도 포트를 사용하고 있어요.

자주 쓰이는 포트, 가령 FTP(21), SSH(22), Web(80) 등등은 이미 국제 기관에서 정해놨습니다. Well-known 포트 라고도 해요. 0 ~ 1023번 입니다.

그 외에 1024 ~ 65535 번 포트는 마음껏 사용하실 수 있습니다. 물론 각 프로그램마다 정해져있긴 하지만, (Plex의 경우 32400) 개발자가 임의로 "내 프로그램은 40000번이야!" 하고 정할 수 있기 때문에 맘대로 정해둔 거에요. 실제로 인터넷을 통해 서비스를 제공하는 소켓 프로그래밍을 할 때 들어올 포트를 임의로 정하고 시작합니다.

이제 상황을 두고 설명하겠습니다. 제 오드로이드 NAS가 지금 잘 돌고 있습니다. 그 NAS에서 제공하는 것 중 웹 사이트와 Plex가 있어요.

웹은 국제적으로 정해져 있습니다. 80번이에요. Plex는 Plex 개발자가 자기네는 32400 번이라고 정해놨습니다.

그럼, 각각 접근 방법은 다음과 같습니다. 오드로이드의 IP를 192.168.0.10 이라고 했을 때,

192.168.0.10:80 -> Web

192.168.0.10:32400 -> Plex

가 되는 거에요. IP 뒤에 ":숫자" 형식은 포트를 나타내는 규칙입니다.

192.168.0.10:80에 접근하면 웹 사이트로, 192.168.0.10:32400 으로 접근하면 Plex에 접속이 되는 거에요.

하지만 외부에서 192.168.0.10:80 으로 백날 접속해봐야 오드로이드에 접근이 안 됩니다. 192.168.0.10은 공유기가 만든 가짜 IP인 사설 IP잖아요.


* 포트포워딩

그래서 공유기에 규칙을 알립니다. "누군가 80번 포트로 접근하면 192.168.0.10으로 전달해줘". 이런 행위를 포트 포워딩(Port Forwarding)이라고 합니다.

만약 ISP에서 부여해준 공인 IP가 100.100.100.100 이에요. 그럼,

100.100.100.100:80 => 공유기 => 192.168.0.10:80

100.100.100.100:32400 => 공유기 => 192.168.0.10:32400

처럼 전달해줍니다.

만약 FTP(21)는 오드로이드가 아니라 컴퓨터로 전달하고 싶어요. 컴퓨터의 사설 IP는 192.168.0.30이구요. 이것도 규칙으로 가능합니다. 이것까지 추가하면,

100.100.100.100:80 => 공유기 => 192.168.0.10:80

100.100.100.100:32400 => 공유기 => 192.168.0.10:32400

100.100.100.100:21 => 공유기 => 192.168.0.30:21

이런 식으로 하나씩 규칙을 정해주는 겁니다. 그럼, 오드로이드 NAS에 외부에서도 접근이 가능하겠죠.

ipTIME 공유기의 포트포워딩 설정 화면은 다음과 같습니다.

이렇게 규칙을 설정해주는 거에요. 아주 쉽습니다. NAS로 사용한다면 내부 IP는 접속할 오드로이드 NAS의 IP로, 외부 포트와 내부 포트도 적절하게 필요한 것만 설정해주면 되겠죠. 21, 80, 443(SSL), 32400 등등.

마지막으로 큰 구조는 아래와 같아요.

이 그림을 보시고 이제 이해가 되신다면, 포트포워딩을 이해하신 겁니다.


이번 게시글에선 포트포워딩의 개념만 설명했고, 실제로 규칙을 만들어 적용해보는 건 오드로이드 XU4 + OMV 로 자작 NAS 구축하기에서 이어가겠습니다.




그림 출처
1. http://www.ilovepc.co.kr/news/articleView.html?idxno=13117
2. http://blog.skbroadband.com/752
3. http://shaeod.tistory.com/262
4. http://www.ubergizmo.com/how-to/how-to-set-up-port-forwarding/

반응형

'NAS & ODROID > NAS, ODROID' 카테고리의 다른 글

NAS에 DDNS 적용하기 - DuckDNS  (11) 2017.08.02
NAS 기본 지식 - 리눅스  (0) 2017.08.01
오드로이드 XU4 UAS 해제하기  (2) 2017.07.19
오드로이드 XU4 NAS를 위해선 OMV  (0) 2017.07.17