티스토리 뷰
공인 IP와 사설 IP
인터넷에서 컴퓨터 간에 데이터를 주고받기 위해서는 IP라는 통신 프로토콜이 필요합니다. IP는 전송 계층과 네트워크 계층 사이에서 데이터를 패킷 형태로 분할하고, 각 패킷에 출발지 및 목적지의 IP 주소를 지정합니다. 각 컴퓨터마다 고유한 IP 주소를 갖기 때문에 이를 통해 데이터를 주고받는 컴퓨터를 고유하게 식별할 수 있습니다.
공인 IP
공인 IP는 인터넷 서비스 제공자(ISP)로부터 할당되는 고유한 IP 주소입니다. 고유한 IP 주소이기 때문에 전 세계적으로 다른 인터넷 사용자들과 통신할 수 있습니다.
사설 IP
사설 IP는 내부 네트워크에서 사용되는 IP 주소입니다. 인터넷에 공인되지 않으며, 로컬 네트워크 내에서만 유요한 IP 주소입니다. 일반적으로 가정이나 사무실의 로컬 네트워크에서 사용되며, 인터넷에서 직접 접근할 수 없습니다.
사설 IP의 경우 공인 IP주소를 사용합니다. 즉 공인 IP를 여러 개로 나누어 사용합니다. 마치 공유기를 통해 여러 장비에 인터넷을 연결하여 사용할 수 있는 것과 같습니다.
공인 IP와 사설 IP의 통신
외부의 공인 IP와 내부의 사설 IP가 통신하기 위해서는 NAT 또는 포트포워딩 기술을 사용해야 합니다. 둘 다 사설 IP와 공인 IP 주소 간의 변환을 수행하는 기술입니다.
내부 사설 IP -> 외부 공인 IP로 데이터를 전달하는 것은 어렵지 않습니다. 공인 IP의 경우 고유한 식별자이기 때문입니다. 그러나 공인 IP -> 사설 IP의 접근은 1개의 공인 IP로부터 만들어진 여러 개의 사설 IP 주소를 식별하여 전송해야 합니다. 식별하기 위해 사용되는 기술이 NAT와 포트포워딩 방식입니다.
NAT (Network Address Translation)
내부 사설 IP에서 외부 공인 IP로 데이터를 전송할 때 OutBound 기술을 사용합니다. OutBound 기술은 내부 서버 -> 외부 서버로 데이터를 전송할 때 사용합니다. 사설 서버1(192.168.0.4)에서 외부 서버(223.130.200.107)로 데이터를 전송할 때 라우터는 NAT 테이블에 내부 서버의 정보를 기록합니다. 기록된 NAT 테이블을 사용하여 외부 서버 -> 사설 서버 1로 데이터를 전송하게 됩니다. 이때 공인포트번호를 랜덤으로 지정하여 서버 내부와 연결한 후 데이터를 전달하게 됩니다.
포트포워딩
포트포워딩 기술도 NAT처럼 외부 <-> 내부 데이터를 전송하기 위하여 사용됩니다. NAT의 경우 OutBound를 먼저 수행하여 NAT 테이블에 사설 서버의 정보를 기록하였습니다. 이후 공인포트번호를 랜덤으로 지정하여 서버 내부로 데이터를 전송하였습니다. 그러나 포트포워딩은 공인포트번호를 미리 지정하는 것부터 시작합니다. 미리 지정해둔 포트 번호를 사용하여 사설 서버에 데이터를 전송하게 됩니다. 즉 외부에서 접속하는 포트와 내부 장치로 전달될 포트를 먼저 매핑합니다. 이후 외부에서 특정 포트로 접근하면 내부 장치로 데이터가 전달되는 구조입니다.