[netwhat]IP basic

leocodms·2021년 5월 2일
0

42seoul

목록 보기
8/10
post-thumbnail

1. What is an IP address

노드(컴퓨터)간 통신에 필요한 고유 주소를 뜻함.
네트워크 주소 + 호스트 주소로 구성된다.

IPv4

가장 널리 사용되는 IP 주소로, 32비트 값을 가진다. 8비트씩 끊어 표기하고, 점(.)으로 구분한다.[8비트씩 4부분으로 10진수로 표기] 최대 2^32개(43억개)의 고유한 주소를 부여할 수 있다.
주소 할당의 방식은 A,B,C 등 클래스 단위의 비 순차적 방식이다.

IPv6

IPv4 주소의 고갈에 대한 대안으로 고아되었다. 128비트의 값을 가지며, 4자리의 16진수 숫자 8개로 표기하고 콜론(:)으로 구분한다.[16비트씩 8부분으로 16진수로 표기] IPv4의 이론상 주소의 수는 2^32인 반면, IPv6는 2^128개(43억*43억*43억*43억) 이다.
IPv6는 필드 전체가 0인 필드가 연속되어 있는 경우(2604:4700:4700:0000:0000:0000:0000:1111) 0만 있는 필드를 생략하여 표기 할 수 있다(2604:4700:4700::1111). 또한, 필드 내에 가장 높은 자리수가 0인 경우에도 생략 가능하다(2604:0001:0011:... -> 2604:1:11...).
주소 할당의 방식은 네트워크 규모 및 단말기 수에 따른 순차적 방식이다.

2. IP주소 종류

공인 IP 주소

ICANN,KISA등의 IP주소 할당 공인 기관에서 할당한 인터넷 상에서 사용할 수 있는 IP주소를 말한다. ICANN이라는 기관에서 국가별로 사용할 IP대역을 관리하고, 우리나라에서는 인터넷 진흥원(KISA)에서 대한민국 내에서 사용할 주소를 관리한다. 즉, 공인 IP(Public IP Address)는 전세계에서 유일한 주소이다.

사설 IP 주소

Network안에서 사용되는 주소(내부적으로 사용되는 고유한 주소)로, 하나의 네트워크 안에서 유일하며, 인터넷상에서는 확인할 수 없고, 내부 네트워크에서만 사용 가능한 IP이다.
주소범위
10.0.0.0 – 10.255.255.255
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255

특수 목적 IP 주소

RFC 5735에 의해 특수한 목적으로 예약된 주소이기때문에 공인IP 주소로 할당 받는 것이 불가능하다.
0.0.0.0~0.255.255.255 : 기본 게이트웨이 IP(Default route)
127.0.0.0~127.255.255.255 : 자기 자신을 가리키는 루프백(Loopback) IP
255.255.255.255 : 브로드 캐스트 용도로 사용하기 위해 예약된 IP주소

3. IP주소 지정 방식

  • 클래스 단위 주소 지정(classful)
  • 서브넷 사용(subnetted)
  • 클래스 비사용 주소 지정(Classless) - 현재 사용

Classful Addressing

IP 주소를 5개의 class(A-E)로 나누어서 배분하는 방식이다.
CIDR 이전까지 사용하던 네트워크 구분체계이다.

클래스는 상위 bit의 주소 시작값을 보고 판별할 수 있다.

  • class A(0.0.0.0 ~ 127.255.255.255) : 0으로 시작(1개의 Parity Bit)
    네트워크 구성용(일반 사용자) - 규모가 매우 큰 기관
  • class B(128.0.0.0 ~ 191.255.255.255) : 10으로 시작(2개의 Parity Bit)
    네트워크 구성용(일반 사용자) - 대학교 수준의 대형 기관
  • class C(192.0.0.0 ~ 223.255.255.255) : 110으로 시작(3개의 Parity Bit)
    네트워크 구성용(일반 사용자) - 중소기업체 수준의 기관
  • class D(224.0.0.0 ~ 239.255.255.255) : 1110으로 시작
    multicasting을 위한 클래스
    class D의 각 주소는 인터넷 상에서 호스트들의 한 그룹을 정의하는 데 사용된다. (특정 그룹에 D타입의 주소가 할당되면, 그룹내의 모든 호스트는 자신의 unicast주소 외에 추가적으로 multicast주소를 갖게 된다.)
  • class E(240.0.0.0 ~ 255.255.255.255) : 1111으로 시작
    향후 사용을 위해 예약된 주소

클래스 기반 주소지정에서는 각 클래스가 정해진 수의 블럭으로 나뉘고, 각 블럭의 크기는 고정되어 있다.

Classless Addressing

CIDR(Classless Inter-Domain Routing) : 클래스 비사용 도메인 간 라우팅

