Lewis's Tech Keep

[subnet] subnetting을 통한 망 분리 본문

네트워킹

[subnet] subnetting을 통한 망 분리

Lewis Seo 2021. 11. 26. 13:16
IPv4에서 비트에 대한 이해

IPv4 를 기준으로 비트는

[0000 0000].[0000 0000].[0000 0000].[0000 0000]

이런 식으로 주소가 전개된다.

 

우리가 ipconfig로 볼때 주소들이

(0~255).(0~255).(0~255).(0~255)

안에서 노는 것은 8비트 2진수 연산자의 최대값이 255이기 때문이다.


subnet mask

subnet mask는 네트워크를 구분하기 위해 쓰는 숫자이다.

기본적으로 비트 and 연산을 통해 네트워크가 같은 분류인지 구분한다.

and 연산하여 같은 네트워크 파티션(부분들)으로 나누는 과정이 subnetting이다.

and 연산이란?

1111 1110 - 기준 숫자

0101 1100 - subnet mask

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

0101 1100 - 결과 (각 자리수에 대하여 and 연산)

 

이를 보면 subnet mask의 비트가 1로 표시한 곳

기준 숫자의 1이 동시에 만족하는 값1로 변하는 것을 알수 있는데,

이와 같은 특성을 이용해서 subnetting을 시켜준다.

 

how?

ex)

1100 - 기준 숫자 (12)

0100 - subnet mask (4)

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

0100 - 결과 (4)

 

---

 

1101 - 기준 숫자 (13)

0100 - subnet mask (4)

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

0100 - 결과 (4)

 

---

 

1111 - 기준 숫자 (15)

0100 - subnet mask (4)

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

0100 - 결과 (4)

 

이런 식으로 1100 ~ 1111 까지

subnet mask가 0100 이라는 값을 가지고 있다면

해당 값은 같은 결과 값으로 나오는데 

같은 결과 값이라면 분류(라우팅)가 가능하게 된다.

 

이런 식으로 분류하는 것을 서브네팅이라고 나는 이해하고 있다.


클래스 방식

255.0.0.0 를 설정한다면 a클래스,

255.255.0.0 를 설정한다면 b클래스,

255.255.255.0를 설정하면 c클래스로 구분 된다.

 

c클래스를 보면

255.255.255.0 ~ 255.255.255.255 까지 subnet mask가 가능해지고 

2^8승(256개) 개수 만큼의 최대 네트워크 분류가 가능하다고 볼 수 있다.

 

b클래스를 보면

255.255.0.0 ~ 255.255.255.255 까지 subnet mask가 가능해지고 

2^8 * 2^8승(256*256개) 개수 만큼의 네트워크 분류가 가능해진다.

 

네트워크를 2개로 분류 해 보자(feat. c클래스)

 

ex)

255.255.255.128 = [1111 1111].[1111 1111].[1111 1111].[1000 0000]

이렇게 128로 and 연산을 하게 된다면

 

0~127
[0000 0000 ~ 0111 1111] (2진수로 바꾼 값)
[1000 0000] (subnet mask 128를 2진수로 바꾼 값)
결과 값 0
128~255
[1000 0000 ~ 1111 1111]
[1000 000]
결과 값 1

 

이렇게 나오게 되어 2개로 분류할 수 있게 된다.

 

네트워크를 4개로 분류 해 보자(feat. c클래스)

 

ex)

255.255.255.192 = [1111 1111].[1111 1111].[1111 1111].[1100 0000]

이렇게 192로 and 연산을 하게 된다면 

 

0~63
[0000 0000 ~ 0011 1111] (2진수로 바꾼 값)
[1100 0000] (subnet mask 192를 2진수로 바꾼 값)
결과 값 0
64~127
[0100 0000 ~ 0111 1111] 
[1100 0000] 
결과 값 1
128~191
[1000 0000 ~ 1011 1111]
[1100 0000]
결과 값 10
192~255
[1100 0000 ~ 1111 1111]
[1100 0000]
결과 값 11

이렇게 나오기 때문에 4개로 분류할 수 있게 된다.

 


CIDR란
Classless Inter-Domain Routing (CIDR /ˈsaɪdər, ˈsɪ-/) is a method for allocating IP addresses and for IP routing. The Internet Engineering Task Force introduced CIDR in 1993 to replace the previous classful network
 addressing architecture on the Internet.

클래스 없는 도메인 간 라우팅(CIDR /ˈsaddrr, ss--/)은 IP 주소를 할당하고 IP 라우팅을 위한 방법입니다. 인터넷 엔지니어링 태스크 포스는 1993년에 CIDR을 도입하여 인터넷의 이전 클래스 네트워크 주소 지정 아키텍처를 대체하였다.

a,b,c 클래스로 나누던 방식을 대체하기 위한 분류 방법이다.

 

나는 이를 해당 분류를 위한 비트 개수를 표시하는 것으로 이해하고 있다.

표시는 ipv4 뒤에 /숫자 로 표시한다.

 

아마도 내가 CIDR를 이해하고 있는 것은 뇌피셜이 많기 때문에 양해를 먼저 구한다.

 

a,b,c 클래스의 이슈가 되는 부분은 단위가 255(8비트 단위) 였다.

이는 기존의 ip가 많이 없을 때는 괜찮았지만

ipv4의 주소가 부족하게 되어 이를 좀 더 세세하게 분류(비트 개수 = 1비트 단위)하여
ip숫자가 부족해지는 속도를 늦추기 위함이었다.

 

how?

ex)

xxx(8비트).xxx(8비트).xxx(8비트).xxx(8비트) /24

32개 중 24라면 앞의 24개를 기존 주소로 사용,

남은 8개를 분류를 위한 비트로 사용하겠다는 뜻이다

 

=> 이는 255.255.255.0(0000 0000) 의 주소를 가지고 시작하고
최대로 잘게 쪼겐다면 (0000 0000 ~ 1111 1111) 까지 분류되게 된다는 뜻이다.

 

xxx(8비트).xxx(8비트).xxx(8비트).xxx(2비트 + 6비트) /26

26이라면 26비트를 기존 주소로 사용,

남은 6개가 분류를 위한 비트로 사용하겠다는 뜻이다.

=> 이는 255.255.255.192(1100 0000) 의 주소를 가지고 시작하고
최대로 잘게 쪼겐다면 (1100 0000 ~ 1111 1111) 까지 분류되게 된다는 뜻이다.

 

모두 쓸 수 있는 것은 아님!

그리고 서브네팅이 되어서 32개(00000 ~ 11111) or 64개(000000 ~ 111111)를 모두 쓸 수 있는 것은 아니다.

일단 위의 32개 64개라면

대표 주소 (00000, 000000) , broad cast 주소(11111, 111111)는 쓸 수 없어(host ip와는 다른 용도로 쓰인다.)

2개를 빼줘야 한다.


 

참고 링크

 

https://private-space.tistory.com/125

https://www.youtube.com/watch?v=o-NRjtQsJx4 

https://velog.io/@dnstlr2933/%EC%84%9C%EB%B8%8C%EB%84%B7%EA%B3%BC-Broadcast-%EC%A3%BC%EC%86%8C

 

'네트워킹' 카테고리의 다른 글

multipart / form-data 에 관해  (0) 2022.01.02
Comments