※ 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 1111 . 1111 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. 010 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. 101 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 |