[CISCO Networking] 서브넷 마스크

Hevton·2020년 9월 10일
0

서브넷 마스크는 말 그대로 네트워크를 나눌 때 사용합니다. 네트워크를 나누지 않고 사용하게 되면 브로드캐스트 영역이 너무 크기 때문에 통신이 원활하게 이루어 질 수 없습니다. 그런데 이 서브넷 마스크는 브로드캐스트 영역을 나누는 데에 중요한 기준 역할을 해줍니다. 네트워크 안에서 서브넷을 만들게 되고 이 나눠진 네트워크는 각자 다른 네트워크 상이 되기 때문에 서브넷 간의 통신은 라우터를 통해서만 가능합니다. (본래의 하나의 네트워크가 서브넷 마스크에 따라 라우터들로 서브네트워크로 나눠지게 되고, 브로드캐스트는 라우터를 넘어가지 않기 때문에 브로드캐스트 도메인 영역을 나누는 역할이 여기서 증명되는 것입니다)

모든 IP 주소에는 서브넷 마스크가 따라다닙니다. 서브넷 마스크를 가지고 있지 않는 IP 주소는 없습니다. 네트워크를 나누지 않게 되더라도 서브넷 마스크가 따라다니는데, 이 때의 서브넷 마스크는 바로 '디폴트 서브넷 마스크' 입니다. 기본 서브넷 마스크인 셈입니다. 이 '디폴트 서브넷 마스크'는 IP의 클래스에 따라 구분되는데, A 클래스의 경우 255.0.0.0 이고, B 클래스의 경우 255.255.0.0 이고, C 클래스의 경우엔 255.255.255.0 입니다. 그리고 이런 모든 서브넷 마스크들은 IP 주소의 어디까지가 네트워크부분이고, 어디까지가 호스트 부분인지를 나타내는데 중요한 역할을 해줍니다. 네트워크 부분은 서브넷 마스크가 이진수로 '1'인 부분이고, 호스트 부분은 서브넷 마스크가 이진수로 '0'인 부분입니다.
예를 들어 현재 디폴트 서브넷 마스크만 봐도 클래스에 따라 공통점이 있습니다. A 클래스는 1 옥테트가 네트워크 영역이라고 알고 있는데, 디폴트 서브넷 마스크를 보면 1옥테트 부분이 전부 1인것을 알 수 있습니다. (이진수 11111111 = 십진수 255) 이런 방식으로 B 클래스 C 클래스도 디폴트 서브넷 마스크가 네트워크 영역과 호스트 영역을 잘 구분해 줍니다.

그리고 IP 주소와 그 주소가 사용하는 서브넷 마스크를 서브네팅 (IP주소와 서브넷마스크의 AND연산) 해보면 나오는 값이 서브네트워크의 주소가 됩니다. 이런 서브넷 마스킹(내지는 서브네팅)을 통해 기존 IP 주소의 호스트 부분의 일부를 네트워크 부분으로 바꿀 수 있게 됩니다.
호스트 부분을 나눠서 네트워크 부분을 늘리는 것이죠.

다시 말하지만 서브넷 마스크로 만들어진 네트워크, 즉 서브넷은 이제 하나의 네트워크 이기 때문에 서로 나뉘어진 서브넷끼리는 라우터를 통해서만 통신이 가능합니다.

서브넷 마스크의 특징은 이진수로 썼을 때 '1'이 연속적으로 나와야 합니다. 십진수를 이진수로 바꿨을 때,
11111111.11111111.11111111.11111000 이런 서브넷 마스크는 가능하지만 11111111.11111111.11111111.11000011 이렇게 1 사이에 0이 있는 경우가 절대 존재하면 안됩니다. 1 사이에는 어떠한 경우에도 0이 들어오면 안되는 것입니다. 즉 서브넷 마스크는 이진수로 나타낼 경우 1이 연속적으로 나온 후에 0이 나오는 게 규칙입니다.

서브넷 마스크를 만드는 방법에 대한 실전 문제 하나를 보겠습니다.
"우리가 가지고 있는 공인 IP 주소는 201.222.5.0 (디폴트 서브넷 마스크 = 255.255.255.0) 이다. 서브넷 수를 20개 이상으로 하고 서브넷 당 호스트 수를 5개 이상 하려고 하면, 서브넷 마스크를 어떻게 설정해야 하느냐?" 라는 문제가 있습니다.

IP 주소가 클래스 C에 속하므로 마지막 8비트의 호스트 영역에 있어서 서브네팅 작업을 해줘야 한다.

20개의 서브넷을 필요로 하므로 최소 2^5 이상이 필요되므로 서브넷 구축에 있어서 필요한 네트워크 비트는 5개,
5개의 호스트를 필요로 하므로 2^3 이상이 필요되므로 필요한 호스트 비트는 3개이다.
(단 이런 계산을 할 때 호스트는 -2(네트워크 자체 주소, 브로드캐스트 주소)를 생각해줘야 한다.)

따라서 서브넷 마스크는 8비트 호스트 부분 중 5비트를 1로 세팅(서브넷 부분) 나머지 3비트를 0으로 세팅(호스트 부분)해주면 된다.
그러면 255.255.255.248이라는 서브넷 마스크를 얻어낼 수 있습니다. 이렇게 201.222.5.0 네트워크를 255.255.255.248 서브넷 마스크를 이용해서 서브넷으로 나눠주면 각 서브넷 당 6개의 호스트를 가지는 32개의 서브넷을 얻을 수 있습니다.

< 다시보는 정 리 >
1. 모든 IP 주소에는 서브넷 마스크가 따라다닌다. (서브네팅을 하지 않은 경우는 디폴트 서브넷 마스크, 한 경우는 디폴트 서브넷 마스크를 쓰지 않고 고쳐서 쓴 서브넷 마스크-> 이를 그냥 서브넷 마스크라고 함.) 그래야 그 주소를 나눈건지 나누지 않은 건지 알 수 있기 때문이다.
2. 클래스 별로 디폴트 서브넷 마스크가 존재한다.
3. 서브넷도 하나의 네트워크이므로 나누어진 서브넷은 라우터를 통해서만 통신이 되는 엄연한 하나의 네트워크이다.
4. 서브넷 마스크를 만들 때는 1들의 중간에 0이 들어가는 마스크는 만들지 않는다.
5. 서브넷 마스크가 이진수로 '1'인 부분이 네트워크 부분이고, '0'인 부분이 호스트 부분이다.
6. 서브넷 마스킹을 할 때, 서브넷 마스크가 255인 부분은 어차피 바로 내려오니까 이진수로 변환하여 계산해줄 필요 없고, 0이나 255가 아닌 부분만 이진수로 변환해서 계산하면 빠름.
7. 호스트 부분이 전부 0인 주소는 네트워크 자체를 나타내는 주소, 호스트 부분이 전부 1인 주소는 네트워크의 브로드캐스트 주소
사용 가능한 호스트 수 = 2^(호스트 비트 수) -2
8. IP 주소와 서브넷 마스크를 AND 연산하면 서브넷 주소가 나온다.
9. 서브넷 마스킹을 통해 기존 IP 주소의 호스트 부분의 일부를 네트워크 부분으로 바꿀 수 있다. -> 서브넷 마스크는 기존 IP의 호스트 부분에 적용하여 변화를 주는 것이다. 다시말해 서브네팅이란 기존의 호스트 부분을 줄여서 일부를 서브넷 부분으로 만들고 나머지를 호스트로 만드는 개념이므로 호스트의 숫자는 줄어들고 서브넷의 숫자는 늘어나게 된다.

profile
놀만큼 놀았다.

0개의 댓글