수많은 IT 기기들을 연결시키는 네트워크에서 각 IT 장비들 간의 통신에 있어서 아주 중요한 것이 바로 주소, 즉 IP 주소(Internet Protocol address)이다!
당신이 지금 택배기사라고 생각해보자. 택배를 배달하려면 택배를 시킨 사람의 주소를 알아야 한다. 배송지가 잘못 입력되었거나 주소를 착각하면 배송사고가 일어날 것이므로, 택배기사에게 있어 정확한 주소 파악은 매우 중요하다!
여기서 택배물품 = 패킷(데이터), 주소 = IP 주소 라고 보면 된다.
자 그럼 IPv4 주소가 뭔지부터 알아보자. IPv6 체계도 많이 상용화되고 있지만, 국내에서는 대부분 IPv4를 사용하므로,
이번 포스팅에서는 IPv4에 대해서만 알아보기로 하자.
IPv4 란?
- 32비트의 주소 체계
- 0~255(8비트) 인 3자리수의 4개 조합으로 표현됨. ex) 127.0.0.1
- 주소에 레벨이 존재하여, Net ID와 Host ID로 나뉨
Net ID : 여러 호스트들이 하나의 덩어리로 그룹핑되어 있는데, 이 그룹 단위를 구별하기 위한 주소
Host ID : 각 디바이스마다 부여되는 주소 - IP 주소 체계는 사용자가 변경 가능한 논리적 주소로서, Net ID 와 Host ID를 구분하는 경계점이
고정되어 있지 않음. 따라서 필요한 호스트 IP의 개수에 따라 네트워크(덩어리) 크기를 다르게 할당 가능.
위에서 설명한 IPv4의 네트워크 크기를 다르게 할당할 수 있다는 특징 때문에 처음 IPv4 주소체계를 도입하였을 때는 '클래스(Class)' 라는 개념을 도입하여 용도에 맞게 나눠서 사용하였었다.
Classful Network
- 개수가 제한되어 있는 IP를 효율적으로 할당하고 관리하기 위해 도입된 IP 관리 체계
- 전체 IP를 지정된 크기대로 Class 라는 그룹으로 분리하여 관리
- Default Mask 를 사용하여 IP에 해당하는 Class 를 구분
- 문제점
- 클래스별로 무조건 고정된 개수만큼의 IP만 할당 가능하여 비효율적인 IP 할당 (낭비가 많음)
- 약 42억 개의 IP를 할당할 수 있었지만, IT 산업의 발전으로 이마저도 부족한 IP 개수가 되어 버림 - 해결방법
- 'Subnetting' 을 활용한 Classless 네트워크
Classless Network
- Class 개념을 없애버리고, 전체 IP를 통합하여 필요한 개수만큼만 나눠서 할당하는 방법
- Netmask(넷마스크)를 가변적으로 이용하여 IP 주소에서 Net ID 와 Host ID 를 구분함
Netmask(넷마스크) 란?
- IP 주소와 같은 형식을 가지면서, IP 주소와의 AND 연산을 통해 IP 주소 부분의 Net ID 부분과 Host ID 부분을
구분 가능케 함 - 1 에 해당하는 부분 => Net ID 를 지칭
0 에 해당하는 부분 => Host ID 를 지칭
"그런데 어떻게 Class 개념을 없애버리고 전체 IP를 통합해서, 그것도 필요한 개수만큼 할당한다는거지?!"
라는 의문이 들것이다.
여기서 Classless 네트워크는 '서브넷(Subnet)' 이라는 개념을 도입한다.
Subnet 이란?
- Sub Network의 준말로, 네트워크를 논리적으로 분할하여 세분화시킨 단위
- IP 주소의 낭비를 줄이고, 좀 더 효율적으로 할당하기 위해 제시된 기법
- Broadcast(브로드캐스트) 영역을 축소 => 부하를 줄일 수 있다.
- 내부 네트워크의 계층적인 구조화
Subnetting = 서브네팅 = 서브넷 하는것(?)
=> 하나의 네트워크 대역의 IP를 Subnet으로 분할하는 작업
(<=> 반대 의미로 네트워크를 합치는 것은 슈퍼넷팅(Supernetting)이라 함)
- 2단계 주소 체계(Net ID + Host ID)에 Subnet ID를 추가하여 3단계 주소체계를 이용
- Subnet mask(서브넷 마스크)를 이용하여 Net ID, Subnet ID, Host ID를 구별
Subnet mask(서브넷 마스크) 란?
- 넷마스크의 개념으로, Net ID, Subnet ID, Host ID를 구분하게 하는 값
- 서브넷 마스크 범위 및 표기법
클래스 범위 표기법 A 11111111.00000000.00000000.00000000 prifix : /8 or 255.0.0.0 B 11111111.11111111.00000000.00000000 prifix : /16 or 255.255.0.0 C 11111111.11111111.11111111.00000000 prifix : /24 or 255.255.255.0 - ex) IP 주소의 prefix 표기법이 193.168.1.1/24 라면, 서브넷 마스크가 255.255.255.0 이고, 이때 '255'로 표시된 부분인 193.168.1. 까지는 Net ID이고, 0으로 표시된 부분인 .1 은 Host ID로 구분된다.
이 경우 실질적으로 사용할 수 있는 호스트 IP의 범위는 193.168.1.1 ~ 193.168.1.254 가 된다.
※ 해당 범위에서의 첫 IP 193.168.1.0 와 끝 IP 193.168.1.255 는 각각 *대표주소, **브로드캐스트 주소로 사용되기 때문에 호스트 IP로 부여할 수 없다.
* 대표주소 : 하나의 네트워크 그룹을 통칭하기 위한 주소 (학교에서 '반' 개념을 떠올리면 될듯!)
** 브로드캐스트 주소 : 특정 네트워크에 속하는 모든 호스트(=클라이언트)들이 듣게 되는 주소를 의미.
브로드캐스트 메시지 전송 등을 할 때 사용.
위 서브넷 마스크의 설명만으로는 아직 서브넷팅의 개념이 잘 잡히지 않을 것이다.
다음 문제들을 통해 실제 서브넷팅할 경우 IP 주소가 어떤식으로 할당될 수 있는지 살펴보자!
서브넷팅 계산방법과 예시 문제
Q1) 192.168.1.0 (C클래스) 라는 IP 대역에서 호스트 IP가 100개 필요하다. 어떻게 서브넷팅 해야 할까?
A) 우선 호스트 IP가 100개 필요하고, 기본적으로 대표주소 및 브로드캐스트 주소를 포함하여 총 102개의 IP 주소가 필요하다. 이때 102 라는 숫자는 64 < 102 < 128 이므로, 호스트 IP로 2^7(=128) 개가 부여되어야 하고,
이는 서브넷 마스크가 11111111 11111111 11111111 10000000 이 되어야 함을 의미한다.
이는 192.168.1.0/25 로 표현되며, 이때 C클래스를 사용한다고 하였으므로, 서브넷팅은 총 2^1(=2)개 영역으로 되어,
네트워크 주소는 각각 192.168.1.0, 192.168.1.128이 된다.
호스트 IP 주소는 192.168.1.1 ~ 192.168.1.126 및 192.168.1.129 ~ 192.168.1.254 가 된다.
(192.168.1.0, 192.168.1.128 : 네트워크 주소(대표 주소) / 192.168.1.127, 192.168.1.255 : 브로드캐스트 주소)
Q2) 192.168.1.0 (C클래스) 라는 IP 대역에서 서브넷이 5개 필요하다. 어떻게 서브넷팅 해야 할까?
A) 5라는 숫자는 4 < 5 < 8 이므로, 서브넷 개수(=네트워크 주소 개수)로 2^3(=8) 개가 부여되어야 한다.
이는 서브넷 마스크가 11111111 11111111 11111111 11100000 이 되어야 함을 의미한다.
(Prefix 표기법으로는 192.168.1.0/27 이 된다.)
이때 서브넷 주소는 각각
192.168.1.0 (11111111 11111111 11111111 00000000)
192.168.1.32 (11111111 11111111 11111111 00100000)
192.168.1.64 (11111111 11111111 11111111 01000000)
192.168.1.96 (11111111 11111111 11111111 01100000)
192.168.1.128 (11111111 11111111 11111111 10000000)
192.168.1.160 (11111111 11111111 11111111 10100000)
192.168.1.192 (11111111 11111111 11111111 11000000)
192.168.1.224 (11111111 11111111 11111111 11100000)
가 된다.
또한 각 서브넷당 호스트 IP의 개수는 2^5 - 2 가 되어 30개가 되며,
총 호스트 IP의 개수는 (서브넷당 호스트 IP 개수) x (서브넷 IP 개수) = 30 x 8 = 240 개가 된다.
Q3) 205.16.23.29 (C클래스) 라는 한 IP 주소의 서브넷 마스크가 255.255.255.240 이라면,
이때 이 네트워크의 호스트 가용 범위의 주소들과 서브넷 주소를 모두 구하여라.
A) C클래스 대역의 서브넷 마스크가 255.255.255.240 이라면, 240 = 128+64+32+16 이므로,
11111111 11111111 11111111 11110000 이 서브넷 마스크가 될 것이다.
이때 서브넷 주소는 각각
205.16.23.0 (11111111 11111111 11111111 00000000)
205.16.23.16 (11111111 11111111 11111111 00010000)
205.16.23.32 (11111111 11111111 11111111 00100000)
205.16.23.48 (11111111 11111111 11111111 00110000)
205.16.23.64 (11111111 11111111 11111111 01000000)
205.16.23.80 (11111111 11111111 11111111 01010000)
205.16.23.96 (11111111 11111111 11111111 01100000)
205.16.23.112 (11111111 11111111 11111111 01110000)
205.16.23.128 (11111111 11111111 11111111 10000000)
205.16.23.144 (11111111 11111111 11111111 10010000)
205.16.23.160 (11111111 11111111 11111111 10100000)
205.16.23.176 (11111111 11111111 11111111 10110000)
205.16.23.192 (11111111 11111111 11111111 11000000)
205.16.23.208 (11111111 11111111 11111111 11010000)
205.16.23.224 (11111111 11111111 11111111 11100000)
205.16.23.240 (11111111 11111111 11111111 11110000)
또한 호스트 가용범위의 주소들은 다음과 같다.
205.16.23.1 ~ 205.16.23.14
205.16.23.17 ~ 205.16.23.30
205.16.23.33 ~ 205.16.23.46
205.16.23.49 ~ 205.16.23.62
205.16.23.65 ~ 205.16.23.78
205.16.23.81 ~ 205.16.23.94
205.16.23.97 ~ 205.16.23.110
205.16.23.113 ~ 205.16.23.126
205.16.23.129 ~ 205.16.23.142
205.16.23.145 ~ 205.16.23.158
205.16.23.161 ~ 205.16.23.174
205.16.23.177 ~ 205.16.23.190
205.16.23.193 ~ 205.16.23.206
205.16.23.209 ~ 205.16.23.222
205.16.23.225 ~ 205.16.23.238
205.16.23.241 ~ 205.16.23.254
참고
https://chati.tistory.com/107?category=862974
https://velog.io/@borab/IP-%EC%A3%BC%EC%86%8C%EC%99%80-Classful-Classless
'Network' 카테고리의 다른 글
[네트워크] 방화벽(Firewall) (2) - 구성형태 (0) | 2022.01.12 |
---|---|
[네트워크] 방화벽(Firewall) (1) - 개념, 기능, 동작방식 (2) | 2022.01.11 |
[네트워크] 로드밸런싱의 개념 및 기법 설명 (0) | 2022.01.04 |
[네트워크] 스위치의 종류 - Layer별 특징 (3) | 2022.01.03 |
[VirtualBox] 네트워크의 종류 및 구성 (9) | 2021.11.01 |
최근댓글