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

- IP 주소에서 네트워크 주소와 호스트 주소 크기는 각각 어느 정도가 적당할까?
- 네트워크 주소가 하나의 옥텟으로 이루어질 경우
- 한 네트워크당 호스트 주소 할당에 24비트를 사용할 수 있다
- 상대적으로 많은 호스트에 IP 주소를 할당할 수 있다
- 세 개를 할당하면?
- 한 네트워크당 호스트 주소 할당에 8비트를 사용할 수 있다
- 상대적으로 적은 호스트에 IP 주소를 할당할 수 있다
⇒ 이런 고민을 해결하기 위해 생겨난 개념 = 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 주소


클래스리스 주소 체계와 서브네팅
클래스풀 주소 체계의 한계

클래스리스 주소 체계 (classless addressing)
- 클래스 개념 없이 클래스에 구애받지 않고 네트워크 영역을 나누고 호스트에게 IP 주소 공간을 할당하는 방식이다
- 클래스풀 주소 체계보다 더 요동적이고 정교한 네트워크 구획이 가능하다
- 오늘날 주로 활용되는 방식이다
서브넷 마스크 (subnet mask )
- 클래스 없이 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 |
서브네팅
: 하나의 큰 네트워크 주소 공간을 여러 개의 작은 네트워크로 잘게 쪼개는 기술을 말합니다.
- IP 주소 절약: 낭비되는 IP 주소를 최소화합니다. (예: 254개가 필요한데 A클래스를 주면 1,600만 개가 낭비됨)
- 보안 향상: 네트워크를 분리하여 서로 다른 그룹(예: 인사팀과 개발팀) 간의 불필요한 접근을 차단합니다.
- 성능 최적화: 브로드캐스트 트래픽(전체에 뿌리는 신호)이 미치는 범위를 좁혀 네트워크 부하를 줄입니다.
서브네팅의 핵심은 호스트 부분(0으로 채워진 부분)의 비트를 네트워크 부분(1로 채워진 부분)으로 빌려오는 것입니다.
예를 들어, C 클래스 기본 마스크(/24)를 반으로 쪼개고 싶다면 어떻게 할까요?
- 기본:
11111111.11111111.11111111.00000000 (/24)
- 1비트 빌림:
11111111.11111111.11111111.10000000 (/25)
- 빌려온 비트가
0인 그룹과 1인 그룹, 2개의 네트워크가 생깁니다.
- 이때의 서브넷 마스크는 10진수로 255.255.255.128이 됩니다.
서브넷 마스크 표기 : CIDR표기법
- 10진수로 직접 표기
- CIDR : 표기법
- ‘IP주소/서브넷 마스크상 1의 개수’ 형식으로 표기
- 예 ) C 클래스의 기본 서브넷 마스크는 255.255.255.0
- 이를 2진수로 표현하면, 11111111.11111111.11111111.00000000 → (1이 총 24개 ) 따라서 /24
IP 주소 192.168.219.103 서브넷 마스크 255.255.255.0
192.168.219.103/24
공인IP 주소와 사설 IP주소
| 클래스 | 사설 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 주소를 통해이루어진다
& 그러면 사설 IP 주소를 사용하는 호스트는 외부 네트워크와 어떻게 통신하나?
NAT ( Network Address Trasnlation )
- IP 주소 변환 기술 : 주로 사설 IP 주소와 공인 IP 주소를 변환
- 대부분의 라우터와 공유기는 NAT 기능내장되어 있다
- 사설 네트워크의 패킷 속 사설 IP 주소는 공유기를 거쳐 공인 IP 주소로 변경된다
- 외부 네트워크 패킷 속 공인 IP 주소는 공유기를 거쳐 사설 IP 주소로 변경된다

