본문 바로가기

카테고리 없음

클래스풀(Classful)과 클래스리스(Classless)

Today Keys : IPv4, IP주소, IP Address, 클래스풀, 클래스리스, class, classful, 서브넷 마스크, CIDR

본 포스팅은 'IT 엔지니어를 위한 네트워크 입문' [길벗] 서적에 포함된 '3. 네트워크 통신하기'의 내용  3.3.2장의 내용입니다.


클래스풀과 클래스리스

 IP 주소 체계에서 설명한 클래스(Class) 기반의 IP 주소 체계를 클래스풀(Classful)이라고 부릅니다. IP 주소 체계를 처음 만들었을 때는 클래스 개념을 도입한 것이 확장성이 있고 주소 낭 비가 적은 최적의 조건을 만들 수 있었던 좋은 선택이었습니다. 이 주소 체계에서는 네트워크 주 소와 호스트 주소를 구분짓는 구분자(서브넷 마스크)가 필요없습니다. 맨 앞자리 숫자만 보면 자연스럽게 이 주소가 어느 클래스에 속해 있는지 구분할 수 있고 주소 구분자를 적용할 수 있었습니다

 

클래스리스 네트워크의 등장

 인터넷이 상용화되면서 인터넷에 연결되는 호스트 숫자가 폭발적으로 증가했습니다. 기존 클래스 풀 기반의 주소 체계는 확장성과 효율성을 모두 잡는 좋은 주소 체계였지만 기하급수적으로 늘어 나는 IP 주소 요구를 감당하기에는 너무 부족했습니다. 이론적으로 사용할 수 있는 IP 개수는 43 억여 개이지만 실제로 사용할 수 있는 IP 숫자는 이보다 훨씬 적습니다. 현재 전 세계 인구가 하 나의 IP만 갖더라도 IP 할당이 불가능한 크기이고 이 외에도 네트워크 주소를 계층화하고 분할하 기 위해 낭비되는 IP가 매우 많았습니다.

 하나의 네트워크에서 IP가 사용되지 않더라도 그 IP를 다른 네트워크에서 사용하지 못했습니다. IP 주소 부족과 낭비 문제를 해결하기 위해 3가지 보존, 전환전략을 만들어냈는데 그 중

 첫 번째 단기 대책은 클래스리스, CIDR(Classless Inter-Domain Routing) 기반의 주소 체계였습니다.

 두 번째 중기 대책은 NAT와 사설 IP 주소,

 세 번째 장기 대책 은 차세대 IP인 IPv6입니다.

 IPv4의 가장 큰 문제는 주소 자체의 부족도 있지만 상위 클래스(A Class)를 할당받은 조직에서 이 주소들을 제대로 사용하지 못하면서 낭비하는 것이었습니다. 인터넷 초창기에 여러 회사에서 미래를 위해 IP를 많이 확보할 수 있는 A 클래스를 할당받았지만 실제로는 수천, 수만 개만 사용 하는 곳이 대부분이었고 나머지 수천만 개의 IP는 사용되지 못했습니다. 클래스풀에서는 한 개의 클래스 네트워크가 한 조직에 할당되면 아무리 비어 있는 주소라도 IP를 분할해 다른 기관이 사용 하도록 할 수 없습니다. 이 문제를 해결하기 위해 클래스 개념 자체를 버리는데 이를 클래스리스 라고 부릅니다. 현재 우리가 사용하는 주소 체계는 클래스 개념을 적용하지 않는 클래스리스 기반 주소 체계입니다.

 예전에는 전화번호의 국번만으로도 사업자나 지역을 확인할 수 있었지만 번호이동제도 이후 국번만으로는 지역이나 네트워크 공급자를 알기 어렵습니다. IP 체계도 번호이동 이전의 전화주소 체계처럼 앞 숫자를 보고 클래스를 확인한 후 어디까지가 네트워크 주소이고 어디까지가 호스트 주소인지 구분할 수 있었습니다. 클래스리스 네트워크에서는 별도로 네트워크와 호스트 주소를 나누는 구분자를 사용해야 하는데 이 구분자를 서브넷 마스크(Subnet Mask)라고 부릅니다

 

서브넷 마스크는 IP 주소와 네트워크 주소를 구분할 때 사용하는데 2진수 숫자 1은 네트워크 주소, 0은 호스트 주소로 표시합니다. 보통 우리가 편하게 받아들일 수 있는 10진수를 사용해 255.0.0.0 255.255.0.0 255.255.255.0와 같이 표현합니다. 2진수 11111111을 10진수로 표현하면 255가 되어 255는 네트워크 주소 부분, 0은 호스트 주소 부분으로 구분됩니다

 

2진수의 and 연산. IP 주소에서 네트워크 주소만 뽑아낼 때 사용한다.

 

 만약 103.9.32.146 주소에 255.255.255.0 서브넷 마스크를 사용하는 IP는 네트워크 주소가 103.9.32.0이고 호스트 주소는 0.0.0.146이 됩니다. 서브넷 마스크가 2진수 1인 부분(10진수 255인 부분)은 IP 숫자가 그대로 연산 결과가 되고 서브넷 마스크가 0인 부분은 모두 0으로 변경 됩니다.

 

네트워크 주소 구하기

 

 클래스리스 기반의 IP 네트워크에서는 네트워크를 표현하는 데 반드시 서브넷 마스크가 필요하고 서버나 PC에 IP 주소를 부여할 때도 사용되어야 합니다.

 

 

참고
 서브넷 마스크를 표현하는 방법은 비트 단위로 표현하는 방법과 10진수로 표현하는 방법을 사용합니다. 일부 네트워크 장비는 8진수나 16진수로 나타내지만 표현하거나 이해하기 어려워 대부분 사용하지 않습니다.

 비트 단위로 표현하는 방법은 서브넷 마스크에서 1 부분이 연속된 자릿수를 표현해주는 것입니 다. A 클래스를 서브넷 마스크로 나타내면 첫 번째 옥텟이 1, 나머지 옥텟이 0이므로 /8로 표현합 니다. B 클래스는 /16, C 클래스는 /24로 표기합니다.

 10진수로 서브넷 마스크를 표현할 때 A 클래스는 255.0.0.0, B 클래스는 255.255.0.0, C 클래 스는 255.255.255.0으로 씁니다