포트 포워딩이란 무엇이며 어떤 용도로 사용됩니까?


답변:


318

기초

포트 전달을 실제로 설명하려면 먼저 라우터의 기능 에 대해 조금 더 이해해야합니다 . 인터넷 서비스 제공 업체는 인터넷 연결에 하나의 IP 주소를 할당 합니다. 인터넷상의 모든 컴퓨터에는 고유 한 IP 주소가 필요하지만 집에 여러 대의 컴퓨터가 있고 하나의 주소 만 있습니다. 어떻게 작동합니까?

당신이 무엇인지 알고 그냥 그것을 할 방법을 알고 싶다면 : http://portforward.com/이 있는 방법에 다른 라우터의 문자 그대로 수백 개의 스크린 샷. 자동 포트 구성 도구의 광고 페이지 뒤에 설명서가 숨겨져 있습니다. (조금 클릭하면 찾을 수 있습니다.)

NAT-무엇입니까? 우리는 왜 그것을 사용합니까?

홈 라우터에는 NAT (Network Address Translation)라는 기능이 내장되어 있습니다. 네트워크 내에서 컴퓨터의 주소는 192.168.1.100입니다. 192.168. * 범위 (또는 10. *) 범위의 모든 주소는 " 개인 " 또는 " 예약 된 " 주소입니다. 이 주소는 IANA에 의해 공식적으로 사설 네트워크 내부에서 사용되도록 할당됩니다. 라우터는 DHCP 를 통해 연결된 각 컴퓨터에 이러한 주소를 자동으로 할당 합니다 . 이 주소는 네트워크의 컴퓨터가 라우터와 서로 통신하는 방법입니다.

라우터에는 인터넷에 연결하는 별도의 네트워크 인터페이스가 있습니다. 이 인터페이스는 ISP가 할당 한 주소가 매우 다릅니다. 이 주소는 앞에서 언급 한 주소 중 하나이며 라우터는이 주소를 사용하여 인터넷의 다른 컴퓨터와 통신합니다. 네트워크 내부의 컴퓨터에는 라우팅 할 수없는 개인 IP 주소가 있습니다. 즉, 패킷을 인터넷으로 직접 보내면 패킷이 자동으로 삭제됩니다 (개인 주소가있는 패킷은 안정성 때문에 인터넷을 통과 할 수 없습니다). 그러나 라우터에는 라우팅 가능한 주소가 있습니다. 네트워크 주소 변환은 이름에서 알 수 있듯이 번역합니다. 이 두 종류의 주소 사이에서 네트워크 내부의 여러 컴퓨터가 하나의 주소로 인터넷에 하나의 컴퓨터로 표시 될 수 있습니다.

세부 사항

이것은 복잡하게 들릴 수 있지만 실제로 라우터가 수행하는 방법은 매우 간단합니다. 네트워크 내부의 컴퓨터가 인터넷의 컴퓨터에 연결하려고 할 때마다 연결 요청을 라우터로 보냅니다 ( 기본 게이트웨이 매개 변수가 라우터의 주소로 설정되어 있기 때문에 라우터로 보내야 함 ). 그런 다음 라우터는 해당 연결 요청 (TCP / IP의 "SYN 요청")을 가져 와서 소스 주소 ( "답장"또는 반송 주소)를 변경하여 컴퓨터의 개인 IP에서 공용 IP로 변경합니다. 응답이 라우터로 전송되도록 라우터. 그런 다음 데이터베이스 ( NAT 테이블 이라고 함 )에서 연결이 시작되어 나중에 기억할 수 있도록 기록됩니다.

응답이 원격 컴퓨터 ( "SYN-ACK")에서 되돌아 오면 라우터는 NAT 테이블을보고 해당 포트의 해당 호스트에 대한 연결이 네트워크의 개인용 컴퓨터에 의해 이전에 시작된 것을보고 대상을 변경합니다. 주소를 컴퓨터의 개인 주소로 보내고 네트워크 내부로 전달합니다. 이런 식으로 패킷이 네트워크간에 계속 전송 될 수 있으며 라우터는 주소를 투명하게 변경하여 작동합니다. 연결이 종료되면 라우터는 NAT 테이블에서 연결을 제거합니다.

아니면 이런 식으로 생각하십시오

이것은 은유로 시각화하기가 조금 더 쉬울 수 있습니다. 미국에서 중국 고객과 함께 일하는화물 운송업자라고 가정 해 봅시다. 미국 내 많은 고객에게 패키지를 보내야하지만 세관 / 서류상의 이유로 한 곳으로 만 패키지를 보내는 것이 더 쉽습니다. 따라서 패키지는 미국 (인터넷)의 실제 목적지가있는 중국의 클라이언트 중 하나 (이 예에서는 개인 네트워크)에서 제공됩니다. 상자의 주소 레이블을 미국 (공용) 주소로 변경하고 반송 주소를 자신의 공개 주소로 변경합니다 (고객이 불편하지 않으면 서 중국으로 직접 반품 할 수 없기 때문에). . 고객이 제품을 반환하면 고객에게 제공됩니다. 당신은 당신의 기록에서 그것을보고 중국에서 어떤 회사를 봤는지,