정적IP 주소와 동적 IP주소
정적 할당
- 호스트에 직접 IP주소를 부여하는 방식
- 이렇게 할당된 IP주소 = 정적 IP주소
정적 IP 주소부여
- 윈도우나 맥에 수동으로 부여할 수 있는 기능이 있다
- 일반적으로 부여하고자 하는 IP주소, 서브넷 마스크 ,게이트웨이(라우터) 주소 , DNS주소를 입력해줘야한다
기본 게이트웨이
- 게이트웨이의 일반적인 의미
- 서로 다른 네트워크를 연결하는 하드웨어적/소프트웨어적 수단
- 기본 게이트웨이
- 호스트가 속한 네트워크 외부로 나가기 위한 기본적인 첫 경로 ( 첫 번쨰 홉 )
- 네트워크 외부와 연결된 라우터의 주소를 의미하는 경우가 많다
- IP 할당의 맥락에서 사용된 ‘게이트웨이’라는 용어는 기본 게이트웨이(라우터(공유기)의 주소)를 의미한다
모든 IP주소를 정적으로 할당할 수 있을까
- 호스트의 수가 많아질 경우 관리 곤란하다
- IP 동적 할당에 사용되는 대표적인 프로토콜(DHCP)
- 이렇게 할당된 IP 주소를 동적 IP 주소라고 한다
DHCP를 통한 동적 IP 주소 할당
- 클라이언트와 DHCP 서버 간 메시지 송수신을 통해 할당이 이루어진다
- 클라이언트 : IP 주소를 할당받고자 하는 호스트
- DHCP 서버 : 호스트에게 IP 주소를 제공하는 호스트
- DHCP 서버의 역할은 일반적으로 라우터(공유기)가 수행한다
- 특정 호스트에 DHCP 서버 기능을 추가할 수 있다
- DHCP 서버는 클라이언트에게 할당 가능한 IP 주소 목록을 관리하다, 클라이언트 요청 시 IP 주소를 할당한다
- DHCP 할당받은 동적 IP 주소는 사용할 기간(임대 기간)이 정해져있다
- 일반적으로 수 시간에서 수일이다
- 임대 기간이 끝난 IP 주소는 다시 DHCP 서버로 반납된다
IP 주소 할당과정에서 주고받는 메시지
(1) DHCP Discover ( 클라이언트 → DHCP 서버 )
- DHCP 서버 찾는 메시지
- 브로드 캐스트 전송
- 클라이언트는 아직 IP 주소를 할당받지 못함 : 송신지 IP 주소는 0.0.0.0으로 설정
(2) DHCP Offer ( DHCP 서버 → 클라이언트 )
- 클라이언트에게 할당 가능한 IP주소 정보를 제안하는 메시지
- 할당 가능한 IP 주소,서브넷 마스크 , 임대 기간 등의 정보포함
(3) DHCP Request( 클라이언트 → DHCP 서버)
- DHCP Offer 메시지에 대한 응답
- 브로드캐스트로 전송
(4) DHCP ACK ( 서버 → 클라이언트 )
- 최종 승인과 같은 메시지
- DHCP ACK메시지를 클라이언트는 이제 할당받은 IP 주소를 할당받은 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 | 제한된 브로드캐스트 | 현재 접속된 로컬 네트워크의 모든 장비에게 데이터를 보낼 때 사용합니다. |
127.0.0.1
- 루프백 주소 (loopback address), 로컬 호스트 (localhost)
- 자기 자신을 가리키는 특별한 주소
- 루프백을 주소로 전송ㄷ죈 패킷은 자기 자신에게 되돌아온다
- 부메랑 역할을 수행하는 주소이다
- 테스트나 디버깅 용도로 사용한다
0.0.0.0/8
- 호스트가 IP 주소를 할당받기 전에 임시로 할당되는 IP 주소
- ex) DHCP Discover 메시지를 전송하는 시점의 클라이언트 IP 주소
- 특별히 지칭할 IP 주소가 없을 때 사용되는 IP 주소
- 호스트 입장에서 마땅히 자신을 지칭할 IP주소가 없을 때
0.0.0.0/0
- 0.0.0.0/8 과 유사하지만 다른 의미를 지니는 주소이다
- 모든 임의의 IP 주소
- 주소 라우팅에서 디폴트 라우트를 나타내기 위해 사용한다
- 디폴트 라우트 : 패킷을 어떤 IP 주소로 전달할지 결정하기 어려운 경우 기본적으로 패킷을 전달할 경로
라우팅 테이블
데이터 링크 계층의 한계
- 라우터 : 라우팅을 수행하는 대표적인 장비
- 라우팅 : 패킷의 이동할 최적의 경로를 결정하는 것
네트워크 간 통신을 가능케 하는 네트워크 계층의 장비
- 네트워크 간 통신 과정에서 패킷은 여러 라우터를 거쳐서 다양한 경로로 이동할 수 있다
- 패킷은 여러 대의 라우터를 뛰어 수신지까지 이동한다

