[GCP] Cloud 개요: IP Address

서경·2024년 9월 11일
post-thumbnail

IP Address

네트워크에 연결된 컴퓨터(호스트)를 식별하기 위한 논리적인 주소



1. IP Address 종류

1.1. IPv4

  • 4 byte, 10진수 4자리로 표현

○ 1 bit

2진수 1 또는 0 표현


○ 8 bit

2진수 8자리, 256 가지 표현 가능
00000000(0) ~ 11111111(255)


○ 1 byte

8 bit


○ 현재는 IPv4와 IPv6 가 혼재되어 사용중이고 실제 주고 사용하는 주소는 IPv4 주소를 주로 사용

IP Address는 음수가 없으며 약 42억까지 할당이 가능하다.
처음에는 컴퓨터에만 사용하는 것으로 설계했지만, 최근 스마트폰 보급이 늘어남에 따라 부여하는 대상이 빠르게 증가했고 42억개가 넘어갔다.

결국 IPv4에 대한 신규번호 할당이 종료되었고 IPv6가 생성됐다.



1.2. IPv6

16 byte, 16진수 8자리로 표현

이전부터 IPv4를 할당하여 사용하고 있기 때문에 TPv6로 일시에 바꾸기가 어려워 과도기적인 상황이 발생했다.
즉 IPv4와 IPv6가 혼재되어 사용되고 있다는 것이다.






2. IP Address 확인 방법

2.1. Windows

  1. 명령 프로그램 실행

  2. 명령 입력
    ipconfig



2.2. Linux

  1. 터미널

  2. 명령 입력
    ifconfig 또는 ip addr



2.3. Mac

  1. 터미널

  2. 명령 입력
    ifconfig






3. 네트워크 연결 방식에 따른 구분

3.1. 유선 네트워크

  • 이더넷(ethernet)



3.2. 무선 네트워크

  • 무선 LAN






4. IP Address 구조 (IPv4 기준)

  • 모든 컴퓨터는 LAN(Local Area Network) 소속, LAN은 소규모 네트워크

  • 네트워크(Network) ID + 호스트(Host) ID 구성

  • 네트워크 ID의 크기에 따라서 해당 네트워크에 연결 가능한 호스트 개수가 결정된다.



4.1. 네트워크 ID

  • 네트워크 식별

○ 호스트가 연결되어 있는 구성


○ 클래스로 표현 (3개 클래스)

  1. A 클래스 - 가장 처음 1 bit - 0

  2. B 클래스 - 가장 처음부터 2 bit - 01

  3. C 클래스 - 가장 처음부터 3 bit - 001

    네트워크 식별 아이디는 클래스에 따라 연결 가능한 호스트 수에 차이가 생긴다.
    A > B > c 순으로 A 클래스가 가장 많다.



4.2. 호스트 ID

  • 호스트 식별, 호스트는 네트워크에 연결된 개별 컴퓨터

  • 네트워크에 연결된 computer (host)



TIP!

  • IP Address는 컴퓨터에 부여된 네트워크 번호
  • MAC Address는 NIC에 부여된 번호

IP에는 네트워크 식별번호라는 게 존재한다.
해당하는 네트워크가 어떤 네트워크인지 구별할 수 있는 번호로 구성되어 있다.
그리고 그 네트워크 안에 몇 번째 컴퓨터인지 식별하는 호스트 ID가 있다.



4.3. 네트워크 ID에 따른 호스트 ID 개수

A클래스에 할당할 수 있는 Host가 가장 많고
B 클래스는 Network Address가 A 보다 커지는 대신 Host가 줄어든다
C는 네트워크 식별이 크고 Host가 작다.

보통 C 클래스에 해당되면 LEN이고, B와 A가 WEN으로 들어간다.
통상적으로 사용되는 건 C클래스다.


○ 네트워크 ID가 1 byte(A class) + 호스트 ID는 3 byte

(1,600만 7,214개 호스트 지원)


○ 네트워크 ID가 2 byte(B class) + 호스트 ID 는 2 byte

(6만 5,534개 호스트 지원)


○ 네트워크 ID가 3 byte(C class) + 호스트 ID 는 1 byte

