반응형

 

서브넷 마스크(Subnet Mask)에 대하여 알기 위해서 먼저는 논리적으로 AND(그리고)에 대한 개념을 알아야 한다.

 

컴퓨터 전공자라면 한번 쯤 배웠을 법한 이 개념.

 

* AND

0 and 0 = 0

0 and 1 = 0

1 and 0 = 0

1 and 1 = 1

 

1은 True, 0은 False이다. 이렇게 전자적인 컴퓨터 언어 0과 1을 놓고 보았을 때(bit라 한다) True와 True가 만나야 True가 된다. 비슷한 개념으로 OR(또는)가 있는데, 이것은 한 비트만 True(1)여도 True(1)라는 결과가 출력된다.

 

한글로 번역하면 AND는 그리고, OR은 또는 으로 볼 수 있다. 말 그대로 그리고는 앞뒤가 같아야 하고 또는은 둘 중에 하나라도 맞으면 맞다라는 의미이다. 이렇게 해서 외우면 쉽게 외울 수 있다.

 

 


 

 

이 개념을 가지고 서브넷 마스크에 대해 알아보자.

 

서브넷 마스크는 지난번 포스팅에 클래스 A,B,C에서 호스트 부분을 다시 서브넷과 호스트로 구분하는 역할을 한다고 했다.(참고)

 

먼저 이 서브넷 마스크를 나누는 가장 큰 이유에 대해서 살펴보려고 한다. IP주소는 한정되어 있다고 지난 포스팅에 작성을 해 두었다. 그렇기 때문에 이 주소를 잘 분배해서 사용하는 것이 중요하고 버려지는 주소가 없도록 아껴야 하기 때문에 서브넷 마스크를 나눈다. 서브넷 마스크는 주어진 IP주소를 네트워크 환경에 맞게 나누어 주기 위해서 씌워주는 이진수의 조합이다.

 

모든 IP 주소에는 서브넷 마스크가 따라다닌다. 지난시간 포스팅에 적어둔 것 같이 A클래스부터 B, C까지 디폴트 서브넷 마스크는 255.0.0.0 / 255.255.0.0 / 255.255.255.0 으로 정해두었다. 디폴트값은 서브넷을 나누지 않은 상태로, 0~255까지의 ip주소를 다 사용할 경우에는 디폴트 값을 이용해도 상관이 없다. 그러나 그렇지 않은 경우가 대부분이기 때문에 공간의 낭비를 줄이기 위해서 서브넷을 2의 n승만큼 나눌 수 있다. 이렇게 서브넷 마스크를 나누는 것을 서브넷팅(Subnetting)이라고 한다.

 

 

먼저, 네트워크 아이디를 얻는 방법에 대하여 한 가지 예시를 들어서 이해해보려고 한다.

ex.

-IP주소 : 192.168.100.10

-서브넷 마스크 : 255.255.255.0

위와같은 전제가 있다고 할 때, 먼저 IP주소가 192로 시작하기 때문에 이 주소는 C클래스에 해당한다.

(192~223으로 시작하는 경우 C 클래스다.)

 

IP주소와 서브넷마스크 주소를 2진수 비트 형태로 표현해서 AND연산을 하게되면 네트워크 주소(네트워크 아이디)가 나온다.

 

-IP주소 : 192.168.100.10 -> 1100 0000.1010 1000.0110 0100.0000 1010

-서브넷 마스크 : 255.255.255.0 -> 1111 1111.1111 1111.1111 1111.0000 0000

----------------------------------------AND 연산 결과-----------------------------------------

AND연산 작업을 하고 나면,

11000000.10101000.01100100.00000000라는 값을 얻을 수 있고, 이 2진수를 10진수로 표현하면 192.168.100.0 이라는 네트워크 주소(아이디)를 얻을 수 있다.

 

 

앞으로 ip주소와 서브넷마스크만 알고있으면, 네트워크 아이디를 계산해볼 수 있다. 여기서 서브넷 마스크를 변경할 수 있다. 나머지 조건은 동일하고, 서브넷마스크만 255.255.255.128일 경우 네트워크 아이디는 무엇일까? 바로 위의 연산에서 서브넷마스크 부분의 마지막 8비트를 10000000(2진수) 으로 바꿔서 계산하면 된다. 그 결과 네트워크 아이디는 192.168.100.128이 된다.

 

그럼 처음 문제와 두번째 문제에서 네트워크 아이디가 달라진다. 그렇지만 둘 다 C클래스임에는 변함이 없다. 또한 네트워크 아이디 부분을 알고있다고 한다면 호스트 부분의 범위도 알 수 있다. 네트워크부에서 사용하고 남는 비트를 호스트부에서 사용하기 때문이다.

 

 

출처 : https://m.blog.naver.com/PostView.nhn?blogId=pasudo123&logNo=221144305071&proxyReferer=https:%2F%2Fwww.google.com%2F

 

 

 

이러한 서브넷 마스크의 변경을 VLSM(Variable Length Subnet Mask, 가변길이 서브넷 마스크) 라고 한다.

문제풀이를 할 때 아래와 같이 개념을 잡아두는 것이 도움이 될 것 같다.

 

11111111.11111111.11111111.00000000 : 0~255 전체 다 사용함

11111111.11111111.11111111.10000000 : 서브넷 : 2(2n), 서브넷당 ip(*1/2) : 128개씩

11111111.11111111.11111111.11000000 : 서브넷 : 4, 서브넷당ip : 64

11111111.11111111.11111111.11100000 : 서브넷 : 8, 서브넷당ip : 32

11111111.11111111.11111111.11110000 : 서브넷 : 16, 서브넷당ip : 16

11111111.11111111.11111111.11111000 : 서브넷 : 32, 서브넷당ip : 8

11111111.11111111.11111111.11111100 : 서브넷 : 64, 서브넷당ip : 4

 

이해가 안가면 그냥 서브넷은 2의 n승(1이 있는만큼), 서브넷당 ip는 2의 n분의 1을 곱한다고 생각하자.

 

실제 계산을 해보면 점점 이해가 잘 되는 것 같다. 사실 이런 서브넷을 하나하나 다 계산하는게 실무에 필요할까 싶은데, 실제로 서브넷을 나누는 사람은 '네트워크 설비'쪽이다. 그래도 개념을 이해하기 위해서나 전공수업에서는 이런 조건들을 주고 서브넷마스크, 네트워크 주소, 호스트 범위, 브로드캐스트 주소, 서브넷 수, 호스트 수에 대한 문제를 접할 수 있을 것이다.

 

추가로 이 부분에 대한 문제풀이는 후니의 쉽게 쓴 시스코 네트워킹 책을 참고하였다.

 

 

반응형

+ Recent posts