서브넷과 서브넷 마스크
서브넷은 말그대로 부분 네트워크라는 뜻이다.
내부 네트워크와 외부 네트워크를 명확하게 구분하고 부분적으로 나눈 부분 네트워크를 의미한다.
이러한 서브넷을 만들 때 사용되는 것이 바로 서브넷마스크이다.
💡 즉, 서브넷 마스크는 IP 주소 체계의 Network ID와 Host ID를 분리하는 역할을 한다.
IPv4
IPv4 주소는 4개의 바이너리 8자리 수로 이루어져 총 32비트로 구성되어 있다.
예를 들어 192.168.0.1은 [1100 0000] . [1010 1000] . [0000 0000] . [0000 0001]로 표현한다.
IP 구성
IP주소는 네트워크 부분과 호스트 부분으로 나누어진다.
하나의 로컬 네트워크에서는 IP 주소의 네트워크 부분은 같아야하고, 호스트 부분은 달라야 한다는 것이다.
이해를 해보자면 같은 건물에 있는 다른 사람을 찾기 위해 건물 밖을 나갔다 다시 들어온다 하는 불필요한 짓 없이도 효율적인 네트워크 통신과, 브로드캐스팅을 위해 장치들을 일정한 규칙에 따라 하나의 그룹으로 묶는다.
서브넷 마스크
서브넷을 구분할 수 있는 방법
서브넷 마스크를 어떤 범위로 하냐에 따라 로컬 네트워크의 범위가 넓어지기도, 좁아지기도 한다.
해당 아파트 전체가 같은 네트워크일 수도, 좁게는 같은 건물의 5층 라인만이 같은 네트워크일 수도 있는 것.
기본 서브넷 마스크
각 클래스마다 기본 서브넷 마스크를 통해 IP 주소의 Network ID와 Host ID를 구분할 수 있다.
IP 주소에 서브넷 마스크를 AND 연산하면 Network ID가 된다.
서브넷 계산
C클래스인 192.168.32.0 이라는 IP주소가 있다고 할때, C Class의 기본 서브넷 마스크는 255.255.255.0 이므로 AND 연산을 하면 192.168.32.0이 나오고 이것이 바로 Network ID이다. 이 때의 Network ID부분은 1이 연속적으로 있어야 하며 Host ID 부분은 0이 연속적으로 있어야 한다.
Prefix 표현
서브넷 마스크를 보다 더 간소화해서 표현
192.168.32.0/24 처럼, /24가 서브넷 마스크를 표현한 것이다.
/24라는 뜻은 32비트 중 앞에서부터 차례대로 1의 갯수가 24개라는 의미이다. 나머지 32-24=8은 0으로 채워주면 서브넷 마스크 숫자가 되는 것이다.
/24 → 11111111.11111111.11111111.00000000
이렇게 Prefix 방식으로 표현하면 [192.168.32.0 255.255.255.0]을 192.168.32.0/24로 간략히 줄일 수 있게 된다.
각 클래스 별 Prefix 표현
10.10.10.10/8 → A 클래스
172.16.1.10/16 → B 클래스
192.168.100.10/24 → C 클래스
서브넷팅
서브넷팅은 더 많은 네트워크 망을 만들기 위해 원본 네트워크를 여러개의 서브넷으로 분리하는 과정을 뜻한다. 서브넷팅은 서브넷 마스크의 bit 수를 증가시키는 것이라고 생각하면 된다.
서브넷 마스크의 bit수를 1씩 증가시키면 할당할 수 있는 네트워크가 2배수로 증가하고 호스트 수는 2배수로 감소한다.
서브넷팅 예시
192.168.32.0/24를 서브넷 마스크의 bit수를 1 증가시켜 192.168.32.0/25로 변경한다고 하자.
192.168.32.0/24 에서 할당 가능한 host의 수는 2^8-2 = 254개이다.
여기서 2개를 빼는 이유는 아래와 같이 Network Address와 Broadcast로 쓰이기 때문이다.
192.168.32.0 = Network Address
192.168.32.255 = Broadcast
이 때 192.168.32.0/24에서 bit 수를 1 증가시켜 192.168.32.0/25로 변경하게 된다면 Network ID를 나타내는 부분이 24비트에서 25비트로 증가하고 Host ID를 나타내는 부분이 8개 비트에서 7개 비트로 줄어든다.
즉, 할당 가능한 네트워크 수가 (0, 1) 2개로 증가하고 192.168.32.0/25 에서 할당가능한 호스트 수는 2^7 - 2 = 126개로 줄어든다. 또한 서브넷 마스크가 255.255.255.128로 변한 것을 확인할 수 있다.
192.168.32.0/24의 할당가능한 부분
- 192.168.32.1 ~ 192.168.32.254
192.168.32.0/25의 할당가능한 부분 (네트워크 수 2개로 증가)
- subnet 1 : 192.168.32.1 ~ 192.168.32.126
- subnet 2 : 192.168.32.129 ~ 192.168.32.254
주소범위를 절반과 그의 절반으로 나누기
예를들어, 50개의 IP를 사용하는 스타트업 회사가 있다고 하자.
50개 밖에 사용안하니 가장 작은 C클래스 대역을 줄 예정이다(192.168.10.0/24) 그래도 256(2^8)개를 전부 주기에는 낭비가 많다.
회사는 50개의 호스트만 필요하다고 하니 256개를 전부 주는 것은 낭비이다. 256 주소를 4등분하여 64개만 지급하는 작업을 시행해보자.
서브넷 구분비트를 왼쪽에서 2비트(2^2)로 지정한다.
그러면 서브넷 구분비트는 00, 01, 10, 11로 총 4개로 구분되어질 수 있고 이를 적용해보면 아래 그림과 같다.
256개의 호스트 주소를 4개로 나뉘었고 이를 범위로 표현한다면 다음과 같이 된다. 이중 서브넷 하나를 회사에게 할당해주는 것으로 해결할 수 있다!!
'CS > 네트워크' 카테고리의 다른 글
로드밸런싱 (Road Balancing) (0) | 2023.01.04 |
---|---|
네트워크 기기 정리 (0) | 2022.12.29 |
네트워크 기초 (5) | 2022.12.22 |