IP와 포트

RHUK2·2022년 3월 31일
0

Network

목록 보기
4/6

📢 22/05/18 복습


📚 Reference


개발자 IN, https://developerin.tistory.com/18

참고 사이트에 내용을 개인적으로 복습하기 편하도록 재구성한 글입니다.
자세한 설명은 참고 사이트를 살펴보시기 바랍니다.


IP란?


IP는 Internet Protocol의 약자로 인터넷상에서 데이터를 주고 받기 위한 통신 규칙입니다. 데이터를 주고 받는 주체들은 네트워킹이 가능한 장비들입니다. 예를 들면 컴퓨터, 핸드폰, 태블릿, IoT 장비 등이 있습니다.

그런데 이들끼리 데이터를 주고 받기 위해서는 출발지와 도착지에 대한 정보가 필요합니다. 친구끼리 통화할 때 상대방의 전화번호가 필요한 것처럼 말이죠. 여기서 IP 주소란 놈이 전화번호 역할을 하게 됩니다.

IPv4

현재 범용적으로 사용되고 있는 IP 주소는 아래와 같은 체계를 가집니다.

📌 192.168.0.231
📌 121.205.34.222
📌 172.55.124.11

위와 같은 체계를 IPv4라고 합니다. 000.000.000.000부터 255.255.255.255까지 총 2322^{32}개로 대략 42억개의 주소를 가질 수 있습니다.

IPv6

기술이 발전함에 따라 네트워킹이 가능한 장비들이 많아지면서 미래에는 IP가 부족해질 것을 예상하여에 생겨난 것이 IPv6입니다. 아래와 같은 체계를 가집니다.

📌 2001:0DB8:1000:0000:0000:0000:1111:2222
📌 2031:0000:00D3:2F3B:02AA:00FF:Fe28:9C5A

IPv6는 21282^{128}개의 IP를 만들어낼 수 있으며, 아직까지는 상용화 단계에 이르지 못했기 때문에 대체되기까지는 상당한 시간이 필요할 것으로 보입니다.


IP 종류


공인 IP

외부에 공개되어 있는 IP입니다. 전 세계에서 유일하며, ISP(인터넷 서비스 공급자)를 통해 제공 받습니다. ICANN 기관에서 국가 별로 사용할 IP 대역을 관리하고 있으며 KT, SKB, LG 등에서 IP를 사용자에게 제공합니다.

외부에 공개되어 있기 때문에 인터넷에 연결된 다른 컴퓨터에서 접근이 가능하며, 해킹의 위험이 있기 때문에 보안 프로그램을 설치해야 합니다.

사설 IP

로컬 IP, 가상 IP라고도 불리며, 외부에서 접근할 수 없는 IP를 의미합니다. 일반 가정이나 회사 내부에서 사용할 목적으로 할당된 IP주소이며, 공인 IP가 할당된 라우터나 공유기를 통해 로컬 네트워크에 연결된 기기에 사설 IP가 할당됩니다.

사설 IP를 사용하면 IPv4주소의 부족을 어느정도 해결할 수 있으며, 외부에서 직접 접근할 수 없어서 보안이 용이합니다.

고정 IP

고정 IP는 변경되지 않는 공인 IP를 의미합니다. IP를 한번 부여받으면 IP를 반납하기 전까지 해당 IP를 할당 받습니다.

인터넷 사이트를 운영할 때, 고정 IP를 사용하며, 이때 고정 IP를 사용하지 않으면, 외부에 알려진 IP가 자칫 다른 사이트에서 사용될 수 있습니다.

유동 IP

유동 IP는 기기에 고정적으로 IP를 부여하지 않고 IP 갱신주기가 되었을 때 기기를 껐다가 키면 ISP(인터넷 서비스 공급자)에서 남아 있는 IP를 골라 기기에 IP를 할당해주는 것을 의미합니다.

유동 IP를 사용하는 이유는 ISP에서 더 많은 사용자 들에게 인터넷 서비스를 제공하기 위함입니다.

ISP에서 제공해 줄 수 있는 IP는 유한합니다. 그런데 인터넷을 사용하는 기기가 꺼져있는데도 IP를 할당받고 있으면, IP가 부족할 경우 IP를 필요로하는 사용자에게 제공해줄 수 없습니다. 그래서 기기가 켜져있을 땐 IP를 유지해주지만 종료하면 IP를 수거해 다른 사용자에게 재할당합니다.


게이트웨이