(254개 호스트 지원)


○ 호스트 ID는 범위 내에서 자유롭게 사용가능하는 1번과 255번은 예약된 번호로 사용할 수 없다.



5. IP Address 구분

5.1. 공인 IP Address (공인 네트워크)

○ 인터넷을 통해 다른 네트워크의 컴퓨터를 식별할 수 있는 IP Address

○ 인터넷 통신을 위해서는 공인 IP Address가 반드시 필요하다.



5.2. 사설 IP Address (사설 네트워크)

○ 현재 네트워크에 연결된 컴퓨터만 식별할 수 있는 IP Address

○ 인터넷에 연결되지 않은 네트워크인 경우 부여하는 IP Address


○ 사설 IP Address

  • 10.0.0.0 ~ 10.255.255.255
    (10.0.0.0/8 - A class)

  • 172.16.0.0 ~ 172.31.255.255
    (172.16.0.0/12 - B class)

  • 192.168.0.0 ~ 192.168.255.255
    (192.168.0.0/16 - C class)


○ 0.0.0.0

모든 IP Address로 부터 수신할 수 있다는 의미 - inbound(수신)

데이터를 송신하거나 수신하게 될 때, 송신의 경우 보내는 것이기 때문에 제약이 없지만, 수신은 누군가로 부터 받아야 하기 때문에 특정 IP만 받겠다 지정을 하거나 누구에게나 받고 싶다고 할 수도 있다.

하지만, 보통 서버에서는 데이터를 수신할 때 모든 IP로 부터 수신이 가능해야 한다.
(커피 전문점에서 특정 누구의 주문만 받는 것은 옳지 않은 것과 동일하다.)

송신을 하면 딱 지정을 해서 보내기 때문에 상관 없지만,
수신은 누구에게 요청을 받을지 모르기 때문에 0.0.0.0을 사용해서 열어둔다.


  1. 0.0.0.0/8
    서브넷의 다른주소와 함께 실제 네트워크 인터페이스에 제공되는 유효한 주소가 아니다.

  2. 컴퓨터가 여전히 자신의 IP Address를 알지 못하고 IP 주소를 얻으려고 할 때가 아니면 IP 패킷의 소스 주소로 사용할 수 없다.

  3. 라우팅 테이블 사용시 기본 게이트웨이 식별, 0.0.0.0은 기본 경로 즉 대상 주소에 사용 가능한 특정 경로가 없을 때 사용

  4. IP Address가 할당되지 않은 PC가 초기에 DHCP 서버로부터 IP Address를 할당 받을 때 사용 - 발신지 : 0.0.0.0 목적지 : 255.255.255.255

  5. 255.255.255.255는 한정된 범위 내에 접속된 모든 기기에 패킷을 보내는 용도로 사용


○ 127.0.0.1 (localhost)

loopback, 호스트 자기 자신 의미


○ 224.0.0.0

멀티 캐스트


TIP!

사설 네트워크에 부여된 IP를 사설 IP라고 한다.
사설 IP는 인터넷 접속이 안 되고 사설 네트워크 안에 있는 IP로 사설 네트워크끼리 통신을 한다.

사설 네트워크 구성이 가장 먼저 되고 사설 IP가 부여된다.
그리고 네트워크를 인터넷에 연결하기 위한 공인 IP가 할당된다.
총 2개의 IP가 된다.

즉, 인터넷 사용 시 공인 IP, 네트워크끼리 통신은 사설 IP가 된다.
집에 있는 네트워크에 인터넷 연결을 하지 않고 구성하면 사설 아이피가 된다.


네트워크 구성 예시를 보자!
집 안에 컴퓨터 3대와 스마트 TV 1대가 있다고 가정하면, 이 4대를 가지고 네트워크 구성이 가능하다.

소규모 LEN을 구성하여 사설 IP를 할당하고 집에 있는 사설 네트워크 끼리 통신한다.
만약, 외부와 연결하고 싶다면 공인 IP를 할당 받고 공인 네트워크로 인터넷을 통해 다른 네트워크와 인터넷 통신이 가능하다.



6. IP Address 표기법

6.1. 전통적인 표기법 (닷 표기법)

