본문 바로가기

Network/이론

네트워크 이론 - 6

※ Classless : network-id 를 유동적으로 관리 

1) subnetting : network-id 줄이기 

2) supernetting : network-id 늘리기

--> netmask , wildcard , prefix로 표현이 가능하다. 

 

1. netmask로 표현하기 

 

- netmask(subnetmask) = network-id + mask 합쳐진 의미로 ip 주소에서 변하지 않는 부분인 network-id를 2진수 1로 표기해준다. 

 

ex) ㅎ ㅗ ㅇ ㄱ ㅣ ㄹ ㄷ ㅗ ㅇ -> ㅎ ㅗ ㅇ | 1 1 1[network]   -  ㄱ ㅣ ㄹ ㄷ ㅗ ㅇ | 0 0 0 0 0 0 [host]

 

 

2. wildcard로 표현하기 

 

- wildcard = network-id + mask 합쳐진 의미로 ip 주소에서 변하지 않는 부분인 network-id를 2진수 0로 표기해준다.

 

ex) ㅎ ㅗ ㅇ ㄱ ㅣ ㄹ ㄷ ㅗ ㅇ -> ㅎ ㅗ ㅇ | 0 0 0 [network]   -  ㄱ ㅣ ㄹ ㄷ ㅗ ㅇ | 1 1 1 1 1 1 [host]

 

3. prefix로 표현하기 (IPv6 주로 사용 , 128bit의 주소 체계이기 때문에 다른 표현은 너무 길어진다.)

 

- prefix : netmask에서 1의 개수를 적어준다. 

 

ex) ㅎ ㅗ ㅇ ㄱ ㅣ ㄹ ㄷ ㅗ ㅇ -> ㅎ ㅗ ㅇ | 1 1 1[network]   / 3 -> 앞의 3자리가 네트워크 아이디라고 표시

 

 

ex) 192.168.15.36 이라는 주소가 있다고 가정하고 subnetmask가 255.255.255.0 라고 한다면

 

2진수로 변환 -> 1100 0000 . 1100 0000 . 0000 1111. 0010 0100 [192.168.15.36]

넷마스크       ->  1111 11111111 1111 . 1111  1111 . 0000 0000 [255.255.255.0]

 

강조 표시 = network-id , 일반 표시 = host-id

 

와일드 카드 -> 0000 0000 . 0000 0000 . 0000 0000 . 1111 1111 [0.0.0.255]

prefix -> 1111 1111  1111 1111 . 1111  1111 . -> 1의 개수 24개 -> /24

====================================================================== 

 

※ RFC1918 -> private address, 사설 주소이기 때문에 routing 대상이 아니다, 외부에서 들어오면 안되는 차단해야 하는 주소이다. 즉, 내부 통신용 주소이다. martian route 라고도 부른다. [ RFC3330, 5735 ...]

 

- 종류 

 

10.0.0.0 ~ 10.255.255.255

 

172.16.0.0 ~ 172.31.255.255

 

192.168.0.0 ~ 192.168.255.255

 

- 2진수로 변경

 

1) 10.0.0.0 ~ 10.255.255.255

 

0000 1010. 0000 0000. 0000 0000. 0000 0000 [ 10.0.0.0 ] 

~

0000 1010. 1111 1111. 1111 1111. 1111 1111 [ 10.255.255.255 ]

-----------------------------------------------------------------------------------------------

 

1111 1111 . 0000 0000. 0000 0000. 0000 0000 [255.0.0.0] -> netmask [ 같은 대역은 1, 다르면 0으로 채운다.]

0000 0000 . 1111 1111 . 1111 1111 . 1111 1111 [0.255.255.255] -> wildcard

/8 -> prefix

 

-----------------------------------------------------------------------------------------------

10.0.0.0 255.0.0.0 -> 입력하면 컴퓨터가 10.0.0.0 ~ 10.255.255.255를 사용 가능한 주소 범위로 인식한다. 