이것은 훌륭하게 작동하지만 약간의 문제가 있습니다. 고객이 회사에 무언가를 보내야한다면, 무엇인가를 지불하기 위해 머니 오더를 해봅시다. 또는 인터넷상의 컴퓨터가 라우터 (SYN 요청), 즉 네트워크에있는 웹 서버와의 연결을 시작한다고 가정 해 봅시다. 편지 / 패킷에는 라우터의 공개 주소 만 있으므로 라우터는 실제로 어디로 보낼 것인지 모릅니다! 개인 네트워크의 컴퓨터 중 어느 컴퓨터 나 대상 컴퓨터가 아닌 다른 컴퓨터로 향할 수도 있습니다. 다른 사람의 집 전화로 전화를 걸 때이 문제가 발생했을 수도 있습니다. 전화를 걸 때 문제가되지 않지만 전화를 걸 때 전화를 건 사람을 알 수있는 방법이 없으므로 잘못된 사람이 응답 할 수 있습니다.

인간이 이것을 쉽게 분류 할 수는 있지만, 네트워크상의 모든 컴퓨터가 다른 컴퓨터를 모두 알고있는 것은 아니기 때문에 컴퓨터에는 훨씬 까다 롭습니다.

마지막으로 포트 포워딩에 도착합니다

포트 포워딩은이 문제를 해결하는 방법입니다. 라우터 내부에서 네트워크로 들어오는 컴퓨터 중 어떤 컴퓨터로 연결해야하는지 알려주는 방법입니다. 이 작업을 수행 할 수있는 세 가지 방법이 있습니다.

  • Faux-DMZ : 많은 라우터에는 DMZ라는 기능이 있습니다. 이것은 일종의 네트워크 보안 구성 인 완충 영역을 나타냅니다. 홈 라우터의 DMZ는 실제 DMZ의 기능이 없기 때문에 종종 faux-DMZ라고합니다. 가장 간단한 방법은 들어오는 연결 처리입니다. 들어오는 모든 연결 요청은 네트워크 내부에 지정된 요청으로 전송됩니다. 라우터 구성에 IP 주소를 입력하면 들어오는 모든 연결이 그곳으로 이동합니다. 그러나 들어오는 연결을 수락해야하는 컴퓨터가 여러 대있을 수 있기 때문에 항상 작동하지는 않습니다. 이를 위해 우리는 ...
  • 포트 포워딩 : 모든 네트워크 연결 요청에는 "포트"가 포함됩니다. 포트는 숫자 일 뿐이며, 컴퓨터가 패킷을 알고있는 방법의 일부입니다. IANA는 포트 80이 HTTP에 사용되도록 지정했습니다. 이는 포트 번호 80이라고하는 수신 패킷이 웹 서버를위한 요청이어야 함을 의미합니다. 라우터의 포트 포워딩을 통해 포트 번호 (또는 라우터에 따라 범위 또는 숫자 조합)와 IP 주소를 입력 할 수 있습니다. 포트 번호가 일치하는 모든 수신 연결은 해당 주소를 가진 내부 컴퓨터로 전달됩니다.
  • UPnP 포트 전달 : UPnP 전달은 포트 전달과 똑같은 방식으로 작동하지만 네트워크를 설정하는 대신 네트워크 내부의 컴퓨터에있는 소프트웨어가 라우터가 지정된 포트의 트래픽을 전달하도록 자동 설정합니다.

사용법 예를 살펴 보겠습니다. 카운터 스트라이크와 같은 많은 멀티 플레이어 비디오 게임을 사용하면 다른 사람들이 당신과 놀기 위해 연결할 수있는 게임 서버를 컴퓨터에서 실행할 수 있습니다. 컴퓨터는 놀고 싶은 사람들을 모두 알지 못하므로 연결할 수 없습니다. 대신 인터넷에서 컴퓨터로 새 연결 요청을 보내야합니다.

라우터에 아무것도 설정되어 있지 않으면 이러한 연결 요청이 수신되지만 네트워크 내부의 어떤 컴퓨터에 게임 서버가 있는지 알 수 없으므로 무시할 것입니다. 연결할 수 없음을 나타내는 패킷을 되돌립니다). 다행히 게임 서버에 대한 연결 요청에 사용될 포트 번호를 알고 있습니다. 따라서 라우터에서 게임 서버가 예상하는 포트 번호 (예 : 27015)와 게임 서버가있는 컴퓨터의 IP 주소 (예 : 192.168.1.105)로 포트 전달을 설정합니다.
라우터는 들어오는 연결 요청을 네트워크 내부의 192.168.1.105로 전달하고 외부 컴퓨터는 연결할 수 있음을 알게됩니다.