○ 192.168.0.0


8bit 하나를 octet이라 표현



6.2. CIDR 표기법

cloud에서 주로 사용한다.


○ CIDR (Classless Inter-Domain Routing)

클래스 없이 도메인간 라우팅하는 기법


○ 192.168.0.0/24

/24 - 클래스 의미, 2진수 1이 16자리
11111111 11111111 11111111 00000000


○ CIDR 에 따른 Host수

CIDRClassHostsMask
/321/256 C1255.255.255.255
/311/128 C2255.255.255.254
/301/64 C4255.255.255.252
/291/32 C8255.255.255.248
/281/16 C16255.255.255.240
/271/8 C32255.255.255.224
/261/4 C64255.255.255.192
/251/2 C128255.255.255.128
/241 C256255.255.255.000
/232 C512255.255.254.000
/224 C1024255.255.252.000
/218 C2048255.255.248.000
/2016 C4096255.255.240.000
/1932 C8192255.255.224.000
/1864 C16384255.255.192.000
/17128 C32768255.255.128.000
/16256 C, 1 B65536255.255.000.000
/15512 C, 2 B131072255.254.000.000
/141024 C, 4 B262144255.252.000.000
/132048 C, 8 B524288255.248.000.000
/124096 C, 16 B1048576255.240.000.000
/118192 C, 32 B2097152255.224.000.000
/1016384 C, 64 B4194304255.192.000.000
/932768 C, 128 B8388608255.128.000.000
/865536 C, 256 B, 1 A16777216255.000.000.000
/7131072 C, 512 B, 2 A33554432254.000.000.000
/6262144 C, 1024 B, 4 A67108864252.000.000.000
/5524288 C, 2048 B, 8 A134217728248.000.000.000
/41048576 C, 4096 B, 16 A268435456240.000.000.000
/32097152 C, 8192 B, 32 A536870912224.000.000.000
/24194304 C, 16384 B, 64 A1073741824192.000.000.000
/18388608 C, 32768 B, 128 A2147483648128.000.000.000

볼드 처리된 번호가 많이 사용된다.


CIDR는 네트워크 세분화 방식이다.
네트워크 세분화는 IP 주소를 통해 네트워크와 호스트를 구분하는 과정이다.

네트워크를 구성하고 Host를 연결한다.
만약, /16을 사용하겠다고 하면 16bit의 B클래스가 된다.
네트워크 연결 가능한 host를 200개 연결하고 싶다면 CIDR /24를 사용하면 된다.
300개면 /23을 사용한다.

/24는 IP 주소에서 앞의 24비트가 네트워크 부분임을 의미한다.
예를 들어, 11111111 11111111 11111111 (네트워크 부분) + 00000000 (호스트 부분)가 된다.
/24는 네트워크 부분이 24bit이므로 남은 8bit로 Host를 표현할 수 있다.
따라서, Host 수는 2^8 - 2 = 254가 된다.
2를 빼는 이유는 네트워크 주소와 브로드캐스트 주소가 사용되기 때문이다.



TIP!

닷 표기법과 CIDR 차이점이 있다.
CIDR은 IP주소 뒤에 /(슬래시)를입력하고 수치를 지정한다.






7. 서브넷 (subnet)

  • 현재 네트워크를 다시 세분화 시킨 네트워크



7.1. 서브넷 마스크 (Subnet mask)

네트워크 ID를 분리하기 위한 값
Subnet mask를 통해 해당하는 IP Address가 어떤 subnet에 포함되는지 알 수 있다.






8. 용어 정리

8.1. Inbound (수신, receive)

네트워크 외부에서 내부로 데이터가 전송되는 것



8.2. Outbound (송신, send)

네트워크 내부에서 외부로 데이터가 전송되는 것



TIP!

0.0.0.0.을 Inbound에 지정하면 누구든 나에게 수신을 할 수 있다.






9. IP Address 참고

9.1. IPv4

https://ko.wikipedia.org/wiki/IPv4



9.1. CIDR

https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%EB%8D%94_(%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9)



9.1. Subnet

https://ko.wikipedia.org/wiki/%EB%B6%80%EB%B6%84%EB%A7%9D

0개의 댓글