보안/Network

서브넷 마스크(subnet mask)

realforce111 2016. 5. 23. 15:28

서브넷 마스크는 TCP/IP 프로토콜에 의해 호스트가 로컬 서브넷에 있는지 아니면 원격 네트워크에 있는지를 확인하는데 사용됩니다.  

TCP/IP에서는 네트워크 주소와 호스트 주소로 사용되는 IP 주소의 부분이 고정되어 있지 않아 또 다른 추가 정보가 있지 않는 한 위의 네트워크 주소와 호스트 주소를 확인할 수 없습니다. 이러한 추가 정보는 서브넷 마스크라고 하는 또 다른 32비트 숫자의 형태로 제공됩니다. 이 예제에서는 서브넷 마스크가 255.255.255.0입니다. 이진 표기법에서는 255가 11111111에 해당하므로 이 서브넷 마스크가 아래와 같다는 것을 모른다면 다음 숫자가 무엇을 의미하는지 이해하기 어려울 것입니다.

11111111.11111111.11111111.0000000

IP 주소와 서브넷 마스크를 나란히 놓으면 주소의 네트워크 부분과 호스트 부분을 아래와 같이 분리할 수 있습니다.

11000000.10101000.01111011.10000100 -- IP 주소(192.168.123.132)
11111111.11111111.11111111.00000000 -- 서브넷 마스크(255.255.255.0)


처음 24비트(서브넷 마스크에서 1로 이루어진 숫자)는 네트워크 주소이고 마지막 8비트(서브넷 마스크에서 나머지 0으로 이루어진 숫자)는 호스트 주소입니다. 이 숫자가 의미하는 것은 아래와 같습니다.

11000000.10101000.01111011.00000000 -- 네트워크 주소(192.168.123.0)
00000000.00000000.00000000.10000100 -- 호스트 주소(000.000.000.132)


이제 255.255.255.0이라는 서브넷 마스크를 사용하는 이 예제에서 네트워크 ID는 192.168.123.0이고, 호스트 주소는 0.0.0.132라는 것을 알 수 있을 것입니다.
패킷이 로컬 서브넷이나 원격 네트워크로부터 192.168.123.0 서브넷에 도달하여 해당 서브넷에 목적지 주소 192.168.123.132가 있으면 컴퓨터가 네트워크로부터 해당 패킷을 받아서 처리합니다.

거의 모든 십진 서브넷 마스크는 왼쪽은 모두 1이고 오른쪽은 모두 0인 이진 숫자로 변환됩니다. 또 다른 일반적으로 사용되는 서브넷 마스크는 아래와 같습니다.

십진                                    이진
255.255.255.192
             1111111.11111111.1111111.11000000
255.255.255.224
             1111111.11111111.1111111.11100000 


클래스 A, B, C TCP/IP 네트워크는 시스템 관리자에 의해 더 작은 단위로, 즉 서브넷으로 나누어질 수 있습니다. 인터넷의 논리적 주소 체계(IP 주소와 서브넷으로 이루어진 추상적 세계)와 실제로 사용되는 실제 네트워크를 맞출 때 이러한 작업이 필요합니다. IP 주소 블록을 맡고 있는 시스템 관리자는 이 주소 체계에 해당하는 올바른 방식으로 네트워크를 구성할 수 있도록 해야 합니다.


예를 들어 각각 다른 사이트에 있는 3개의 네트워크에서 총 150대의 호스트를 가지고 있고 하나의 TCP/IP 라우터로 연결되어 있습니다. 3개의 네트워크는 각각 네트워크에 50대의 호스트를 가지고 있습니다. 


이 상황에서 192.168.123.0을 할당받았다고 가정해 보면 150대의 호스트는 192.168.123.1 - 192.168.123.254 사이의 주소를 사용할 수 있습니다. 


호스트 부분이 모두 1이거나 모두 0인 이진 주소는 유효하지 않기 때문에 이 예에서 192.168.123.0 주소와 192.168.123.255 주소는 사용할 수 없습니다. 0 주소는 호스트를 지정하지 않고 네트워크만을 지정하는 데 사용되므로 유효하지 않습니다. 255 주소(이진 표기법에서 호스트 주소가 모든 1인 주소)는 네트워크 상의 모든 호스트에 메시지를 브로드캐스트하는데 사용됩니다. 이렇게 네트워크 또는 서브넷의 첫 번째 주소와 마지막 주소는 개별 호스트에 할당될 수 없습니다.

이제 254대의 호스트에 IP 주소를 제공할 수 있을 것입니다. 이 경우 150대의 컴퓨터가 모두 하나의 네트워크에 있어야 적절합니다. 하지만 이 예에서는 150대의 컴퓨터가 3개의 실제 네트워크에 나누어져 있습니다. 각 네트워크에 추가로 주소 블록을 요청하는 대신 하나의 주소 블록을 여러 개의 실제 네트워크에 사용할 수 있도록 네트워크를 여러 개의 서브넷으로 나눕니다.