classless : 네트워크 구분을 class로 하지 않는다는 의미.


CIDR은 위와 같이 각 네트워크 대역을 구분 짓고, Inter-Domain과 같이 구분된 네트워크간 통신을 위한 주소 체계이다.

표기법
192.168.10.0/24 이런식으로 IP주소 뒤에 "/n"을 붙여서 표기한다.
이 숫자는 비트 단위이고, 0-32까지 표현 가능하다.
숫자의 의미는 네트워크 ID의 크기이다. 기존 클래스 방식에서 클래스의 종류에 따라 네트워크 ID와 호스트 ID의 크기가 정해져 있던것과 달리, CIDR 방식은 클래스의 제한을 두지 않고, 필요한 호스트의 수에 따라 적당한 크기의 IP주소를 할당하는 방식이다.

예를 들어..

CIDR이 "/24"이라면, 위의 그림에서 앞에서부터 24비트 이후의 옥텟(파란부분)을 전부 사용할 수 있다는 의미이다.
따라서 위의 경우, 143.7.65.203/24이므로, 143.7.65.0 ~ 143.7.65.255까지 사용 가능하다.

4. Netmask & Subnetmask

4-1. netmask

netmask는 IP주소의 어느 부분이 네트워크 주소를 나타내고, 어느 부분이 기계 주소(호스트 주소)를 나타내늕지 식별하는 데 사용된다.
네트워크 주소 부분의 비트를 1로 치환한 것이다.
IP주소의 네트워크 섹션을 숨겨서 호스트 컴퓨터나 시스템만 네트워크 사용자가 볼 수 있도록 합니다.
IP 주소와 netmask를 AND 연산 하면 네트워크 주소를 얻을 수 있다.

4-2. subnetmask

먼저 subnetting이 무엇인지 간단히 알아보자면,
subnetting은 네트워크 성능을 향상키시기 위해, 자원을 효율적으로 분배하는 것이다. 자원의 효율적 분배란, 네트워크 영역과 호스트 영역을 분할 하는것이다.
너무 큰 broadcast 도메인은 네트워크 환경에서 패킷전송을 느리게 하고, 송능 저하를 발생 시킨다. 따라서, 네트워크를 쪼개서 통신 성능을 보장하는 것이다.
그래서 등장한 것이 subnet mask이고, 이는 필요한 네트워크 주소만 호스트 IP로 할당할 수 있게 만들어 네트워크 낭비를 방지한다. <-> super netting

subnetmask 란..
예를 들어, 어느 네트워크에서 100까지 IP를 할당받을 수 있고, 필요한 IP가 20개 정도일 때, 100개의 IP를 모두 전달할 필요 없이 최소 20개만 전달하면 된다. 나머지 21-100은 subnetmask로 가린다. 클래스를 사용한다는 것 = 서브넷 마스크를 사용한다는 것

subnetmask 형식
subnetmask는 0과 1로 이루어져있고, 1이 연속으로 나와야 한다.
예를들어 IP주소가 192.168.0.1/24이라면, default maks는 255.255.255.0 임을 알 수 있다.
default mask도 subnet mask입니다. 2진수로 표현하면, 1111 1111.1111 1111.1111 1111.0000 0000입니다. 1은 네트워크 영역으로 사용하겠다는 의미이고, 0은 호스트 영역으로 사용하겠다는 의미이다. 즉, 사용자에게 0이 표현된 부분만 호스트 IP를 할당할 수 있게 만들겠다는 의미이다.

default subnet maks
IP를 클래스로 나눈다는 말을 결국 subnet mask를 사용한다는 말과 같다.
예를 들어 C클래스를 사용할 때는 255.255.255.0이 default subnet mask가 된다. 즉, 별개의 서브넷 마스크를 생성하지 않아도 기본적으로 적용이 되어 있는게 기본 서브넷 마스크이다.
default subnet mask로 쪼개진 네트워크 주소를 subnet network라고 한다.

newtmask, subnetmask, supernetmask
192.168.1/24

  • 192.168.1.1/25 subnetmask : 클래스를 기준으로, 속한 네트워크 주소보다 작게(잘게) 잘랐을때
  • 192.168.1.1/24 netmask : 클래스 기준으로, 속한 네트워크 주소 크기로 잘랐을때(CIDR)
  • 192.168.1.1/23 supernetmask : 클래스 기준으로, 속한 네트워크 주소 크기보다 크게 잘랐을때(확장)

! CIDR이후로 subnetmask만 사용하기 때문에 netmask와 subnetmask를 크게 구분하지 않는다고 함

4-3. broadcast address of a subnet

네트워크 주소 : 하나의 네트워크를 통칭하기 위한 주소

  • 해당 네트워크의 첫번째 IP주소
  • 계산 : IP주소와 subnetmask의 AND연산
    ex)