10.0.0.0 0.255.255.255 -> 10.0.0.0 ~ 10.255.255.255 사용 가능한 주소 범위로 인식

10.0.0.0/8  -> 10.0.0.0 ~ 10.255.255.255 사용 가능한 주소 범위로 인식

 

-> 표현 방식의 차이가 있다. 

 

2) 172.16.0.0 ~ 172.31.255.255

 

1010 1100 . 0001 0000 . 0000 0000. 0000 0000 [172.16.0.0]

~

1010 1100. 0001 1111. 1111 1111. 1111 1111 [172.31.255.255]

 

----------------------------------------------------------------------------------------

- netmask

 

1111 1111 . 1111 0000. 0000 0000. 0000 0000 [255.240.0.0]

 

- wildcard

 

0000 0000. 0000 1111. 1111 1111. 1111 1111 [0.15.255.255]

 

- prefix

/12

---------------------------------------------------------------------------------------- 

 

172.16.0.0 255.240.0.0 -> 172.16.0.0 ~ 172.31.255.255

172.16.0.0 0.15.255.255 -> 172.16.0.0 ~ 172.31.255.255

172.16.0.0/12 -> 172.16.0.0 ~ 172.31.255.255

 

3) 192.168.0.0 ~ 192.168.255.255 -> 바뀌는 부분이 눈으로도 계산 가능하여 2진수 변환 하지 않고 계산

 

192.168.0.0 255.255.0.0

192.168.0.0 0.0.255.255

192.168.0.0/16

 

====================================================================

 

※ Layer 3 : subnetting , Layer2 : vlan

 

- subnetting : 망 분리 

 

ex) 홍길동 과 홍님동

ㅎ ㅗ ㅇ |  ㅣ ㄹ ㄷ ㅗ ㅇ : 'ㄱ' 이 subnet에 해당하고 늘려주는 행위를 subnetting이라고 한다. 

ㅎ ㅗ ㅇ |  ㄴ ㅣ ㅁ ㄷ ㅗ ㅇ : 'ㄴ' 이 subnet에 해당하고 늘려주는 행위를 subnetting이라고 한다.

 

->  현재는 같은 네트워크 id로 스위칭해야하는데 다른 대역으로 라우팅으로 바꿔주고 싶을 때 뒤의 ㄱ , ㄴ 까지를 network-id로 늘려주면 다른 네트워크 대역이 된다. 

 

network - id    /           host - id

<----------------------> <------->          network-id 부분이 늘어나고 host - id 부분이 줄어든다. 

                      <--> subnetting

 

-> 개념을 이해할 때, network - id가 늘어났다기 보다는 host-id가 줄어들었다고 본다. 망을 이용할 수 있는 구성원인 host가 이용할 수 있는 대역이 줄어들었기 때문에 네크워크 규모가 작아졌다고 본다. (subnetting, 규모를 줄인다, 망 분리한다. switching -> routing)

 

 

※ 예시로 확인해보는 서브네팅

 

우리 회사 [ 200.1.1.0 /24 ] 에 8개의 부서가 있다. [ subnet이 8개로 나뉜다 => subnet-bit : 2^3 -> 3bit]

 

200.1.1.0 /24 -> 24 prefix로 고정되어 있기 때문에 200.1.1 까지의 대역은 건드리지 않고 '0' 에 해당하는 8bit만 가지고 서브넷을 만들어 보고자 한다. 

 

200.1.1.0 /24 

 

                        xxx            x . xxxx

a부서              000            0 . 0000 [0] -> a부서의 시작주소 = 네트워크 대표주소 = routing 대상 

                                         ~

                                         1 . 1111 [31] -> a부서의 direct broadcast 주소 

 

-> 200.1.1.0 ~ 200.1.1.31 : host 수 2^5 = 32개 - 2개 (각 부서의 시작주소, broadcast 주소 빼기 때문에) = 30

 

--------------------------------------------2진수 변환 -----------------------------------------------

 

1100 1000. 0000 00001. 0000 0001. 000                  0 . 0000 [200.1.1.0]