이 경우에는 네트워크 주소는 늘리고 가능한 호스트 주소 범위는 줄이는 서브넷 마스크를 사용하여 네트워크를 4개의 서브넷으로 나눕니다. 즉, 호스트 주소에 사용되는 비트 중 일부를 '빌려' 이를 주소의 네트워크 부분에 사용합니다. 서브넷 마스크 255.255.255.192는 각각 62대의 호스트로 이루어진 4개의 네트워크에 사용할 수 있습니다. 이진 표기법에서는 255.255.255.192가 1111111.11111111.1111111.11000000과 같기 때문에 그렇습니다. 마지막 옥텟의 처음 두 자릿수는 네트워크 주소가 되어 추가 네트워크 00000000(0), 01000000(64), 10000000(128), 11000000(192)를 가질 수 있습니다. 어떤 관리자는 서브넷 마스크로 255.255.255.192를 사용할 경우 서브 네트워크를 두 개만 사용하기도 합니다. 이에 대한 자세한 내용은 RFC 1878를 참조하십시오. 이러한 4개의 네트워크에서 마지막 6자리 이진수는 호스트 주소에 사용할 수 있습니다.

서브넷 마스크 255.255.255.192를 사용하면 192.168.123.0 네트워크가 4개의 네트워크 192.168.123.0, 192.168.123.64, 192.168.123.128, 192.168.123.192로 나누어집니다. 이들 4개 네트워크에서 유효한 호스트 주소는 다음과 갖습니다.

192.168.123.1-62
192.168.123.65-126
192.168.123.129-190
192.168.123.193-254


모두 1과 모두 0인 이진 호스트 주소는 유효하지 않으므로 마지막 옥텟이 0, 63, 64, 127, 128, 191, 192, 255인 주소는 사용할 수 없다는 점을 기억하십시오.

두 호스트 주소, 192.168.123.71과 192.168.123.133을 보면 그 이유를 알 수 있습니다. 기본 클래스 C 서브넷 마스크 255.255.255.0을 사용할 경우 이 두 주소가 모두 192.168.123.0 네트워크에 있습니다. 그러나, 서브넷 마스크 255.255.255.192를 사용한다면 이 두 주소가 각각 다른 네트워크에 있게 됩니다. 즉, 192.168.123.71은 192.168.123.64 네트워크에 있고 192.168.123.133은 192.168.123.128 네트워크에 있게 됩니다.

      

*서브넷 마스크 테이블

Mask Length

Host Bit Length 

Math 

Max Hosts 

Subnet Mask 

Mask Octet 

Binary Mask 

Subnet Length 

/32

0

2^0

1

255.255.255.255

4

11111111

0

/31

1

2^1

2

255.255.255.254

4

11111110

1

/30

2

2^2

4

255.255.255.252

4

11111100

2

/29

3

2^3

8

255.255.255.248

4

11111000

3

/28

4

2^4

16

255.255.255.240

4

11110000

4

/27

5

2^5

32

255.255.255.224

4

11100000

5

/26

6

2^6

64

255.255.255.192

4

11000000

6

/25

7

2^7

128

255.255.255.128

4

10000000

7

/24

8

2^8

256

255.255.255.0

3

11111111

8

Class C

/23

9

2^9

512

255.255.254.0

3

11111110

9

/22

10

2^10

1,024

255.255.252.0

3

11111100

10

/21

11

2^11

2,048

255.255.248.0

3

11111000

11

/20

12

2^12

4,096

255.255.240.0

3

11110000

12

/19

13

2^13

8,192

255.255.224.0

3

11100000

13

/18

14

2^14

16,384

255.255.192.0

3

11000000

14

/17

15

2^15

32,768

255.255.128.0

3

10000000

15

/16

16

2^16

65,536

255.255.0.0

2

11111111

16

 Class B

/15

17

2^17

131,072

255.254.0.0

2

11111110

17

/14

18

2^18

262,144

255.252.0.0

2

11111100

18

/13

19

2^19

524,288

255.248.0.0

2

11111000

19

/12

20

2^20

1,048,576

255.240.0.0

2

11110000

20

/11

21

2^21

2,097,152

255.224.0.0

2

11100000

21

/10

22

2^22

4,194,304

255.192.0.0

2

11000000

22

/9

23

2^23

8,388,608

255.128.0.0

2

10000000

23

/8

24

2^24

16,777,216

255.0.0.0

1

11111111

24

 Class A


[출처] https://support.microsoft.com/ko-kr/kb/164015