IP 주소의 구조와 클래스풀 주소 체계
주소 지정은 IP 주소로 이루어진다.
IP 주소의 구조: 크게 네트워크 주소와 호스트 주소로 구성된다.
네트워크 주소
호스트 주소
호스트를 표현하는 부분이다.
특정 호스트를 식별

IP 주소에서 네트워크 주소와 호스트 주소 크기는 각각 어느 정도가 적당할까?
네트워크 주소가 하나의 옥텟으로 이루어질 경우
한 네트워크당 호스트 주소 할당에 24비트를 사용할 수 있다.
세 개를 할당하면?
한 네트워크당 호스트 주소 할당에 8비트를 사용할 수 있다.
⇒ 이런 고민을 해결하기 위해 생겨난 개념 = IP 주소의 클래스이다.
→ 네트워크 크기에 따라 IP 주소를 분류하는 기준이다.
→ 클래스풀 주소 체계: 클래스를 기반으로 IP 주소를 관리하는 주소 체계이다.
→ 필요한 호스트 IP 개수에 따라 클래스를 달리 선택하여 네트워크 크기 조정 가능

B 클래스
네트워크 주소는 비트 ‘10’으로 시작하는 2옥텟, 호스트 주소도 2옥텟으로 구성된다.
이론상 2^14개의 B 클래스 네트워크가 존재 가능하다.
각 네트워크에 2^16개의 호스트 주소 할당이 가능하다.

C 클래스
네트워크 주소는 비트 ‘110’으로 시작하는 3옥텟, 호스트 주소는 1옥텟으로 구성된다.
이론상 2^21개의 C 클래스 네트워크가 존재 가능하다.
각 네트워크에 2^8개의 호스트 주소 할당이 가능하다.

⇒ 호스트의 주소 공간을 모두 사용할 수 있는 것은 아니다.
호스트 주소가 전부 0인 IP 주소
호스트 주소가 전부 1인 IP 주소


클래스리스 주소 체계와 서브네팅
클래스별 네트워크 크기가 고정되어 있어 여전히 낭비되는 IP 주소가 많을 수 있다.
클래스별 네트워크 크기가 고정되어 있어 사전에 정해진 크기 외의 다른 크기로 네트워크를 구성하는 것이 불가능하다.

클래스 없이 IP 주소의 네트워크 주소와 호스트 주소를 구분하는 수단이다.
IP 주소상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열이다.
| 클래스 | 2진수 표기(Binary) | 10진수 표기(Decimal) | CIDR(약식 표기) |
|---|---|---|---|
| A 클래스 | 11111111.00000000.00000000.00000000 | 255.0.0.0 | /8 |
| B 클래스 | 11111111.11111111.00000000.00000000 | 255.255.0.0 | /16 |
| C 클래스 | 11111111.11111111.11111111.00000000 | 255.255.255.0 | /24 |
: 하나의 큰 네트워크 주소 공간을 여러 개의 작은 네트워크로 잘게 쪼개는 기술을 말합니다.
서브네팅의 핵심은 호스트 부분(0으로 채워진 부분)의 비트를 네트워크 부분(1로 채워진 부분)으로 빌려오는 것입니다.
예를 들어, C 클래스 기본 마스크(/24)를 반으로 쪼개고 싶다면 어떻게 할까요?
기본: 11111111.11111111.11111111.00000000(/24)
1비트 빌림: 11111111.11111111.11111111.10000000(/25)
0인 그룹과 1인 그룹, 2개의 네트워크가 생깁니다.10진수로 직접 표기
CIDR 표기법
‘IP 주소/서브넷 마스크상 1의 개수’ 형식으로 표기
예) C 클래스의 기본 서브넷 마스크는 255.255.255.0
IP 주소 192.168.219.103 서브넷 마스크 255.255.255.0
192.168.219.103/24
공인 IP 주소와 사설 IP 주소
공인 IP 주소(Public IP Address)
사설 IP 주소(Private IP Address)
| 클래스 | 사설 IP 주소 범위 | CIDR 표기 | 비고 |
|---|---|---|---|
| A 클래스 | 10.0.0.0 ~ 10.255.255.255 | 10.0.0.0/8 | 대규모 기업, 대학교 등 |
| B 클래스 | 172.16.0.0 ~ 172.31.255.255 | 172.16.0.0/12 | 중규모 네트워크 |
| C 클래스 | 192.168.0.0 ~ 192.168.255.255 | 192.168.0.0/16 | 가정용 공유기, 소규모 사무실 |
& 그러면 사설 IP 주소를 사용하는 호스트는 외부 네트워크와 어떻게 통신하나?
IP 주소 변환 기술: 주로 사설 IP 주소와 공인 IP 주소를 변환
대부분의 라우터와 공유기에는 NAT 기능이 내장되어 있다.
사설 네트워크의 패킷 속 사설 IP 주소는 공유기를 거쳐 공인 IP 주소로 변경된다.
외부 네트워크 패킷 속 공인 IP 주소는 공유기를 거쳐 사설 IP 주소로 변경된다.