~

1100 1000. 0000 00001. 0000 0001. 000                  1 . 1111 [200.1.1.31]

 

-------------------------------netmask, wildcard, prefix-----------------------------------------------

1111 1111 . 1111 1111.    1111 1111.   111                   0 . 0000 [255.255.255.224]

0000 0000 . 0000 0000 . 0000 0000. 000                  1 . 1111 [0.0.0.31]

/27

200.1.1.0 255.255.255.224 [200.1.1.0 ~ 200.1.1.31]

200.1.1.0 0.0.0.31 [200.1.1.0 ~ 200.1.1.31]

200.1.1.0/27 [200.1.1.0 ~ 200.1.1.31]

 

----------------------------------------------------------------------------------------------------------------------

 

 

 

b부서              001            0 . 0000 [32]

                                         ~

                                         1 . 1111 [63]

 

-> 200.1.1.32 ~ 200.1.1.63

 

--------------------------------------------2진수 변환 -----------------------------------------------

 

1100 1000. 0000 00001. 0000 0001. 001                  0 . 0000 [200.1.1.32]

~

1100 1000. 0000 00001. 0000 0001. 001                  1 . 1111 [200.1.1.63]

 

-------------------------------netmask, wildcard, prefix-----------------------------------------------

1111 1111 . 1111 1111.    1111 1111.   111                   0 . 0000 [255.255.255.224]

0000 0000 . 0000 0000 . 0000 0000. 000                  1 . 1111 [0.0.0.31]

/27

200.1.1.0 255.255.255.224 [200.1.1.32 ~ 200.1.1.63]

200.1.1.0 0.0.0.31 [200.1.1.32 ~ 200.1.1.63]

200.1.1.0/27 [200.1.1.32 ~ 200.1.1.63]

 

----------------------------------------------------------------------------------------------------------------------

 

c부서              010            0 . 0000 [64]

                                         ~

                                         1 . 1111 [95]

 

-> 200.1.1.64 ~ 200.1.1.95

 

--------------------------------------------2진수 변환 -----------------------------------------------

 

1100 1000. 0000 00001. 0000 0001. 01                 0 . 0000 [200.1.1.64]

~

1100 1000. 0000 00001. 0000 0001. 010                  1 . 1111 [200.1.1.95]

 

-------------------------------netmask, wildcard, prefix-----------------------------------------------

1111 1111 . 1111 1111.    1111 1111.   111                   0 . 0000 [255.255.255.224]

0000 0000 . 0000 0000 . 0000 0000. 000                  1 . 1111 [0.0.0.31]

/27

200.1.1.0 255.255.255.224 [200.1.1.64 ~ 200.1.1.95]

200.1.1.0 0.0.0.31 [200.1.1.64 ~ 200.1.1.95]

200.1.1.0/27 [200.1.1.64 ~ 200.1.1.95]

 

----------------------------------------------------------------------------------------------------------------------

 

 

d부서              011           0 . 0000 [96]

                                         ~

                                        1 . 1111 [127]

 

-> 200.1.1.96 ~ 200.1.1.127

 

--------------------------------------------2진수 변환 -----------------------------------------------

 

1100 1000. 0000 00001. 0000 0001. 011                  0 . 0000 [200.1.1.96]

~

1100 1000. 0000 00001. 0000 0001. 011                  1 . 1111 [200.1.1.127]

 

-------------------------------netmask, wildcard, prefix-----------------------------------------------

1111 1111 . 1111 1111.    1111 1111.   111                   0 . 0000 [255.255.255.224]

0000 0000 . 0000 0000 . 0000 0000. 000                  1 . 1111 [0.0.0.31]

/27

200.1.1.0 255.255.255.224 [200.1.1.96 ~ 200.1.1.127]

200.1.1.0 0.0.0.31 [200.1.1.96 ~ 200.1.1.127]

200.1.1.0/27 [200.1.1.96 ~ 200.1.1.127]

 