브로드캐스트 주소 :
특정 네트워크에 속하는 모든 호스트들이 갖게 되는 주소.
네트워크에 있는 클라이언트 모두에게 데이터를 보내기(방송하기)위함.

  • 해당 네트워크에 속하는 모든 IP주소 가운데 맨 마지막 IP주소
  • 계산 : subnetmask의 '0' 부분을 모두 '1'로 바꿈
    ex) 192.168.2.0의 broadcast address = 192.168.2.255

5. subnetting

Classful Addressing(클래스 기반 주소지정)방식에서 배정받은 네트워크를 subnetmask를 이용해 자체적으로 분할하여 여러 개의 subnet network로 분할 하는 것

하나의 네트워크에 포함된 호스트들을 여러 그룹으로 묶는 방식이기 때문에, 서브넷팅이 진행되면 본 주소에서 네트워크 아이디 필드는 늘어나고, 호스트 아이디 필드는 줄어든다.

Class A, B, C는 각각 X.X.X.X/8, X.X.X.X/16, X.X.X.X/24와 같은 주소 형태를 보이는데, 서브넷팅된 네트워크의 주소는 X.X.X.X/9, X.X.X.X/15, X.X.X.X/19, X.X.X.X/28과 같이 Net-id와 Host-id를 더 이상 Byte 단위로 해석할 수 없게 된다.

예제로 이해 해보려 한다..!

B Class의 주소를 할당받은 141.14.0.0/16 네트워크가 4개의 동일한 크기로 서브넷팅을 진행한다고 가정하자.
서브넷팅 과정과 각각의 서브넷에 배정된 주소들, 라우터들의 라우팅 테이블은 아래와 같다.

  • 141.14.0.0/16 네트워크를 4개의 서브넷으로 서브네팅하면 위 그림과 같은 주소체계를 갖게된다.
  • 하나의 네트워크를 4개로 분할하려면 2Bit가 추가로 필요하게 된다.
  • 즉, 네트워크 id 필드는 16Bit -> 18Bit로, 호스트 id 필드는 16Bit -> 14Bit로 바뀌게 된다.
  • 그러나, 외부 네트워크에서는 subnetting 사실을 알지 못하며, 계속해서 기존의 주소(141.14.0.0/16)로 액세스 한다.

  • subnetting된 4개의 subnet을 Site Router가 관리한다.
  • site router와 각각의 subnet switch(파란 지붕 직육면체)와 연결된 interface에는 subnet 내부의 노드들에 할당될 수 있는 주솟값 중 최대값으로 배정된다. = broadcast 주소
  • 각 subnet의 Broadcast주소 = 141.14.63.255(S1), 141.14.127.255(S2), 141.14.191.255(S3), 141.14.255.255(S4)

연결 가능 호스트 IP주소 개수(범위) 계산하기

255.255.255.128/25에서
네트워크 주소인 255.255.255.128와
브로드캐스트 주소인 255.255.255.255를 뺀 개수
= 2^(32-25)- 2 = 126

255.255.128.0/17에서
네트워크 주소인 255.255.128.0과
브로드캐스트 주소인 255.255.255.255를 뺀 개수
= 2^(32-17)- 2 = 32766

연습문제

Q. What is the maximun number of IP addresses that can be assigned to hosts on a local subnet that uses the 248.0.0.0 subnet mask?

네트워크 주소 = 1111 1000.0000 0000.0000 0000.0000 0000
호스트 주소 범위 = 2^27 = 134217728개

호스트에게 할당할 수 있는 주소 = 호스트 주소 범위 - 네트워크 주소 - 브로드캐스트 주소
= 134217728 - 2

Q. 다음 중 IP 주소 76.234.5.99/25가있는 서브넷의 유효한 호스트 범위는 무엇입니까?

subnet mask = 1111 1111.1111 1111.1111 1111.1000 0000
네트워크 주소(ip와 subnet mask AND 연산) = 0100 1100.1110 1010.0000 0101.0000 0000

호스트 범위 = 76.234.5.0~76.234.5.127 에서 네트워크와 브로드캐스트 주소를 뺀것
= 76.234.5.1~76.234.5.126

Q. 라우터의 이더넷 포트에 225.158.219.199/15이 할당 된 경우 어떤 호스트와 통신할 수 있는가?
A. 225.158.1.35
네트워크 주소 영역이 일치하면 같은 네트워크에 속해 있기 때문에 통신가능.

Q. You have an interface on an a router with the IP address of 197.162.179.84/12. Including the router interface, how many hosts can have IP address on the LAN attached to the router interface?

빠르게 구하기 = 2^(32-12) - 2 = 1048574

출처: https://epicarts.tistory.com/153 [일상 생활]

profile
Backend Developer

0개의 댓글