Study/Network

[네트워크 기초] IP와 서브넷 마스크 정복하기

Dream Amal 2024. 1. 17.

서브넷 마스크

  • 어디까지가 network이고, 어디까지가 host인지를 나타내기 위한 주소
  • IP 주소를 바탕으로 network주소와 host주소를 바탕으로
    라우터를 이용해야 하는지(network가 다를 때),
    이더넷을 이용해야 하는지(network가 같을 때) 확인하기 위함
    ⇒ IPv4는 network 주소와 host 주소의 구분이 없으므로 서브넷 마스크가 필요
      192.168.0.0
      255.255.0.0
    
      ping 192.168.20.20
    
            11000000.10101000.00001010.00001010  (192.168.10.10)
          & 11111111.11111111.00000000.00000000  (255.255.0.0)
      --------------------------------------------------------
            11000000.10101000.00000000.00000000
    
            11000000.10101000.00010100.00010100 (192.168.20.20)
          & 11111111.11111111.00000000.00000000  (255.255.0.0)
      --------------------------------------------------------
            11000000.10101000.00000000.00000000
    
      => 같은 값이 나옴 (같은 network를 사용)
    
      if) 서브넷 마스크가 255.255.255.0 이면, 다른 값이 나옴
              => 다른 network를 사용
  • IP 주소와 Classful, Classless
  • 192.168.10.0 ~ 192.168.10.255 까지 있을 때,
    • host 주소가 0인 경우 → network 주소
    • host 주소가 255인 경우 → broadcast 주소
    • ⇒ 254명에게 주소를 나누어 줄 수 있음
  • gateway
    • 다른 network로 가기 위한 문
    • 라우터 - 스위치간의 연결은 의례적으로 가장 마지막 port에 꼽음
      • 1 ~ (마지막port -1) 까지는 서버를 연결
      • IP 주소는 1번을 주는 경우가 많음
        1. 게이트웨이 주소 확인 ipconfig
        2. 해당 게이트웨이로 ping 보내서 TTL 확인 ping 게이트웨이주소
        3. ARP cache table에서 통신 후 저장된 MAC 주소 확인 arp -a
        4. 해당 MAC Address Lookup 해서 회사 모델 확인
          1. 기기의 취약점을 찾으면 해킹도 가능

IP 주소의 필요성

한국인터넷정보센터(KRNIC)

  • 해당 사이트에서 IPv4 보유 현황을 확인할 수 있음
  • IPv6는 아직 확보가 많이 되지 않은 상황임
    • why?
      • 지원되지 않는 서비스가 많음
      • 차별화되는 서비스가 없음
    • but, 남아있는 IPv4주소는 0.3%밖에 되지 않음
    • ⇒ 더이상 신규 서비스를 만들 수 없음

IP 주소 관리

  • 전체 IP주소는 IANA가 관리
  • 대륙 별로 5군데로 나뉘어 관리를 맡김
    • Asia : APNIC에서 관리
    • 국내 : KRNIC에서 IP를 관리하고 있음
      • KT, SKT는 KRNIC에서 국내 IP를 할당받음
      • 국내 IP는 WHOIS 에서 확인 가능함
        • 만약 국내 Domain이 아닌 경우, 확인할 수 있는 곳을 알려줌
        • Untitled

IP 주소 할당

  • 서비스의 종류에 따라 IP를 다르게 할당하여 관리하기 용이하게 만들어야 함
  • 방법
    • 1.11, 1.12, 1.13 … 1.200 까지의 서버를 1.111.20 까지는 web, 1.211.50 까지는 DB로 하나의 network로 만듦
      • 논리적으로 나눔
      • 브로드캐스트 트래픽이 높아짐
    • 중간에 방화벽을 둔 후, 스위치를 통해 web과 DB를 물리적으로 나눠 network를 분리
      • web에는 사용자들이 접속할 수 있도록 함
      • DB에는 F/W를 통해서 web 서버만 들어올 수 있도록 설정할 수 있음
      • 관리와 보안, 고가용에 용이
      • 게이트웨이(라우터)가 많아져야 함 ⇒ 비용 증가
        • 방화벽을 설치하면 반드시 network를 나누어줘야 함
  • 캠퍼스 network의 특징
    • IP가 많이 필요함 (한 사람당 1개씩의 IP를 가짐)
      • 50개의 강의실에 20명씩 있다고 생각해보면, 1000개의 IP가 필요함
      • ⇒ network를 나눌 필요가 있음

AWS의 Network

  • default VPC에 따라 IP대역을 할당받음
  • AZ에 따라 network를 나누어 두었음
  • 각 AZ에 따라 최소 2개 이상의 IP대역으로 나누어 사용해야 함

⭐ 진짜 중요 ⭐


IP 주소 체계

IP의 가장 앞자리
00000000.00000000.00000000.00000000
--------
해당 숫자를 통해 class(회사 규모)를 나누어 생각할 수 있음

