https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-a-subnet/

 

  1. 서론
    • 서브넷이 등장하기 이전,. 초기의 네트워크는 모든 장치가 하나의 네트워크로 이루어져 있었습니다 네트워크가 커질수록 네트워크 관리하기가 까다로워졌습니다. 이를 해결하기 위해 서브넷이란 개념이 등장하였고, 서브넷을 활용해 네트워크를 논리적으로 분할하여 효과적으로 관리할 수 있게 되었습니다. 
    • 이 글에서는 서브넷의 개념과 서브넷을 어떻게 활용하는지에 다루고자 합니다. 
  2. 들어가기 앞서
    • 서브넷의 개념에 대해 알고 싶다면, IP 주소에 대해 알아야 합니다.
    • IP 주소(IP Address)란?
      • IP(Internet Protocol)은 네트워크에서 장치들이 서로 통신을 할 수 있게 하는 프로토콜입니다.
      • 각 장치는 고유한 IP 주소를 할당받아, IP주소를 통해 호스트를 구분하여 데이터를 주고받습니다. 네트워크 주소와 호스트 주소로 구성되어 있으며, 일반적으로 32비트로 구성된 IPv4와 128비트로 구성된 IPv6 두 가지 버전을 가지고 있습니다.
      • IP 주소는 A, B, C, D, E 클래스로 나누며, 이에 따라 네트워크 ID와 호스트 ID를 구분합니다.
      • A클래스는 8비트의 네트워크 ID와 24비트의 호스트 ID로 구별되며, 첫 옥텟은 0~127(2^7 - 1), 호스트 ID는 2^24 - 2 만큼 가질 수 있습니다. 
      • B클래스는 16비트의 네트워크 ID와 16비트의 호스트 ID로 구별되며, 첫 옥텟은 128~191(2^6 - 1), 호스트 ID는 2^16 - 2 만큼 가질 수 있습니다. 
      • C클래스는 24비트의 네트워크 ID와 8비트의 호스트 ID로 구별되며, 첫 옥텟은 192~223(2^5 - 1), 호스트 ID는 2^8 - 2 만큼 갖을 수 있습니다. 
      • 예시로 192.168.1.1의 IPv4 주소를 기준으로 설명할 때,  첫 옥텟이 192이므로 C클래스 이며, 네트워크 영역은 192.168.0.0이며 호스트 영역은 1입니다. 
  3. 서브넷 개념
    • 서브넷(Subnet)은 하나의 큰 네트워크를 여러 개의 작은 네트워크로 논리적 분할하는 기술입니다. 
    • 서브넷IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크로 표현할 수 있습니다. 네트워크를 나누기 위한 방법인 서브넷팅서브넷팅을 하기 위해 사용하는 서브넷 마스크이 있습니다.
    • IP 주소가 구성되는 방식을 통해 인터넷 라우터는 대상의 네트워크를 찾을 수 있습니다. 그러나 클래스 A 네트워크에는 수많은 연결된 장치가 있을 수 있으며 라우터가 대상의 장치를 찾는 데 시간이 걸릴 수 있습니다.
    • 서브넷은 IP 주소를 장치 범위 내에서 사용하도록 좁혀, 빠르고 간단하게 대상의 장치를 찾을 수 있습니다.
    • IP 주소는 네트워크 및 장치 주소를 나타내는 것으로 제한하므로 IP 주소를 사용하여 IP 패킷이 이동해야 하는 서브넷을 나타낼 수는 없습니다. 네트워크 내의 라우터는 서브넷 마스크라는 것을 사용하여 데이터를 하위 네트워크로 정렬합니다.
  4. 서브넷과 관련된 개념
    • 서브넷 마스크는 IP 주소에서 네트워크 ID와 호스트 ID를 분리하는 역할을 합니다.
    • CIDR(Classless Inter-Domain Routing)은 IP주소 할당 방법 중 하나로, IP 주소와 함께 서브넷 마스크를 사용하여 IP 주소 공간을 세밀하게 사용하기 위해 도입되었습니다. ex) 192.168.1.0/24
  5. 서브넷의 예시와 필요성   
    • 예시로, 당신이 ISP를 운영하고 있습니다. A라는 회사가 IP 주소 100여 개를 요청했습니다. 서브넷이 없다면 당신은 C 클래스의 IP 주소 하나를 A 회사에게 할당해야 합니다. ex) 192.168.1.x. 네트워크 주소와 브로드캐스트 주소를 제외한 192.168.1.1부터 192.168.1.255까지 100여 개만 필요한 A회사에게 모두 할당해야합니다. 
    • 이를 해결하기 위해서는 서브넷의 개념을 도입해야합니다. 위의 사례를 예시로 192.168.1.x에 100여 개 호스트를 할당하기 위해서는 서브넷 마스크를 지정해야 합니다.
    • 192는 C클래스임으로 24개의 네트워크 ID를 지정해야 하며, 100여 개의 호스트를 등록하고자 한다면 0 또는 1의 네트워크 ID를 추가할 수 있습니다. 만약 0부터 127번까지 A회사에 할당하고자 한다면 24개의 네트워크 ID를 구성해야 하며, 128부터 255까지 할당하고자 한다면 25개의 네트워크 ID를 구성해야 합니다. 이때 24 개의 네트워크 ID를 구성할 경우 0은 네트워크 주소, 127은 브로드캐스트 주소로 총 128 - 2개의 주소를 할당할 수 있습니다.
    • 서브넷을 이용해 각 클래스로 나눠진 네트워크를 서비스의 규모에 맞게 유연하게 분할하여 낭비되는 IP 주소를 최소화하며, 브로드 캐스팅에 사용되는 디바이스의 수를 최소화해 성능의 저하를 예방할 수 있습니다. 
  6. 서브넷 마스크의 원리와 설명  
    •  간단하게 설명하자면 서브넷팅은 서브넷 마스크의 bit 수를 증가시킵니다. 네트워크 ID의 비트 수를 추가할 때마다 네트워크 ID 수는 2배가 증가하고, 호스트 수는 2배 감소합니다.
    • 192.168.1.0/24을 기준으로 할당 가능한 호스트 ID의 수는 2^8 - 2 = 254개를 할당할 수 있습니다.
    • 192.168.1.0은 IPv4이며 C클래스임으로, 서브넷 마스크는 1111 1111. 1111 1111. 1111 1111. 0000 0000.으로 나타낼 수 있습니다. 네트워크 ID는 24개이며, 호스트 ID는 8개입니다. 호스트 ID의 8비트를 사용하여 192.168.1.1부터 192.168.1.254까지 호스트 ID를 할당할 수 있습니다.
    • 만약 192.168.1.0/25로 서브넷 마스크를 변경하게 된다면, 1111 1111. 1111 1111. 1111 1111. 1000 0000.으로 나타낼 수 있습니다. 네트워크 ID는 25개이며, 호스트 ID는 7개입니다. 호스트 ID의 7비트를 사용하여 192.168.1.129부터 192.168.1.254까지 호스트 ID를 할당할 수 있습니다. 
  7. 결론
    • 서브넷은 네트워크를 효율적으로 관리하고 확장 가능한 구조로 만드는 데 중요한 역할을 합니다. IP 주소를 효율적으로 할당하고 네트워크 트래픽을 관리할 수 있으며, 보안을 강화하고 네트워크 성능을 최적화하는 데 도움이 됩니다.. 서브넷을 사용하면 다양한 네트워크 환경에 대응할 수 있으며, 복잡한 네트워크 구조를 구축할 수 있습니다.
    • 서브넷은 네트워크 관리와 보안에 있어서 중요한 요소입니다. 적절한 서브넷 구성은 네트워크 성능을 향상하고 확장성을 높이는 데 도움 됩니다. 
  8. 참고 문헌
    1. https://aws.amazon.com/ko/what-is/cidr/ 
    2. https://ko.wikipedia.org/wiki/%EB%B6%80%EB%B6%84%EB%A7%9D 
    3. https://better-together.tistory.com/118 
    4. https://code-lab1.tistory.com/34
    5. https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-a-subnet/

+ Recent posts