• Home
  • About
    • Ara Jo photo

      Ara Jo

      Aspiring Backend Developer :)

    • Learn More
    • Email
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

Network/네트워크계층/IP주소와 서브넷

09 Jul 2021

Reading time ~3 minutes

IP주소

  • 네트워크 환경에서 컴퓨터(노드) 간 통신하기 위해 각 컴퓨터에게 부여된 네트워크상 주소

IPv6

  • 고속전송 & 멀티미디어 트래픽을 지원
  • source와 destination 주소가 128bit (16bit씩 8개의 블럭)
  • IP주소 고갈문제의 해결을 위한 미래를 위한 주소체계
  • 2001:0db8:0000:0000:8a2e:0370:7334
  • 상용화 X

IPv4

  • 192.168.1.2 : 192.168.1 까지가 네트워크 주소(공통부분)이고 2 는 나만의 호스트 IP(식별할 수 있는 부분)
  • source 와 destination 주소가 32 bit
  • 32자리로 이루어진 2진수 하나의 10진수는 8자리의 2진수로 대체되고 이를 옥텟 이라고 부름
    즉, IP주소는 4개의 옥텟으로 구성됨
    ipsubnet1.png

IP주소 vs MAC주소

  • IP주소
    • 바뀔 수 있음
    • Network-layer address
    • 네트워크(서브넷)을 찾아가는 주소
  • MAC주소
    • 바뀌지 않음
    • Used to get datagram from one interface to another physically-connected interface (Same network)
    • 48 bit MAC address (for most LANs) burned in the adpter ROM

IP주소 클래스

  • 네트워크 주소와 호스트 주소를 구분하는 방법이자 약속
  • 네트워크 크기에 따라 구분 (하나의 네트워크에서 몇 개의 호스트 IP까지 가질 수 있는가) => 호스트 주소로 결정
ipsubnet2.png
  • A클래스
    • 하나의 네트워크가 가질 수 있는 호스트 수가 제일 많은 클래스
    • IP주소를 32자리 2진수로 표현했을 때, 맨 앞자리 수가 항상 0
    • 0.0.0.0 ~ 127.255.255.255
    • 첫 번째 옥텟이 네트워크 부분 + 나머지는 호스트 부분
  • B클래스
    • 반드시 10으로 시작
    • 128.0.0.0 ~ 191.255.255.255
    • 첫 번째, 두 번째 옥텟이 네트워크 부분 + 나머지는 호스트 부분
  • C클래스
    • 반드시 110으로 시작
    • 192.0.0.0 ~ 223.255.255.255
    • 첫 번째, 두 번째, 세 번째 옥텟이 네트워크 부분 + 나머지는 호스트 부분
  • D, E클래스 : 멀티캐스트용, 연구용으로 사용
  • 네트워크 범위가 커질수록 호스트 주소 범위는 작아짐 (반비례 관계)
  • 같은 네트워크 주소를 가진 IP끼리는 자유롭게 통신 가능

서브넷

  • 네트워크 안의 네트워크라는 의미
  • 하나의 네트워크를 나누어 네트워크를 효율적으로 분배
    • ex. A클래스의 네트워크에는 약 1600만 개의 호스트를 할당할 수 있는데 만약 어떤 기관에서 필요한 IP개수가 200개라면 나머지 리소스가 낭비되는 문제를 해결하기 위해 사용
  • 서브넷 마스크 라는 개념으로 네트워크를 나눔
    • 서브넷에 마스크를 씌워서 필요없는 IP는 가린다는 의미

서브넷 마스크

  • IP주소처럼 8비트씩 4블럭, 총 32비트로 구성
  • 2진수로 표현했을 때, 앞자리가 모두 1로 구성되고 뒷자리는 모두 0
    • 255.255.255.XXX
    • 11111111.00000000.00000000.00000000 = 255.0.0.0
    • 11111111.11111111.00000000.00000000 = 255.255.0.0
    • 11111111.11111111.11111111.10000000 = 255.255.255.128
  • 서브넷 마스크를 통해 서브넷의 네트워크 주소 구하기
    • IP주소와 서브넷 마스크 주소를 AND 연산 하면 네트워크 주소를 구할 수 있음
    • IP : 115.95.229.196 -> 01110011.01011111.11100101.11001001
    • 서브넷 마스크 : 255.255.255.0 -> 11111111.11111111.11111111.00000000
    • 위의 주소를 AND 연산하면 01110011.01011111.11100101.00000000 -> 115.95.229.0
    • 원래는 115.0.0.0 이 네트워크 주소지만, 서브넷마스크를 씌워서 네트워크 주소를 분리함
      => 이제 115.95.229로 시작하는 주소만 같은 네트워크에 있다고 인식하고, 호스트 주소는 0과 255를 제외한 254개

CIDR

  • 서브넷 마스크를 개수로 표현한 것 (1의 개수)
  • 네트워크 주소를 적고 /<개수>로 표기
    • 115.95.229/28은 28비트까지 서브넷 마스크라는 뜻
    • 네트워크 주소 : 115.95.229.0, 호스트 주소 : 0~15
  • AWS 같은 클라우드 서비스에서 CIDR로 서브넷을 나누는 경우가 많음
ipsubnet3.png

사설 IP (Private IP)

ipsubnet4.png
  • 서브넷을 활용하여 효율적으로 IP를 분배하더라도 이용가능한 전체 IP개수가 약 42억 개로 제한되어 있는 문제를 해결하기 위해 사용
  • 내부에서만 사용할 수 있는 IP (외부 IP와 중복되어도 상관없음)
  • 외부에서 접속할 수 있는 공인 IP (Public IP)만 공유기에 할당하고,
  • 공유기에 연결된 기기들은 내부에서 사용할 수 있는 사설 IP (Private IP) 할당
    => 하나의 IP를 가지고도 여러 기기들 연결가능 -> IP 고갈 늦출 수 있음
  • 아무런 IP나 사설 IP로 사용가능한 것은 아님
  • 마찬가지로 같은 네트워크 상이면 자유롭게 통신 가능
    • 즉, 같은 서브넷에 속한 Private IP 들은 서로 접속가능
    • 외부의 접속을 차단하는 것도 가능

포트포워딩 (Port Forwarding)

ipsubnet5.png
  • 공유기의 특정 포트로 들어온 접속을 Private IP의 특정 포트로 요청 전달
  • 외부에서 Private IP에 접근이 필요한 경우, Private IP를 할당받은 기기를 웹 서버로 활용하여 공유기로 들어온 요청을 해당 기기로 전달
ipsubnet6.png
  • Public IP의 38080 포트로 들어온 요청을 192.168.0.38 내부 IP를 가진 기기의 8080포트로 전달해주는 예시

출처

  • 참고링크1
  • 참고링크2
  • 참고링크3


csstudynetwork Share Tweet +1