정적 IP 주소와 동적 IP 주소
게이트웨이의 일반적인 의미
기본 게이트웨이
호스트의 수가 많아질 경우 관리가 곤란하다.
이렇게 할당된 IP 주소를 동적 IP 주소라고 한다.
클라이언트와 DHCP 서버 간 메시지 송수신을 통해 할당이 이루어진다.
클라이언트: IP 주소를 할당받고자 하는 호스트
DHCP 서버: 호스트에게 IP 주소를 제공하는 호스트
DHCP를 통해 할당받은 동적 IP 주소는 사용할 기간(임대 기간)이 정해져 있다.
(1) DHCP Discover(클라이언트 → DHCP 서버)
(2) DHCP Offer(DHCP 서버 → 클라이언트)
(3) DHCP Request(클라이언트 → DHCP 서버)
(4) DHCP ACK(서버 → 클라이언트)
최종 승인과 같은 메시지
DHCP ACK 메시지를 받은 클라이언트는 이제 할당받은 IP 주소를 자신의 IP 주소로 설정한 후
임대 기간 동안 IP 주소 사용
임대 갱신
IP 주소 임대 기간이 끝나기 전에 임대 기간을 연장하는 것
임대 기간이 끝나기 전에 기본적으로 두 차례 자동으로 수행
자동 임대 갱신이 모두 실패하면 그때 IP 주소를 반납한다.
예약 주소
| IP 범위 / CIDR | 용도(Purpose) | 상세 설명 |
|---|---|---|
| 0.0.0.0/8 | 현재 네트워크 | 장치가 아직 IP를 할당받지 못했을 때(DHCP 요청 시) '나 자신'을 지칭하기 위해 사용합니다. |
| 10.0.0.0/8 | 사설 IP(A 클래스) | 대규모 내부 네트워크용 주소입니다. 인터넷으로 직접 라우팅되지 않습니다. |
| 127.0.0.0/8 | 루프백(Loopback) | 로컬 호스트(localhost)라고도 하며, 자기 자신에게 데이터를 보낼 때 사용합니다. (테스트용) |
| 169.254.0.0/16 | APIPA(링크 로컬) | DHCP 서버로부터 IP를 받지 못했을 때, 장치가 스스로 임시 할당하는 주소입니다. |
| 172.16.0.0/12 | 사설 IP(B 클래스) | 중규모 내부 네트워크용 주소입니다. |
| 192.168.0.0/16 | 사설 IP(C 클래스) | 가정용 공유기 등 소규모 내부 네트워크에서 가장 흔히 쓰이는 주소입니다. |
| 224.0.0.0/4 | 멀티캐스트(Class D) | 특정 그룹의 여러 호스트에게 동시에 데이터를 보낼 때 사용합니다. |
| 240.0.0.0/4 | 미래 예약용(Class E) | 향후 연구나 특수 목적을 위해 남겨 둔 범위입니다. 일반 통신에는 안 쓰입니다. |
| 255.255.255.255 | 제한된 브로드캐스트 | 현재 접속된 로컬 네트워크의 모든 장비에게 데이터를 보낼 때 사용합니다. |
루프백 주소(Loopback Address), 로컬 호스트(Localhost)
자기 자신을 가리키는 특별한 주소
루프백 주소로 전송된 패킷은 자기 자신에게 되돌아온다.
호스트가 IP 주소를 할당받기 전에 임시로 할당되는 IP 주소
특별히 지칭할 IP 주소가 없을 때 사용되는 IP 주소
0.0.0.0/8과 유사하지만 다른 의미를 지니는 주소이다.
모든 임의의 IP 주소
주소 라우팅에서 디폴트 라우트를 나타내기 위해 사용한다.
라우팅 테이블
네트워크 간 통신 과정에서 패킷은 여러 라우터를 거쳐 다양한 경로로 이동할 수 있다.

