서브넷 마스크를 알기 위해서는 먼저 서브네팅 개념을 이해해야함.
서브네팅(Subnetting)
→ “네트워크 관리자가 네트워크 성능을 향상시키기 위해, 자원을 효율적으로 분배하는 것이다. 여기서 자원을 효율적으로 분배한다는 것은 네트워크 영역과 호스트 영역을 분할 하는 것이라고 생각하면 된다.”
- 네트워크 측면
- 너무 큰 브로드캐스트 도메인은 네트워크 환경에서 패킷 전송을 느리게 하고 성능저하를 발생시킨다. → 네트워크를 쪼개서 통신 성능을 보장하는 것.
- IP는 32자리 2진수로 표현할 수 있는데 최대 2의 32승만큼의 표현만 가능하다는 뜻 → 자원의 한계가 존재하며 결국 제한적인 자원으로 인해 주소에 낭비 없이 아껴써야함.
- 그래서 등장하는 것이 서브넷마스크
- 서브넷 마스크는 필요한 네트워크 주소만 호스트 IP로 할당 할 수 있게 만들어 네트워크 낭비를 방지한다 → 전문 용어로 서브네팅이라고 하며 그 반대는 슈퍼네팅
💡 브로드캐스트란? 클라이언트에서 서버 컴퓨터로 갈 때 서버 컴퓨터 전체를 가리키고 있는 곳인 IP프로토콜을 이용해서 네트워크로 간 후 그 지점에서 해당되는 LAN 카드로 이동하는 것이 브로드캐스트이라고 한다.
IP통신
→ 하나의 IP == 네트워크 부분 + 호스트 부분
- 하나의 네트워크 즉 하나의 브로드캐스트 도메인에 있는 IP끼리 통신하기 위해선 네트워크 영역 같아야하며, 호스트 IP는 달라야함.
- 호스트 IP가 다르지 않다면 IP 충돌
- 네트워크 영역이 달라도 통신 가능 → 라우터나 게이트웨이 같은 통신장비를 통해 통신할 수 있음.
- 다만 라우터와 네트워크장비 없이 통신할 수 있는 영역을 우리는 브로드캐스트 도메인이라고 하고 하나의 네트워크 영역에는 당연히 네트워크 영역은 같고, 호스트 IP는 자신의 노드를 식별할 수 있도록 다른 호스트 IP와 달라야한다.
ex)
192.168.0.3 과 192.168.0.4
- 192.168.0 은 네트워크 영역이고 3과 4는 호스트 IP입니다.
- 이를 해석하면 192.168.0 이라는 네트워크 영역에서 서로 통신할 수 있는 3과 4가 존재함.
정리
서브네팅 : 네트워크 성능 보장, 자원을 효율적으로 분배하기 위해 네트워크 영역과 호스트 영역을 쪼개는 작업
IP 특징 : IP는 사실 32자리로 이루어진 2진수, IP는 네트워크 영역과 호스트 IP로 구성됨, 동일한 네트워크 내에서 호스트 IP는 각자 달라야 함.
서브넷마스크(Subnet Mask)
서브네팅을 하기 위해선 서브넷마스크라는 녀석이 필요함.
- 에를 들어 설명 → 성형외과에서 코수술을 한다고 했을때, 환자얼굴위에 수술 마스크를 덮습니다. 해당 마스크는 코만 보이고 눈,입,볼 등 코를 제외한 부분은 전부 가려줍니다. 의사가 코에만 집중할 수 있게 함. 이와 비슷한 개념.
- 어느 한 네트워크에서 1~100까지 IP를 할당받을 수 있고 우리가 필요한 IP가 20개정도라고 가정할 때, 굳이 1~100까지 IP를 줄 필요가 없다. 최소 1~20까지만 IP를 주면 됨. 그럼 나머지 21~100은 사용자가 신경쓰지 않게 끔, 서브넷마스크로 가려버린다 라고 생각하면 조금 이해하기 쉽다.
서브넷마스크 표시 방법
→ 서브넷 마스크는 1과 0으로 이뤄져있다.
- 1이 연속으로 나와야함.
- 11101 x, 11001 x, 무조건 1111000 이런식으로 1을 표현하기 위해선 1이연속으로 나와야함.
ex) 192.168.0.1/24
본 디폴트 마스크는 255.255.255.0 입니다. 디폴트 마스크도 서브넷마스크. 255.255.255.0 은 우리가 알기 쉽게 10진수로 표현했을 뿐 2진수로 바꾸면 → 11111111.11111111.11111111.00000000
- 여기서 연속으로 1이 24개 있다는 뜻 /24 라는 표현이 1이 24개 있다는 뜻!!
- 1은 네트워크 영역으로 사용하겠다는 뜻, 0은 호스트 IP로 사용하겠다는 뜻 → 사용자에게 0이 표현된 부분만 호스트 IP를 할당할 수 있게 만들겠다라는 뜻.
기본 서브넷마스크, 서브넷 네트워크 ,논리 AND 계산
기본 서브넷마스크와 서브넷 네트워크에 대해 잠깐 알아야 함.
💡 210.100.100.1 → IP주소 C클래스 사용 == 서브넷마스크를 사용한다.
C클래스를 그대로 사용한다는 것은 C클래스 네트워크를 쪼개지 않고 그대로 하나의 네트워크에 할당할 수 있는 2^8-2개의 호스트 IP를 사용하겠다는 뜻이고 255.255.255.0이 기본 서브넷 마스크가 된다. 192.0.0 ~ 223.255.255 까지의 네트워크가 곧 서브넷 네트워크가 된다.
별개의 서브넷마스크를 생성하지 않아도 기본적으로 적용되어 있는게 기본 서브넷마스크이고, 기본서브넷마스크로 쪼개진 네트워크 주소를 서브넷 네트워크 라고 합니다.
따라서
- IP 210.100.100.1
- 기본서브넷마스크 : 255.255.255.0
- 서브넷네트워크 : 210.100.100.0
- B클래스의 기본서브넷마스크는 그럼 255.255.0.0
- A클래스는 255.0.0.0
클래스마다의 기본서브넷마스크 구하는 방법
2진수로 표현
11010010. 01100100. 01100100. 00000001 == 210.100.100.1 (IP주소)
11111111. 11111111. 11111111. 00000000 == 255.255.255.0 (C클래스 기본서브넷마스크)
11010010. 01100100. 01100100. 00000000 == 210.100.100.0 (서브넷네트워크)
💡 IP주소와 서브넷마스크를 논리 AND 연산하면 서브넷 네트워크를 구할 수 있다.
150.150.100.1 에 대해서 알아보자
10010110. 10010110. 01100100. 00000001 == 150.150.100.1 (IP주소)
11111111. 11111111. 11111111. 00000000 == 255.255.255.0 (C클래스 기본서브넷마스크)
10010110. 10010110. 01100100. 00000000 == 150.150.100.0 (서브넷네트워크)
- 어 뭔가 이상하다? → 150.150.100.1 은 분명 B클래스인데, 서브넷 마스크가 C클래스이다. 150.150.100.1의 기본서브넷마스크인 255.255.0.0을 사용하지 않고 C클래스 255.255.255.0 을 사용한다는 것은 B클래스 주소를 마치 C클래스 주소처럼 사용하겠다는 뜻.
- B클래스에 의해서 150.150 까지가 네트워크 영역이고 나머지 3,4번째 옥태드가 호스트 영역인데, C클래스 기본 서브넷마스크인 255.255.255.0을 씌우면서 150.150.100까지 네트워크영역이 되고 4번째 옥태드만 호스트 IP를 배정할 수 있게 만든 것.
- 네트워크 영역을 늘리고 호스트 영역을 줄이겠다는 뜻을 내포하고 있다는 것을 여러분은 눈치채야함. 이렇게 하나의 주소에 서브넷 마스크를 씌워서 자신에게 맞는 네트워크를 만드는 것을 서브네팅이라고 함.
마지막 정리
서브넷마스크는 하나의 IP에서 사용자의 입맛에 맞게 네트워크 영역과 호스트 영역을 나눠주는 녀석이다.
- 기본서브넷네트워크도 물론 네트워크 영역과 호스트 영역을 나눠주기 때문에 서브넷마스크라고도 합니다. 하지만 진정한 의미에 서브넷마스크는 A클래스, B클래스, C클래스의 기본 서브넷마스크에서 가질 수 있는 네트워크영역과 호스트영역을 더 쪼개서 더 효율적으로 서브네팅하는 것입니다.
- 그렇기 때문에 위에 처럼 C클래스(3옥테드까지만 네트워크로 사용함) 이상으로 4옥테드 영역에 5자리 2진수를 네트워크 영역으로 확대하고! 호스트 영역을 3자리 2진수를 할당함으로써 기본서브넷마스크로 커버할 수 없었던 서브네팅을 구현 가능.
쉽게 정리해서 예전에 클래스도 네트워크 주소를 관리하다가 너무 부족해서 서브넷 마스크로 호스트를 늘리거나 네트워크의 주소를 늘려서 더욱 유연하게 사용할 수 있는 것임 ㅎ
IP 클래스(Class)와 서브넷마스크(Subnet Mask)
https://limkydev.tistory.com/166