클래스풀(Classful IP Addressing)
- 네트워크를 구분하는 방법.
- 네트워크 크기를 다르게 구분하여 클래스를 할당하는 주소 체계
- IP 주소를 A, B, C, D, E 다섯 가지 클래스로 구분한다.
- 각 클래스는 네트워크와 호스트를 구분하는 방식이 다르며, 네트워크 크기와 사용 용도에 따라 다르게 사용된다.
클래스 A:
범위: 0.0.0.0 ~ 127.255.255.255
네트워크 부분: 첫 번째 옥텟 (8비트)
호스트 부분: 나머지 세 개의 옥텟 (24비트)
특징: 큰 네트워크에 사용(ex. 대형 기업, 정부 기관), 최대 약 1,670만 개의 호스트 지원
시작 비트: 0 (첫 번째 비트가 0)
클래스 B:
범위: 128.0.0.0 ~ 191.255.255.255
네트워크 부분: 첫 두 개의 옥텟 (16비트)
호스트 부분: 나머지 두 개의 옥텟 (16비트)
특징: 중간 크기 네트워크에 사용(ex.대학 캠퍼스 네크워크), 최대 약 65,000개의 호스트 지원
시작 비트: 10 (첫 두 비트가 10)
클래스 C:
범위: 192.0.0.0 ~ 223.255.255.255
네트워크 부분: 첫 세 개의 옥텟 (24비트)
호스트 부분: 마지막 옥텟 (8비트)
특징: 작은 네트워크에 사용(ex.소규모 기업의 로컬 네트워크), 최대 254개의 호스트 지원
시작 비트: 110 (첫 세 비트가 110)
클래스 D:
범위: 224.0.0.0 ~ 239.255.255.255
특징: 멀티캐스트 주소, ex. 스트리밍 방송, 비디오 컨퍼런스
시작 비트: 1110 (첫 네 비트가 1110)
클래스 E:
범위: 240.0.0.0 ~ 255.255.255.255
특징: 연구 및 개발 목적, ex.IP 주소 할당 연구
시작 비트: 1111 (첫 네 비트가 1111)
클래스풀 단점
- 네트워크 크기에 따라 유연성이 부족하고, IP 주소 공간의 낭비가 발생할 수 있다. 예를 들어, 클래스 A 네트워크는 너무 많은 호스트 주소를 제공하여 작은 네트워크에는 비효율적이다.
- 너무 작은 네트워크가 필요한 경우 잉여 IP가 발생할 수 있다.
- 이를 해결하기 위해 클래스리스 인터 도메인 라우팅(Classless Inter-Domain Routing, CIDR)이 도입되었다. CIDR은 고정된 클래스 경계를 없애고, 서브넷 마스크를 사용해서 네트워크와 호스트 부분을 유연하게 구분할 수 있도록 하여 주소 공간을 보다 효율적으로 사용할 수 있게 한다.
루프백(loopback) 주소
네트워크 인터페이스를 통해 자신에게 직접 패킷을 보내기 위해 사용되는 IP주소. 이 주소는 테스트 및 디버깅 목적으로 주로 사용된다. 루프백 주소를 이용하면 네트워크 인터페이스를 실제로 거치지 않고도 네트워크 소프트웨어와 하드웨어를 테스트할 수 있다.
로컬 네트워크나 인터넷을 거치지 않고도 네트워크 기능을 테스트하고 디버깅할 수 있는 편리한 도구다.
- 클래스풀 구조에서 보면 루프백 주소는 클래스 A의 일부다.
- IPv4 루프백 주소:
- 주소: 127.0.0.1
- 네트워크 범위: 127.0.0.0 ~ 127.255.255.255 (전체 127.x.x.x 범위가 루프백 주소로 예약되어 있지만, 일반적으로 127.0.0.1이 사용됨)
- 용도: 자신의 컴퓨터에서 실행 중인 네트워크 서비스를 테스트할 때 사용
- 예시: 로컬 웹 서버 테스트 (localhost)
- IPv6 루프백 주소:
- 주소: ::1
- 네트워크 범위: IPv6에서 유일하게 할당된 루프백 주소
- 용도: IPv6 환경에서 자신의 컴퓨터에서 실행 중인 네트워크 서비스를 테스트할 때 사용
- 예시: 로컬 웹 서버 테스트 (IPv6 환경에서의 localhost)
루프백 주소 사용 예시
1. 네트워크 서비스 테스트:
- 애플리케이션 디버깅:
- 네트워크 애플리케이션 개발 시, 실제 네트워크에 영향을 주지 않고 애플리케이션을 테스트하고 디버깅할 수 있습니다.
- 네트워크 설정 및 문제 해결:
- 네트워크 설정을 확인하고 문제를 해결하는 데 도움이 됩니다. 예를 들어, ping 127.0.0.1 명령을 통해 컴퓨터의 네트워크 스택이 정상적으로 작동하는지 확인할 수 있습니다.
클래스리스
- 클래스풀의 문제를 보완하기 위해 나온 방식.
- 클래스로 나누는 것이 아니라 서브넷마스크를 중심으로 네트워크 주소와 호스트 주소를 분류함.
서브넷(Subnet)
IP 주소 공간을 더 작은 네트워크로 분할하는 기술. IP 주소 공간을 서브넷으로 분할하면 네트워크를 효율적으로 관리하고, 더 많은 호스트를 지원하거나 보안을 강화할 수 있다.
서브넷마스크
말 그대로 서브, 메인이 아닌, 어떤 가공을 통한 네트워크를 만들기 위해 씌우는 마스크이다. 주어진 IP 주소를 네트워크 환경에 맞게 나누어 주기 위해 씌워주는 이진수의 조합이다. 서브넷을 만들 때 사용되는 것이다.
IP주소에는 반드시 서브넷 마스크가 있는데, 이 서브넷 마스크를 이용하여 IP 주소에서 network ID와 host ID를 분리할 수 있다.
네트워크 주소 부분만 1(클래스별로 다름), 호스트 주소 부분은 0으로 나타낸 값
계산법 : IP주소(2진수)와 서브넷 마스크를 AND 연산하여 서브넷 네트워크를 추출하여 네트워크 분류.
서브네팅
네트워크 성능 보장, 자원을 효율적으로 분배하기 위해 네트워크 영역과 호스트 영역을 쪼개는 작업. IP 주소의 낭비를 방지하고 브로드캐스트 도메인 크기를 줄여서 성능을 향상하는 것이 주 목적이다.
공인 IP와 사설 IP
- 공인 IP : 외부에 공개되어 있는 IP주소. 고유한 식별자로, 인터넷 상에서 전 세계적으로 유일하다. 인터넷 제공업체로부터 부여받는다. 각 기기가 직접 인터넷에 접속 가능하다. 이걸로 인터넷에 연결된 다른 PC로부터의 접근이 가능하다. 일반적으로 IP라고 불리는 것이다. 네이버에 'ip 주소 확인' 검색하면 나온다.
- 사설 IP : 가짜 주소. 공유기나 라우터를 통해 로컬 네트워크 내의 각 기기에 할당되는 주소다. 외부에서 내부로 접근할 수 없다는 특징을 가진다. 공유기는 연결되는 모든 기기에 사설 IP를 구축한다. 공인 IP 주소로부터 할당되며, 외부 인터넷과 통신하기 위해 공유기를 통해 공인 IP 주소로 변환된다.
NAT(Network Address Translation)
- 사설 IP를 공인 IP로 변경하는 데에 필요한 주소 변환 서비스다. 라우터를 사용하여 다수의 사설 IP를 하나의 공인 IP 주소로 변환하는 기술.
- 다수의 주소 변환 정보에 대해 IP 주소와 Port 번호로 구성된 NAT Forwarding Table을 보관하고 있고, 이에 맞게 주소 변환 서비스를 제공한다.
- 공인 IP주소를 절약하기 위해 사용한다: 인터넷상의 공인 IP주소는 한정되어 있다. 학교, 단체 등에 보급된 PC가 각각의 고유한 공인 IP를 모두 보유해야 한다면 IPv4상에서 인터넷 주소는 이미 고갈이 되었을 것이다. IPv4체계의 인터넷 주소는 32비트 길이를 사용하는데 이건 약 42억 개의 IP 주소를 표현 할 수 있다. IPv6가 보급되면 인터넷 주소 고갈 문제는 지금보다 나아질 것이다. IP 주소 부족 문제를 공인 IP와 사설 IP로 분류 후 NAT라는 기술로 IP주소를 변경, 매핑함으로써 해결한다.
- 보안의 목적으로 사용한다: 공개된 인터넷망은 외부에서 내부로의 해킹이나 침입의 위험이 있다. 따라서 내부망과 공개망 사이에 방화벽을 운영하여 외부 공격으로부터 내부 인터넷망을 지킨다. 내부에서 사설 IP를 사용하는 것은 외부에서 개인 PC나 인터넷 장비로 직접적인 접근을 하지 못하는 이유도 포함한다. NAT 장비는 방화벽 형태일 수도, 라우터일 수도 있다.
- 동작 원리 : IP masquerading.
참고
https://jjaewonn.tistory.com/85
http://www.tcpipguide.com/free/t_IPClassfulAddressingNetworkandHostIdentificationan-3.htm
https://jjaewonn.tistory.com/85
https://mondaymonday2.tistory.com/133#google_vignette
https://mondaymonday2.tistory.com/128
https://brunch.co.kr/@sangjinkang/61
https://louis-j.tistory.com/entry/Subnet-mask-%EC%84%9C%EB%B8%8C%EB%84%B7-%EC%84%9C%EB%B8%8C%EB%84%B7%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C