라우팅 테이블
- 특정 수신지까지 패킷이 도달하기 위한 정보를 명시한 표와 같은 정보
- 라우터는 라우팅 테이블을 참고하여 수신지까지의 도달 경로를 판단한다
라우팅 테이블에 포함된 정보
- 수신지 IP주소와 서브넷 마스크
- 다음 홈(next hop)
- 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스
- 게이트웨이라고 명시되기도 한다
- 네트워크 인터페이스
- 패킷을 내보낼 통로
- 인터페이스 (NIC) 이름이 직접 명시되거나 인터페이스에 대응하는 IP 주소 방식
- 메트릭
- 해당 경로로 이동하는 데에 드는 비용
- 라우팅 테이블의 여러 경로 중 메트릭이 낮은 경로를 선호한다
라우팅 테이블에 포함된 정보
- 수신지가 192.168.2.0/24 인 패킷은
- eth0(인터페이스)를 통해
- 192.168.2.1 (게이트웨이)로 전송하라는 뜻이다

디폴트 라우트 : 라우팅테이블에 경로가 없을 때
- 기본적으로 패킷을 내보낼 경로
- 모든 IP 주소를 의미하는 0.0.0.0/0 로 명시한다
- ex) 수신지 IP 주소가 1.2.3.4인 패킷을 받았다면 : 디폴트 라우트 , eth2를 통해 192.168.0.1로 전송한다

디폴트 라우트(default route)
- 일반적으로 기본 게이트웨이 주소 = 디폴트 라우트다
- 기본 게이트웨이 = 네트워크 외부로 나아가기 위한 첫 경로 , 일반적으로 라우터/공유기 주소이다
- 라우팅 테이블에 따로 경로가 등록되어 있지 않은 패킷들을 기본적으로 기본 게이트웨이(라우터)에게 전달한다
라우팅 테이블 실제 확인하기
라우팅의 분류
라우터들의 집단 네트워크 AS
- 동적 라우팅과 라우팅 프로토콜을 이해하기 위한 배경지식
- AS는 라우터의 집단이라 생각하면된다
- 한 AS 내에는 다수의 라우터가 존재한다
- 라우터들은 AS 내부에서만 통신할 수 있고, AS 외부와 통신할 수 있다
라우팅 프로토콜
- 라우터끼리 자신드르이 정보를 교환하면 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜
- 라우팅 프로토콜의 종류
- IGP(Interior Gateway Protocol) - AS 내부에서 수행
- EGP(Exterior Gateway Protocol) - AS 외부에서 수행

대표적인 IGP : RIP와 OSPF
- RIP : 최적의 경로를 선정하는 과정에서 거리 벡터를 사용한다
- OSPF : 최적의 경로를 선정하는 과정에서 링크 상태를 사용한다

RIP - 거리 벡터 기반 라우팅 프로토콜
- ‘거리’는 패킷이 경유한 라우터의 수 , 즉 홉의 수를 의미한다
- 특정 수신지까지 도달하기 위해 ‘ 홉 수가 가장 적은 경로’를 최적의 경로라고 판단한다
- 홉 수가 적을수록 라우팅 테이블상의 메트릭 값도 작아진다
- 주기적으로 인접 라우터끼리 경로 정보 교환 , 라우팅 테이블 갱신, 특정 수신지까지의 홉 수 계산

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