또 다른 예로는 두 대의 컴퓨터가있는 로컬 네트워크가 있으며 IP 192.168.1.10이있는 두 번째 컴퓨터는 Apache를 사용하여 웹 사이트를 호스팅합니다. 따라서 라우터는 들어오는 포트 80 요청을이 시스템으로 전달해야합니다. 포트 전달을 사용하면 두 시스템이 동시에 동일한 네트워크에서 실행될 수 있습니다.

포트 포워딩 예제 그래프

대부분의 최신 게임은 UPnP를 사용하므로 수동으로 (완전히 자동이 아닌) 수동으로 수행 할 필요는 없지만 비디오 게임은 일상적인 사용자가 포트 포워딩을받는 가장 일반적인 장소 일 것입니다. 인터넷의 일부 중개자가 아닌 네트워크의 무언가에 직접 연결할 수있을 때마다이 작업을 수행해야합니다. 여기에는 자체 웹 서버를 실행하거나 원격 데스크톱 프로토콜을 통해 컴퓨터 중 하나에 연결하는 것이 포함될 수 있습니다.

보안에 대한 메모

NAT의 좋은 점 중 하나는 NAT가 노력없이 기본 제공되는 보안을 제공한다는 것입니다. 많은 사람들이 취약한 기계를 찾기 위해 인터넷을 돌아 다니며 다양한 포트와의 연결을 열려고 시도합니다. 이것들은 들어오는 연결이므로 위에서 설명한 것처럼 라우터가 연결을 끊습니다. 즉, NAT 구성에서는 라우터 자체 만 들어오는 연결과 관련된 공격에 취약합니다. 라우터는 소프트웨어가 많은 전체 운영 체제를 실행하는 컴퓨터보다 훨씬 단순하므로 취약성이 낮기 때문에 좋습니다. 따라서 네트워크 내부의 컴퓨터를 DMZ 대상으로 설정하면 (DMZ 대상으로 설정) 해당 컴퓨터의 보안 계층이 손실됩니다. 마치 직접 연결된 것처럼 보안을 유지해야합니다. 물론 포트를 전달할 때마다 수신 측의 컴퓨터가 해당 특정 포트에 취약 해집니다. 따라서 잘 구성된 최신 소프트웨어를 실행하십시오.


2
간단히 언급했지만 포트 포워딩의 DMZ 스타일 사용의 중요성에 대해 설명 할 수 있습니다. 프로덕션 환경에서 SQL 서버 (또는 무엇이든)를 외부 세계에 노출시키는 것이 좋은 아이디어가 될 수있는 단일 인스턴스를 생각할 수 없습니다. 포트 포워딩을 사용하면 보안을 심각하게 손상시키지 않으면 서 보호 된 리소스를 얻을 수 있습니다.
브라이언 반덴버그

11
NAT 섹션에서 확장되지 않은 한 가지 세부 사항은 네트워크의 컴퓨터가 DHCP를 사용하여 라우팅 할 수없는 내부 개인 IP 주소를 얻는 경우 할당 된 IP 주소가 다를 수 있고 포트 전달이 발생할 수 있다는 사실입니다. 혼란스러워 각 컴퓨터의 네트워크 주소를 수동으로 설정하여이를 피하는 것이 가장 좋습니다. portforward.com은 이것의 중요성을 강조하고 시스템에 고정 IP 주소를 설정하는 방법을 설명하는 안내서를 가지고 있지만, 지금 예약 된 NAT 주소를 피하기 위해 라우터의 DHCP도 구성 할 필요는 없습니다.
martineau

2
@jcrawfordor, 안녕하세요, UPnP가 완전 자동으로 얼마나 정확한지 설명해 주 시겠습니까? UPnP 란 무엇이며 어떻게 작동합니까?
Pacerier

1
@martineau는 DHCP 주소를 예약하는 것이 좋은 방법입니다. 일부 라우터는 주소가 아닌 특정 클라이언트로 포트 전달할 수 있으므로 훨씬 더 바람직합니다.
Baldrickk

2
"포트는 단지 숫자이며 컴퓨터가 패킷이 무엇인지 어떻게 알 수 있는지의 일부입니다." 오해의 소지가 있습니다. 응용 프로그램의 포트 번호를 고정하는 것은 규칙이며 패킷 유형을 결정하는 요소는 아닙니다. 기껏해야 포트 80을위한 패킷은 HTTP 인 것으로 추측 될 수있다. 더 이상 아무것도 아니다. 포트 80을 수신하는 애플리케이션에 전적으로 의존 할 것이다.
codeman48
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.