----------------------------------------------------------------------------------------------------------------------

 

 

e부서             100            0 . 0000 [128]

                                         ~

                                        1 . 1111 [159]

 

-> 200.1.1.128 ~ 200.1.1.159

 

--------------------------------------------2진수 변환 -----------------------------------------------

 

1100 1000. 0000 00001. 0000 0001. 100                 0 . 0000 [200.1.1.128]

~

1100 1000. 0000 00001. 0000 0001. 100                  1 . 1111 [200.1.1.159]

 

-------------------------------netmask, wildcard, prefix-----------------------------------------------

1111 1111 . 1111 1111.    1111 1111.   111                   0 . 0000 [255.255.255.224]

0000 0000 . 0000 0000 . 0000 0000. 000                  1 . 1111 [0.0.0.31]

/27

200.1.1.0 255.255.255.224 [200.1.1.128 ~ 200.1.1.159]

200.1.1.0 0.0.0.31 [200.1.1.128 ~ 200.1.1.159]

200.1.1.0/27 [200.1.1.128 ~ 200.1.1.159]

 

----------------------------------------------------------------------------------------------------------------------

 

 

f부서              101          0 . 0000 [160]

                                         ~

                                       1 . 1111 [191]

 

-> 200.1.1.160 ~ 200.1.1.191

 

--------------------------------------------2진수 변환 -----------------------------------------------

 

1100 1000. 0000 00001. 0000 0001. 101                 0 . 0000 [200.1.1.160]

~

1100 1000. 0000 00001. 0000 0001. 10                 1 . 1111 [200.1.1.191]

 

-------------------------------netmask, wildcard, prefix-----------------------------------------------

1111 1111 . 1111 1111.    1111 1111.   111                   0 . 0000 [255.255.255.224]

0000 0000 . 0000 0000 . 0000 0000. 000                  1 . 1111 [0.0.0.31]

/27

200.1.1.0 255.255.255.224 [200.1.1.160 ~ 200.1.1.191]

200.1.1.0 0.0.0.31 [200.1.1.160 ~ 200.1.1.191]

200.1.1.0/27 [200.1.1.160 ~ 200.1.1.191]

 

----------------------------------------------------------------------------------------------------------------------

 

 

g부서             110          0 . 0000 [192]

                                         ~

                                      1 . 1111 [223]

 

-> 200.1.1.192 ~ 200.1.1.223

 

--------------------------------------------2진수 변환 -----------------------------------------------

 

1100 1000. 0000 00001. 0000 0001. 110                0 . 0000 [200.1.1.192]

~

1100 1000. 0000 00001. 0000 0001. 110                1 . 1111 [200.1.1.223]

 

-------------------------------netmask, wildcard, prefix-----------------------------------------------

1111 1111 . 1111 1111.    1111 1111.   111                   0 . 0000 [255.255.255.224]

0000 0000 . 0000 0000 . 0000 0000. 000                  1 . 1111 [0.0.0.31]

/27

200.1.1.0 255.255.255.224 [200.1.1.192 ~ 200.1.1.223]

200.1.1.0 0.0.0.31 [200.1.1.192 ~ 200.1.1.223]

200.1.1.0/27 [200.1.1.192 ~ 200.1.1.223]

 

----------------------------------------------------------------------------------------------------------------------

 

h부서             111          0 . 0000 [224]

                                         ~

                                      1 . 1111 [255]

 

-> 200.1.1.224 ~ 200.1.1.255

 

 

--------------------------------------------2진수 변환 -----------------------------------------------

 

1100 1000. 0000 00001. 0000 0001. 111                0 . 0000 [200.1.1.224]

~

1100 1000. 0000 00001. 0000 0001. 111                1 . 1111 [200.1.1.223]

 

-------------------------------netmask, wildcard, prefix-----------------------------------------------

1111 1111 . 1111 1111.    1111 1111.   111                   0 . 0000 [255.255.255.224]

0000 0000 . 0000 0000 . 0000 0000. 000                  1 . 1111 [0.0.0.31]