수신지 IP 주소와 서브넷 마스크
다음 홉(Next Hop)
네트워크 인터페이스
메트릭


일반적으로 기본 게이트웨이 주소 = 디폴트 라우트이다.
netstat -rn라우팅의 분류
동적 라우팅과 라우팅 프로토콜을 이해하기 위한 배경지식
AS는 라우터의 집단이라고 생각하면 된다.
한 AS 내에는 다수의 라우터가 존재한다.
라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜
라우팅 프로토콜의 종류
IGP(Interior Gateway Protocol) - AS 내부에서 수행
EGP(Exterior Gateway Protocol) - AS 외부에서 수행



현재 네트워크 구성을 마치 지도처럼 그린 뒤 최적의 경로를 선택
현재 네트워크의 상태를 그래프의 형태로 저장한다.
링크 상태 데이터베이스에 저장한다.
라우터들의 연결 관계, 연결 비용 등 현재 네트워크의 상태를 그래프로 표현하기 위한 데이터 저장
정리
IP 주소는 네트워크와 호스트를 식별하는 주소로, 초기에는 크기에 따라 클래스를 나누는 클래스풀(Classful) 방식을 사용했으나 주소 낭비를 줄이기 위해 오늘날에는 서브넷 마스크를 활용한 클래스리스(Classless/CIDR) 방식을 주로 사용합니다. 서브네팅을 통해 큰 네트워크를 효율적으로 쪼개고, 부족한 공인 IP 문제를 해결하기 위해 내부망에서는 사설 IP를 쓰며 외부와는 NAT로 통신합니다. 호스트는 직접 IP를 설정하는 정적 할당 외에도 DHCP 프로토콜을 통해 임대 기간이 정해진 동적 IP를 자동으로 할당받으며, 루프백(127.0.0.1)이나 디폴트 라우트(0.0.0.0/0) 같은 특수 목적의 예약 주소들을 상황에 맞춰 활용합니다.
네트워크 간의 통신은 최적의 경로를 결정하는 라우팅을 통해 이루어지며, 라우터는 목적지 정보와 비용(메트릭)이 담긴 라우팅 테이블을 참조하여 패킷을 전달합니다. 라우터 집단인 AS 내외부에서 사용되는 프로토콜은 성격에 따라 나뉘는데, 내부용인 IGP에는 홉 수(거리)를 기준으로 하는 RIP와 네트워크 지도를 그려 링크 상태를 파악하는 OSPF가 대표적입니다. 라우팅 테이블에 없는 목적지는 기본 게이트웨이인 디폴트 라우트를 통해 외부로 내보내지며, 이러한 체계적인 경로 관리 덕분에 패킷은 수많은 라우터를 거쳐 전 세계 어디든 안전하게 도달할 수 있습니다.