게이트웨이는 라우터(공유기 등)의 주소입니다. 라우터는 네트워크와 네트워크를 연결해주는 장비입니다. 라우터에는 공인 ip와 사설 ip 둘다 가질 수 있습니다. 이때 라우터가 가지는 사설 ip가 바로 게이트웨이입니다.

라우터에 연결되어있는 컴퓨터들은 라우터의 게이트웨이 주소를 통해 데이터를 보냅니다. 예를 들어 컴퓨터1에서 카카오톡을 보낸다고 하면 컴퓨터는 라우트(공유기)의 게이트웨이 주소로 데이터를 보내고, 라우터는 데이터를 받아서 목적지(카카오톡)서버로 전송해줍니다.


서브넷마스크


IP주소(192.168.0.1)는 네트워크 식별자, 호스트 식별자로 이루어져 있습니다. ip에서 네트워크 식별자가 같다면 같은 네트워크 안에 있다는 뜻이고, 호스트 식별자는 같은 네트워크안에서 각각의 컴퓨터를 구분하는 주소입니다. 그렇다면 어디까지가 네트워크 식별자이고 어디서부터 호스트 식별자인지는 어떻게 알 수 있을까요? 이것이 서브넷 마스크가 필요한 이유입니다.

서브넷 마스크는 어디까지가 네트워크 식별자고, 어디까지가 호스트 식별자인지 알려줍니다. 즉, 255.255.255.0는 255로 이루어진 앞의 3칸은 네트워크 식별자이고, 0으로 이루어진 마지막 칸은 호스트 식별자로 쓰겠다는 뜻입니다.


Host-only, NAT, Bridged 모드


Host-only
외부와 단절된 내부 네트워크를 구축하는 것으로 구성된 가상머신들끼리만 통신이 가능합니다.

NAT(Network Address Translation)
호스트 PC로부터 IP를 할당 받아 가상머신 프로그램이 자체 DHCP 서버를 띄워 내부 네트워크 대역 할당 및 통신을 합니다. 호스트 PC를 통해 외부 네트워크와 통신이 가능합니다.

Bridge
공유기로부터 IP를 할당 받아, 호스트 PC와 동일한 네트워크 대역의 IP를 갖게 됩니다. 공유기를 통해 외부 네트워크와 통신이 가능합니다.


포트


포트(port)는 TCP나 UDP에서 어플리케이션의 상호구분을 위해 사용하는 번호입니다. IP내에서 프로세스를 구분하기 위해 사용합니다. 구체적으로는, 각 프로토콜의 데이터가 통하는 논리적 통로입니다. 컴퓨터의 물리적 포트(랜선)에서 데이터가 통해오는것처럼, 컴퓨터 안에서 각 프로토콜의 데이터가 컴퓨터 내부의 논리적 포트에 따라 흐릅니다.

포트는 잘 알려진 포트, 등록 포트, 동적 포트로 구성되어 있습니다.

잘 알려진 포트

0~1023 범위의 포트로 국제 도메인 관리기구(ICANN)에서 할당한 포트입니다.

📌 SFTP(22)
📌 SSH(22)
📌 SMTP(25)
📌 DNS(53)
📌 DHCP(67)
📌 HTTP(80)
📌 HTTPS(443)

등록 포트

1024~49151 범위의 포트로 국제 도메인 관리기구에 등록된 포트입니다.

📌 MySQL(3306)
📌 PostgreSQL(5432)
📌 원격 접속 포트(3389)
📌 HTTP 대체 포트(8080)

동적 포트

49152 ~ 65535 범위의 포트로 어느 프로그램에서나 사용할 수 있는 포트입니다. 대표적인 포트 번호는 별도로 존재하지 않습니다.

포트 포워딩

포트 포워딩은 NAT 모드로 구성된 네트워크 상에서 공인 IP의 XX번 포트로 들어오는 요청을 사설 IP를 가지고 있는 여러 개의 네트워킹 장비 중 어떤 장비의 XX번 포트로 가야할 지 알려주는 이정표 역할을 합니다.

예를 들어 사설 IP 192.168.0.2의 50000번 포트에 API 서버를 구성해두었다고 하면 외부에서 API 서버에 요청을 하게 되면 공인 IP인 180.236.50.13의 50000번 포트로 요청이 들어오고 포트 포워딩을 통해 192.168.0.2의 50000번 포트로 연결합니다.

profile
생각 많이 하지 않기 😎

0개의 댓글