/27

200.1.1.0 255.255.255.224 [200.1.1.224 ~ 200.1.1.255]

200.1.1.0 0.0.0.31 [200.1.1.224 ~ 200.1.1.255]

200.1.1.0/27 [200.1.1.224 ~ 200.1.1.255]

 

----------------------------------------------------------------------------------------------------------------------

 

-> 공부하기 위한 목적으로 subnet을 8개로 맞춘 것, 상황에 따라서 다양하게 나눠질 수 있다. 다만 만약 10개의 subnet이 필요할 경우에는 그 이상의 subnet으로 나누는 것이 안전하다. 부족한 것은 안된다!

 

※ subnet 종류

 

- 균등 subnet : 새로 생성된 subnet의 host수가 모두 동일하다. 

 

- 비균등 subnet : 새로 생성된 subnet의 host수가 다르다 = VLSM (variable length subnet mask)

 

 

※VLSM (variable length subnet mask) 예시 

 

[201.102.1.0 /24 ] -> 각 부서별로 subnetting 한다. 

 

영업부 -> host 수 120개 필요 = 2^7 -> host-bit 7bit / subnet-bit 1bit 

인사부 -> host 수 60개 필요 = 2^6 -> host-bit  6bit

관리부 -> host 수 20개 필요 = 2^5 -> host-bit 5bit 

홍보부 -> host 수 20개 필요 = 2^5 -> host-bit 5bit

 

201.102.1.x                xxx . xxxx / 24

                 0                000 0000

                                    ~

                                   111 11111         - 영업부 할당

-----------------------------------------------------------------------------

                 1                x             xx . xxxx            - 영업부 할당하고 남은 1의 경우의 수로 쪼갠다.

                                   0             00 0000

                                                   ~

                                                  11 1111    - 인사부 할당 

---------------------------------------------------------------------------------

                                  1              x               x . xxxx

                                                  0               0   0000

                                                                    ~

                                                                   1  1111 - 관리부 할당

---------------------------------------------------------------------------------

                                                  1               x . xxxx

                                                                   0   0000

                                                                    ~

                                                                   1  1111 - 홍보부 할당 

 

-> 이런 방식으로 subnet의 subnet을 나누고 나누고...가면서 각 호스트당 할당된 subnet 개수가 다 다른 것을  VLSM 방식이라고 한다.  

 

 

==============================================================================

 

※ supernetting : network - id를 줄이고 host-id를 늘린다. 

 

network-id                /               host-id  

<---> <------------------------------------->

 

-> 네트워크 규모가 커진다. supernetting한다. 네트워크가 합쳐졌다. 네트워크를 축약한다. 네트워크를 요약한다. summary한다.

 

->변하지 않는 host 부분을 제외한 network-id 부분에서 변하는 부분과 변하지 않는 부분을 나눈다. 

 

0000 0001. 0000 0001. 0000 0              000. 0000 0000 [1.1.0.0 /24]     . 

0000 0001. 0000 0001. 0000 0              001. 0000 0000 [1.1.1.0 /24]

0000 0001. 0000 0001. 0000 0              010. 0000 0000 [1.1.2.0 /24]

0000 0001. 0000 0001. 0000 0              011. 0000 0000 [1.1.3.0 /24]

0000 0001. 0000 0001. 0000 0              100. 0000 0000 [1.1.4.0 /24]

0000 0001. 0000 0001. 0000 0              101. 0000 0000 [1.1.5.0 /24]

0000 0001. 0000 0001. 0000 0              110. 0000 0000 [1.1.6.0 /24]

0000 0001. 0000 0001. 0000 0              111. 0000 0000 [1.1.7.0 /24]

 

--------------------------------------------------------------------------------------------

1111 1111 . 1111 1111 . 1111  1               000.0000 0000 [255.255.248.0]

0000 0000 . 0000 0000 . 0000 0            111. 1111 11111 [0.0.7.255]

/21

 