00000000 ~ 01111111 (0~127)을 큰 회사      => A Class
10000000 ~ 10111111 (128~191)을 중간 회사  => B class
11000000 ~ 11011111 (192~223)을 작은 회사  => C class
11100000 ~ 11101111 (224~239)를 multicast  => D class
11110000 ~ 11110111 (240~255)를 연구용     => E class
  • IP의 제일 첫 숫자를 보면 회사의 규모를 예측해볼 수 있었음
  • 17.6.4.11 => 2^24 -2개의 IP를 사용할 수 있음 255.0.0.0 A class의 서브넷 마스크 164.128.10.11 => 2^16 - 2개의 IP를 사용할 수 있음 255.255.0.0 B class의 서브넷 마스크 202.147.10.20 => 2^8 - 2개의 IP를 사용할 수 있음 255.255.255.0 C class의 서브넷 마스크
  • 낭비되는 IP가 발생
    • 600개의 IP를 필요로 하는 회사는 B class → 약 6만5천개의 IP가 낭비됨
    • 서브넷팅 개념이 생김

서브넷팅

  • 하나의 네트워크를 여러 기업에서 나누어 사용하게끔 함
  • ARP request로 인한 Broadcast량이 증가할 수 있으므로, 네트워크를 나누어 관리할 필요가 있음
    • Broadcast Domain
      • Broadcast가 도달할 수 있는 network의 범위
      • 라우터(Layer3장비 이상)는 broadcast domain을 나눌 수 있는 장비임
A - 40개 IP 필요
B - 50개 IP 필요
C - 25개 IP 필요
D - 30개 IP 필요

=> 202.147.16.0 (subnet mask 255.255.255.0) 하나의 network로 묶음

4개의 회사를 구별하기 위해 필요한 bit는 2bit

11111111.11111111.11111111.00000000 에서
                           --
                          해당 2bit를 빌려 subnet을 구별하는 데 사용
A subnet - 00(000000)
B subnet - 01(000000)
C subnet - 10(000000)
D subnet - 11(000000)
  • Classless의 개념으로 전환됨
    • 서브넷팅으로 인해 class의 개념이 모호해진 이후로는 class는 개념 설명을 위하여서만 활용됨
  • 서브넷 마스크의 길이에 따라 분할 가능한 network의 수도 달라지고,
    사용 가능한 서버(node)의 수도 달라짐
  • 설계가 중요

슈퍼넷팅

  • subneting으로 나누었던 IP를 다시 하나의 network로 합치는 것

서브넷팅 연습

  1. KRNIC 에서 IP를 할당받음
    202.147.10.0
    255.255.255.0
  2. IP를 사용성에 따라 network 로 나누어 사용하기로 결정
    => Host 부분을 나누어야 함
     이미 할당받은 network 부분은 변경 불가
    11111111.11111111.11111111.00000000 을 8개의 network로 나누기로 함
  3. 3bit를 임의로 나누어 subnet으로 분리함
    000
    001
    010
    011
    100
    101
    110
    111
    => 총 8개의 network으로 분리할 수 있음
     필요에 따라 나누었다가 다시 합칠 수도 있음 (슈퍼넷팅)
  4. 필요에 따라 나누어 주면 끝
    1 강의실 - ...00000000 => 202.147.10.0 (255.255.255.224)
    2 강의실 - *.
    ..00100000 => 202.147.10.32 (255.255.255.224)
    ...
    8 강의실 - *.
    ..11100000 => 202.147.10.224 (255.255.255.224)
    => 각 강의실마다 `*
    2^5 - 2**`개의 IP를 사용할 수 있음

if) 8강의실의 network를 2개로 분할해달라는 요청을 받으면
11100000 에서의
- 하나의 bit를 한번 더 나눌 수 있음
이 때, 8강의실의 subnetmask는 255.255.255.240이 됨

CIDR 표기법

  • Classless Inter-Domain Routing 표기법
  • **202.147.10.32 /72**
  • IP와 Prefix로 나타내는 것
  • AWS에서도 서브넷을 만들 때, CIDR를 작성해주어야 함

Prefix

  • 서브넷 마스크의 1의 길이를 **/숫자**로 나타냄
  • 장점
    • 가독성 향상
    • 5bit로 작성 가능
      • subnetmask를 사용하면 32bit가 필요함
      • ⇒ mem 효율 향상

직접 해보자!!

202.147.10.0/24 를 4개의 network로 분할해보기

  • 4개의 network가 필요하므로 /26 으로 2bit로 서브넷 만들기

  • 202.147.10.0/25 ⇒ main으로 사용
  • 202.147.10.128/26 ⇒ 60대 사용
  • 202.147.10.192/27 ⇒ 30대 사용
  • 202.147.10.224/27 ⇒ 20대 사용
  • ⇒ 필요한 PC의 갯수에 따라 네트워크를 나눌 수 있음

Subnet Mask 계산

Address Subnet Mask Class Subnet Broadcast
201.222.10.60 255.255.255.248 B 201.222.10.56 201.222.10.63
15.16.193.6 255.255.254.0 A 15.16.193.255 15.16.193.255
128.16.32.13 255.255.255.252 B 128.16.32.12 128.16.32.15
153.50.6.27 255.255.255.128 B 153.50.6.0 153.50.6.127
- Class는 Address를 기준으로 나누어야 함!        
728x90

댓글