본문 바로가기
IT/CS 노트

서브넷마스크의 간단한 이론

by hatnim 2022. 10. 12.
반응형

1. 서브넷마스크의 개념과 원리

서브넷마스크는 전체 IP 주소가 단위 그룹으로 나뉘도록 여과해주는 수단을 말합니다. 네트워크에 연결된 컴퓨터들은 각각 고유의 IP 주소를 가지고 있고, 해당 IP 주소를 기준으로 서로 다른 네트워크거나 서로 다른 네트워크로 나눌 수 있습니다. 즉, 각각의 IP 주소를 가지는 컴퓨터들이 해당 IP 주소를 기준으로 동일한 네트워크로 소속되어 통신할 수 있지만, 서로 다른 네트워크로 묶여 통신을 할 수 없기도 하다는 뜻입니다. 그렇다면 IP 주소를 가지고 구분하는 방법이 복잡해보일 수 있지만 생각보다 간단합니다. 전체 IP 주소 범위를 일정한 그룹으로 나누고, 해당 그룹 중 동일한 그룹의 IP 주소를 가지는 컴퓨터들끼리는 서로 같은 네트워크에 해당한다고 보는 것입니다. 반면에 서로 다른 그룹의 IP 주소 범위를 가지는 컴퓨터들끼리는 서로 다른 네트워크에 해당한다고 할 수 있습니다. 이 때 사용하는 것이 서브넷마스크입니다. 서브넷마스크가 전체 IP 주소 범위에서 사용하고자 하는 부분만 필터링하여 네트워크를 분류하는 방법의 핵심은 바로 컴퓨터의 연산 방법인 비트 연산입니다. 그 중에서도 AND연산을 사용합니다. 비트연산은 컴퓨터가 2진수 데이터를 빠르게 처리하기 위해 사용한 연산 방법입니다. 크게 AND, OR, NOT, XOR 연산이 있습니다. 이 중에서 AND 연산은 두 개의 2진수 입력 값이 모두 1이면 결과 값도 1이 되고, 두 개의 입력 값이 모두 0이면 결과 값은 0이 됩니다. 만약, 두 개의 입력 값 중에 하나가 1이라면, 그러니까 0과 1을 입력한다면 결과값은 0이 됩니다. 예를 들어, IP 주소 '121.188.177.233'이 있다고 합시다. 필터링하고 싶은 24 bit 영역은 AND 연산을 통해 그대로 동일한 결과 값이 나오도록 24 bit 영역에는 1을, 나머지 8 bit 영역에는 0으로 값을 주겠습니다. 이렇게 되면 '11111111.11111111.11111111.00000000'인 필터링을 위한 IP 주소가 생성됩니다. 다음으로 원래 IP 주소도 2진수로 변환시켜 AND 연산을 하고 10진수로 변환하면 '121.188.177.0'이 나옵니다. 필터링 IP 주소도 10진수로 변환하면 '255.255.255.0'이 되는데 이 주소가 서브넷마스크입니다. 사람이 IP 주소를 IPv4로 표현할 경우 사용 가능한 IP의 총 개수는 2의 32제곱개입니다. 이 때 이 주소를 더욱 효율적으로 사용하기 위해 IP를 일정하게 분류한 것이 IP 클래스입니다. 전체 클래스는 A, B, C, D, E의 5개로 구분됩니다. 이 때 IP클래스에 따라 IP 주소의 구조가 결정됩니다. IP는 클래스별로 크게 네트워크 ID와 호스트 ID로 나눌 수 있습니다. 네트워크 ID는 IP 주소에서 고정된 주소 값을 가지는 첫 번째 영역이며 네트워크의 주소를 말합니다. 호스트 ID는 나머지 주소 영역으로 컴퓨터의 주소를 나타냅니다. 각 클래스별 서브넷마스크를 디폴트 서브넷마스크라고 부릅니다. 디폴트 서브넷마스크는 네트워크 ID 영역에 비트 수만큼 1을 값으로 주고 나머지 호스트 ID에는 비트 수만큼 0을 값으로 줘서 10진수로 변환해 IP 주소 형태로 나타낼 수 있습니다. 그리고 이때 1을 값으로 준 네트워크 ID 영역의 전체 비트 수를 서브넷마스크 비트 수 , 나머지 호스트 ID 영역의 비트 수를 호스트 비트 수라고 정의합니다. 

2. 클래스별 구분

클래스 A는 IP 주소 중 앞의 8 비트를 네트워크 ID 영역으로 정의하고 뒤의 24 비트를 호스트 ID 영역으로 구분하고 최상위 첫 비트는 반드시 0을 공통 값으로 가집니다. 이는 클래스 A가 128개의 네트워크 주소를 설정할 수 있다는 말입니다. 즉, 앞의 네트워크 ID와 호스트 ID를 합쳐서 0.0.0.0부터 127.255.255.255까지의 IP 주소를 사용할 수 있습니다. 하지만 실제로 이 전체를 사용하지는 못합니다. 네트워크 ID 0번, 10번, 127번 대역의 IP 주소는 특별한 목적으로 사용처가 정해져있기 때문입니다. 따라서 실제로 가능한 네트워크 ID는 총 125개가 됩니다. 클래스 B는 IP 주소 중 앞의 16비트를 네트워크 ID 영역으로 정의하고 뒤의 16 비트를 호스트 ID 영역으로 구분합니다. 또한 두 개의 최상위 비트 값이 1과 0을 공통 값으로 가집니다. 사용가능한 네트워크 개수는 16,384 개입니다. 클래스 C는 IP 주소 중 앞의 24비트를 네트워크 ID 영역으로 정의하고 뒤의 8비트를 호스트 ID 영역으로 구분하고 최상위 세 비트는 반드시 1, 1, 0을 공통 값으로 가집니다. 2,097,152개의 네트워크를 사용할 수 있습니다. 클래스 D는 최상위 네 개 비트가 1, 1, 1, 0을 공통 값으로 가집니다. 또한 멀티캐스트 IP 주소로 이미 예약되어 있기 때문에 컴퓨터에 할당하여 사용할 수는 없습니다. 그래서 두 영역으로 따로 구분하지 않습니다. 클래스 E는 최상위 네 개의 비트가 1, 1, 1, 1을 공통 값으로 가집니다. 하지만 앞의 클래스와 마찬가지로 연구 및 특수한 목적으로 이미 예약되어 있기 때문에 사용할 수 없습니다. 

 

반응형

댓글