1.1.0.0 255.255.248.0 [1.1.0.0 ~ 1.1.7.0]    => supernetting

1.1.0.0 0.0.7.255         [1.1.0.0 ~ 1.1.7.0]

1.1.0.0/21                    [1.1.0.0 ~ 1.1.7.0]

 

※ supernetting 연습하기 

                                                                             (변함)

0000 0001. 0000 0001. 0000 0              000.         0000 0000 [1.1.0.0 /24]

0000 0001. 0000 0001. 0000 0              010.         0000 0000 [1.1.2.0 /24]

0000 0001. 0000 0001. 0000 0              100.         0000 0000 [1.1.4.0 /24]

0000 0001. 0000 0001. 0000 0              110.         0000 0000 [1.1.6.0 /24]

-------------------------------------------------------------------------------------------------

1111 1111 . 1111 1111 . 1111 1                001          0000 0000 [255.255.249.0]

0000 0000 . 0000 0000. 0000 0             110          1111  1111 [ 0.0.6.255]

/22

 

1.1.0.0 255.255.249.0 [1.1.0.0 , 1.1.2.0 , 1.1.4.0, 1.1.6.0]    => supernetting

1.1.0.0 0.0.7.255         [1.1.0.0 , 1.1.2.0 , 1.1.4.0, 1.1.6.0]

1.1.0.0/22                    [1.1.0.0 , 1.1.2.0 , 1.1.4.0, 1.1.6.0]

 

 

※ Classless IP 특정 주소들만 supernetting 하고자 할 때 

 

0000 0001. 0000 0001. 000                   0  0011.                      0000   0000  [1.1.3.0/24]

0000 0001. 0000 0001. 000                   0  0101.                      0000   0000  [1.1.5.0/24]

0000 0001. 0000 0001. 000                   0  0110.                      0000   0000  [1.1.6.0/24]

0000 0001. 0000 0001. 000                   0  0111.                      0000   0000  [1.1.7.0/24]

0000 0001. 0000 0001. 000                   0  1001.                      0000   0000  [1.1.9.0/24]

0000 0001. 0000 0001. 000                   0  1011.                      0000   0000  [1.1.11.0/24]

0000 0001. 0000 0001. 000                   0  1100.                      0000   0000  [1.1.12.0/24]

0000 0001. 0000 0001. 000                   0  1101.                      0000   0000  [1.1.13.0/24]

0000 0001. 0000 0001. 000                   1  0000.                      0000   0000  [1.1.16.0/24]

0000 0001. 0000 0001. 000                   1  0011.                      0000   0000  [1.1.19.0/24]

0000 0001. 0000 0001. 000                   1  0100.                      0000   0000  [1.1.20.0/24]

0000 0001. 0000 0001. 000                   1  0110.                      0000   0000  [1.1.22.0/24]

0000 0001. 0000 0001. 000                   1  1000.                      0000   0000  [1.1.24.0/24]

0000 0001. 0000 0001. 000                   1  1001.                      0000   0000  [1.1.25.0/24]

0000 0001. 0000 0001. 000                   1  1011.                      0000   0000  [1.1.27.0/24]

 

----------------------------------------------------------------------------------------------------------------------

1111 1111. 1111 1111. 111                      0  0000.                      0000   0000  [255.255.224.0] -> netmask

 

-> ip가 중간 중간에 빠져 있을 경우에는 시작하는 ip부터 끝나는 ip 까지만 supernetting 하는 것이 아니다.

 

-> 1.1.0.0 255.255.224.0 [1.1.0.0 ~ 1.1.31.0] -> [ 위의 바뀌는 부분인 0의 자리 수 (0~31) = 2^5만큼 supernetting 한다. ]

'Network > 이론' 카테고리의 다른 글

네트워크 이론 - 5  (0) 2022.09.06
네트워크 이론 - 4  (0) 2022.09.05
네트워크 이론 - 3  (0) 2022.09.04
네트워크 이론 -2  (0) 2022.09.02
네트워크 이론 - 1  (0) 2022.09.02