IP 주소는 크게 네트워크 주소와 호스트 주소로 구성
- 네트워크 주소
- ‘네트워크를 표현하는 부분’
- 호스트가 속한 특정 네트워크를 식별
- 네트워크 ID, 네트워크 식별자(network identifier), 네트워크 범위 등으로 호칭
- 호스트 주소
- ‘호스트를 표현하는 부분’
- 특정 호스트를 식별
- 호스트 ID, 호스트 식별자(host identifier) 등으로 호칭
IP 주소에서 네트워크 주소와 호스트 주소 크기는 각각 어느 정도가 적당할까?
- 네트워크 주소가 하나의 옥텟으로 이루어져 있다면, 한 네트워크당 호스트 주소 할당에 24비트를 사용할 수 있어서 상대적으로 많은 호스트에 IP 주소를 할당
- 네트워크 주소가 세 개의 옥텟으로 이루어져 있다면, 네트워크당 호스트 주소 할당에 8비트를 사용할 수 있어서 상대적으로 적은 호스트에 IP 주소를 할당
- 호스트 주소 공간을 크게 할당하면 호스트가 할당되지 않은 다수의 IP 주소가 낭비
- 반대로 무조건 호스트 주소 공간을 작게 할당하면 호스트가 사용할 IP 주소가 부족
- 이런 고민을 해결하기 위해 생겨난 개념이 바로 IP 주소의 클래스(class)
- IP 주소는 43억개지만 부족하다.
- 예전에는 43억개가 남아서 IP 주소를 클래스로 분류하였다.
클래스풀 주소 체계
- 클래스
- 네트워크 크기에 따라 IP 주소를 분류하는 기준
- 클래스를 이용하면 필요한 호스트 IP 개수에 따라 네트워크 크기를 가변적으로 조정해 네트워크 주소와 호스트 주소를 구획
- 클래스풀 주소 체계(classful addressing)
- 클래스를 기반으로 IP 주소를 관리하는 주소 체계
- D, E → 특수 네트워크이다.
- 클래스 첫 비트 범위 네트워크:호스트 서브넷마스크
- A 0xxx xxxx 1~126 8비트 : 24비트 255.0.0.0
- B 10xx xxxx 128 ~ 191 16비트 : 16비트 255.255.0.0
- C 110x xxxx 192 ~ 223 24비트 : 8비트 255.255.255.0
- D 1110 xxxx 224 ~ 239 멀티캐스트용
- E 1111 xxxx 240 ~ 255 실험/예약용
A 클래스
- A 클래스는 B와 C 클래스에 비해 할당 가능한 호스트 주소의 수가 많음
- 네트워크 주소는 비트 ‘0’으로 시작하고 1옥텟으로, 호스트 주소는 3옥텟으로 구성
- 2^7(128)개의 A 클래스 네트워크가 존재할 수 있고, 2^24(16,777,216)개의 호스트 주소를 가질 수 있음
- A 클래스로 나타낼 수 있는 IP 주소의
- 최솟값을 10진수로 표현하면 0.0.0.0
- 최댓값을 10진수로 표현하면 127.255.255.255
- 이보다 작은 게 필요하다.
- 127은 로컬 호스트라 127은 제외하고 126까지이다.
- 127.x.x.x 대역은 루프백 주소(A클래스에서 제외)
B 클래스
- B 클래스의 네트워크 주소는 비트 ‘10’으로 시작하고 2옥텟, 호스트 주소도 2옥텟으로 구성
- 이론상으로 214(16,384)개의 B 클래스 네트워크와 각 네트워크에 속한 216(65,534)개의 호스트 주소를 가짐
- B 클래스 IP 주소의
- 최솟값을 10진수로 표현하면 128.0.0.0
- 최댓값을 10진수로 표현하면 191.255.255.255
- 따라서 가장 처음 옥텟의 주소가 128~191일 경우 B 클래스 주소임을 짐작
C 클래스
- C 클래스의 네트워크 주소는 비트 ‘110’으로 시작하고 3옥텟, 호스트 주소는 1옥텟으로 구성
- 이론상으로 221(2,097,152)개의 C 클래스 네트워크가 존재할 수 있고, 각 네트워크는 28(256)개의 호스트 주소
- C 클래스로 나타낼 수 있는 IP 주소의
- 최솟값을 10진수로 표현하면 192.0.0.0
- 최댓값을 10진수로 표현하면 223.255.255.255
- 가장 처음 옥텟의 주소가 192~223일 경우 C 클래스 주소임을 짐작
호스트의 주소 공간을 모두 사용할 수 있는 것은 아니다.
- 호스트 주소가 전부 0인 IP 주소
- 해당 네트워크 자체를 의미하는 네트워크 주소로 사용
- 호스트 주소가 전부 1인 IP 주소
- 브로드캐스트를 위한 주소로 사용
할당 가능한 주소의 개수
- A 클래스는 이론상으로는 2^24(16,777,216)개의 주소를 호스트에 할당할 수 있지만
- 실제로 할당 가능한 주소는 16,777,216 - 2개인 16,777,214개
- B 클래스는 이론상 2^16(65,536)개의 주소를 호스트에 할당할 수 있지만
- 실제로 할당 가능한 주소는 65,536 - 2개인 65,534개
- C 클래스는 이론상 2^8(256)개의 주소를 호스트에 할당할 수 있지만
- 실제로 호스트에게 할당 가능한 주소는 256 - 2개인 254개
- 우리가 사용하는 것은, 일반적으로 사용하는 것은 C클래스이다.
- 1.0.0.0 → 1까지가 하나의 마을이다. → 낭비가 너무 심하다. 관리가 어렵고 브로드캐스트가 힘들다.
- B클래스까지도 아직도 많다.
- C클래스도 255개이고, 이조차 많을 때도 있다. 낭비가 생긴다. 지금은 IP주소가 많이 필요하지만 과거에는 낭비가 심했다. → 클래스풀하게 IP주소를 안쓰면 되지 않나?
클래스리스 주소 체계(classless addressing)
- 클래스 개념 없이(classless) 클래스에 구애받지 않고 네트워크의 영역을 나누어서 호스트에게
- IP 주소 공간을 할당하는 방식
- 클래스풀 주소 체계의 한계를 해결
- 클래스별 네트워크의 크기가 고정되어 있기에 여전히 다수의 IP 주소가 낭비될 가능성
- 클래스가 아니라 서브넷 마스크를 이용해 네트워크 주소와 호스트 주소를 구분하는 IP 주소 체계
- 서브넷 마스크와 IP 주소 간에 비트 AND 연산을 수행하면 IP 주소 내의 네트워크 주소를 파악
서브넷 마스크
- 클래스리스 주소 체계에서는 네트워크 ID와 호스트 ID를 구분 짓는 수단으로 서브넷 마스크를 이용
- 서브넷 마스크(subnet mask)는 IP 주소상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열
- 네트워크 내의 부분적인 네트워크(서브네트워크 subnetwork)를 구분 짓는(마스크 mask) 비트열
- 서브네팅(subnetting) - 서브넷 마스크를 이용해 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것
- A, B, C 클래스의 기본 서브넷 마스크
- A 클래스: 255.0.0.0(11111111.00000000.00000000.00000000)
- B 클래스: 255.255.0.0(11111111.11111111.00000000.00000000)
- C 클래스: 255.255.255.0(11111111.11111111.11111111.00000000)
서브네팅: 비트 AND 연산
- 서브넷 마스크를 이용해 네트워크 주소와 호스트 주소를 구분 짓는 방법
- IP 주소와 서브넷 마스크를 비트 AND 연산
- 비트 AND 연산(bitwise AND operation) - 피연산자가 모두 1인 경우에는 1, 아닌 경우에는 0이 되는 연산
- 비트 AND 연산을 통해 네트워크 주소를 알 수 있고, 나머지는 호스트 주소가 된다.
- 사용된 서브넷 마스크에서 0이 8개이므로 호스트 주소는 8비트로 표현 가능 (위의 예시)
- 실제로 할당 가능한 호스트 IP 주소는 192.168.219.1~192.168.219.254 (254 개)
- 호스트 주소가 모두 0인 네트워크 주소 192.168.219.0과
- 호스트 주소가 모두 1인 브로드캐스트 주소 192.168.219.255를 제외
서브넷 마스크 표기: CIDR 표기법
- 10진수로 직접 표기
- 255.255.255.0, 255.255.255.252 등
- CIDR 표기법 CIDR(Classless Inter-Domain Routing notation)
- ‘IP 주소/서브넷 마스크상의 1의 개수’ 형식으로 표기
- 예) C 클래스의 기본 서브넷 마스크는 255.255.255.0
- 이를 2진수로 표기하면 11111111.11111111.11111111.00000000 (1이 총 24개)
# 클래스 방식: /8 /16 /24 세가지만 사용
# CIDR 방식: /8 ~ /30 … /31 /32
- 60개 호스트 필요 → /26 …62개 사용가능(2^6=64-2=62)
- 130개 → /24
- 500개 → /23
500개 …. /23
2^(32-prefix) = 전체 주소 수
2^(32-prefix) - 2 = 사용 사능한 호스트 수
- /24 → 256
- /25 → 126
- /26 → 62
- /27 → 30
FLSM (Fixed Length Subnet Mask)
- 고정 길이 서브넷 마스크
- 네트워크를 동일한 크기의 서브넷들로 나누는 방식
VLSM (Variable Length Subnet Mask)
- 가변 길이 서브넷 마스크
- 각 부서나 네트워크의 실제 호스트 요구 수에 따라 서브넷의 크기를 다르게 나누는 방식
라우팅(Routing)
- 패킷이 이동할 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동
- 라우터(Router)
- 멀리 떨어져 있는 호스트 간의 통신 과정에서 패킷은 서로에게 도달하기까지 여러 라우터를 거쳐서 다양한 경로로 이동
- 패킷이 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동시킨다.
- 라우터가 저장하고 관리하는 라우팅 테이블이 중요!
- 라우팅 경로는 항상 달라짐
- 홉(hop): 라우팅 도중 패킷이 호스트와 라우터 간에, 혹은 라우터와 라우터 간에 이동하는 하나의 과정
라우팅 테이블 (Routing Table)
- 특정 수신지까지 도달하기 위한 정보를 명시한 일종의 표, 지도와 같은 정보
- 우리가 보내려는 수신지에 대한 정보가 없으면 데이터를 송신하지 못한다.
- 그러면 세상의 모든 네트워크를 다 기록해야하나?
- 일단 모르면 기본 경로(defult pass), 기본 게이트워이(defult gateway)로 간다.
- 라우팅 테이블에 포함된 정보
- 수신지 IP 주소와 서브넷 마스크: 최종적으로 패킷을 전달할 대상
- 다음 홉(next hop): 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스
- 네트워크 인터페이스: 패킷을 내보낼 통로
- 메트릭(metric): 해당 경로로 이동하는 데에 드는 비용 → 메트릭이 낮을 수록 선호
- 수신지가 192.168.2.0/24(호스트 IP 주소 범위 192.168.2.1~192.168.2.254)인 패킷은 eth0(인터페이스)를 통해 192.168.2.1(게이트웨이)로 전송하라는 것을 의미
디폴트 라우트(default route)
- 패킷 내의 수신지 IP 주소가 라우팅 테이블에 있는 수신지 IP 주소, 서브넷 마스크 항목과 완벽하게 합치되는 경우가 있지만, 그렇지 않은 경우
- 라우팅 테이블에 없는 경로로 패킷을 전송해야 할 때
- 이 경우 기본적으로 패킷을 내보낼 경로를 설정하여 해당 경로로 패킷을 내보냄
- 디폴트 라우트는 모든 IP 주소를 의미하는 0.0.0.0/0로 명시
- 기본 게이트웨이는 호스트가 속한 네트워크 외부로 나아가기 위한 첫 번째 경로이고, 일반적으로 라우터 주소를 의미하는 경우가 많다.
- 기본 게이트웨이로 나아가기 위한 경로가 디폴트 라우트
정적 라우팅과 동적 라우팅
- 정적 라우팅(static routing)
- 사용자가 수동으로 직접 채워 넣은 라우팅 테이블의 항목을 토대로 라우팅
- 정적 라우팅의 취약점 → 문제 발생 여지가 많음
- 네트워크의 규모가 커지고 관리해야 할 라우터가 늘어나면 정적 라우팅만으로는 관리가 힘듦
- 수동으로 라우팅 테이블 항목을 입력해야 하는 정적 라우팅의 특성상 입력 실수가 발생
- 실수 없이 입력했다 할지라도 라우팅되는 경로상에 예상치 못한 문제가 발생
- 동적 라우팅(dynamic routing)
- 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅하는 방식
- 동적 라우팅을 하면 라우팅 테이블 항목이 수시로 변할 수 있음
- 라우팅 테이블의 항목을 수동으로 입력할 필요가 없으므로 대규모 네트워크 관리가 편리함
- 네트워크 경로상에 문제가 발생했을 때 이를 우회할 수 있게 경로가 자동으로 갱신
- AS(Autonomous System)
- 하나의 기관이 운영하는 독립적인 라우터들(네트워크)의 집합
- AS마다 인터넷상에서 고유한 ASN(Autonomous System Number, AS번호)가 할당
- 이곳에서 ASN들을 확인할 수 있음 - https://한국인터넷정보센터.한국/jsp/business/management/asList.jsp
- ASBR(Autonomous System Boundary Router, AS 경계 라우터)
- 한 AS 내에는 다수의 라우터가 있으며
- 라우터들은 AS 내부에서만 통신할 수도 있고, AS 외부와 통신할 수도 있음
- AS 외부와 통신할 경우 AS 경계에서 AS 내외로 통신을 주고받을 수 있는 특별한 라우터를 이용
- 라우팅 프로토콜 (동적)
- 라우팅 프로토콜(routing protocol)
- 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜
- 라우팅 프로토콜의 종류
- IGP(Interior Gateway Protocol) - AS 내부에서 수행
- RIP와 OSPF
- EGP(Exterior Gateway Protocol) - AS 외부에서 수행 / 대륙과 대륙..
- BGP
- IGP(Interior Gateway Protocol) - AS 내부에서 수행
- IGP (Interior Gateway Protocol)
- RIP - 최적의 경로를 선정하는 과정에서 거리 벡터를 사용
- OSPF - 최적의 경로를 선정하는 과정에서 링크 상태를 사용
- RIP - 홉 카운트! (실제 거리는 중요하지 않음)
- 거리는 패킷이 경유한 라우터의 수, 즉 홉의 수를 의미
- 인접한 라우터끼리 경로 정보를 주기적으로 교환하며 라우팅 테이블을 갱신
- 이를 통해 라우터는 특정 수신지에 도달하기까지의 홉 수를 알 수 있음
- 특정 수신지까지 도달하기 위해 ‘홉 수가 가장 적은 경로’를 최적의 경로라고 판단
- 홉 수가 적을수록 라우팅 테이블상의 메트릭 값도 작아짐
- 구성이 간단 → 소규모 네트워크에 적합
- 느린 수렴
- 최대 15개의 홉까지만 카운트 가능
- OSPF - 링크 상태(link state) 라우팅 프로토콜
- 링크 정보를 비롯한 현재 네트워크의 상태를 그래프 형태로 링크상태 DB에 저장해둔다.
- 링크 상태 데이터베이스에는 라우터들의 연결 관계, 연결 비용 등 현재 네트워크의 상태를 그래프로 표현하기 위한 데이터가 저장
- 링크 상태 데이터베이스를 기반으로 현재 네트워크 구성을 마치 지도처럼 그린 뒤에 최적의 경로를 선택
- 라우터 간에 정보를 주기적으로 교환
- 굉장히 빠른 수렴
- 대규모 네트워크에 적합
- 루프에 빠지지 않음
- 설정이 복잡하고 무거움
- OSPF에서는 대역폭을 기반으로 메트릭을 계산하여 최적의 경로를 결정
- 대역폭이 높은 링크일수록 메트릭이 낮은 경로로 인식
- OSPF는 네트워크의 구성이 변경되었을 때 라우팅 테이블이 갱신
- EGP : BGP(Border Gateway Protocol)
- AS 간의 통신에서 사용되는 대표적인 프로토콜 → 엄밀하게는 AS 간의 통신이 ‘가능한’ 프로토콜
- EGP(초창기 버전) → BGP (업데이트 버전)
- BGP는 RIP와 OSPF에 비해 최적의 경로를 결정하는 과정이 복잡하고, 일정하지 않은 경우가 많음
- 경로 결정 과정에서 수신지 주소와 더불어 다양한 ‘속성’과 ‘정책’이 고려되기 때문임
- BGP의 속성(attribute)은 경로에 대한 일종의 부가 정보
- 라우팅 프로토콜(routing protocol)
IPsec
- 3계층 위에 있는 개념
- 3계층에는 원래 IPsec 기능이 없다
- IPsec - 기밀성, 무결성, 송신처 인증 → 사진
- 무차별대입모드 → 공용 와이파이 → 무얼 아는지 다 알 수 있다. → 암호화
- 즉 공용 와이파이가 아니라 암호화되지 않은 정보가 위험한 것이다. http 평문 통신도 마찬가지다.
- 와이어샤크 → 만능은 아니고 잘 알려진 프로토콜 통신 패킷에 대해 파악 가능.
VPN
- 원격 재택 시 사용. 외부에 있지만 내부망에서 작업하는 것처럼 하는 것이 VPN이다.
- 본사와 지사를 VPN으로 연결
- 터널링과 암호화를 3계층에서 처리해서 TCP/UDP를 보호
- 3계층에 걸쳐 있다.
- 터널링
- VPN 터널로 본사와 지사를 연결. 매우 프라이빗하다. 우리끼리만 통신하는 것이다. 외부에서는 안보인다.
- 진짜 터널? No! 직렬로 연결? No!
- 통짜로 터널을 뚫는게 아니다. 물리적으로 생기는 것이 아니다.
- 라우터들을 거쳐서 가는데 터널링이 된다 → 메세지는 똑같이 날라가는 데 확인을 할 수가 없다는 것이다. 데이터가 캡슐화되어 있다.
- 클라이언트와 서버가 필요
- 본사에 VPN 서버가 있고 사용하는 사람은 VPN 클라이언트가 있어야 한다.
- 내부 IP → 공인 IP → 라우터들을 타고 다닌다. 회사에 도착해서 내부 IP 즉 내부 컴퓨터 IP로 통신한다.
공인 IP 주소
- 공인 IP 주소(public IP address)는 전 세계에서 고유한 IP 주소
- 네트워크 간의 통신, 이를테면 인터넷을 이용할 때 사용하는 IP 주소
- 공인 IP 주소는 ISP나 공인 IP 주소 할당 기관을 통해 할당
사설 IP 주소와 NAT
- 사설 IP 주소(private IP address) - 사설 네트워크에서 사용하기 위한 IP 주소
- LAN 내의 많은 호스트는 사설 IP 주소를 사용
- 사설 IP 주소로 사용하도록 특별히 예약된 IP 주소 공간
- 10.0.0.0/8 (10.0.0.0 – 10.255.255.255)
- 172.16.0.0/12 (172.16.0.0 – 172.31.255.255)
- 192.168.0.0/16 (192.168.0.0 – 192.168.255.255)
- 사설 IP 주소의 할당 주체는 일반적으로 라우터
- 할당받은 사설 IP 주소는 해당 호스트가 속한 사설 네트워크상에서만 유효한 주소
- 얼마든지 다른 네트워크상의 사설 IP 주소와 중복될 수 있음
- 예) 사설 IP 주소 범위에 속하는 192.168.0.2라는 주소도 타 사설 네트워크 내 호스트와 얼마든지 중복
- 따라서 192.168.0.2라는 사설 IP 주소만으로는 인터넷 접속을 비롯한 외부 네트워크 간의 통신이 어려움
사설 IP 주소를 사용하는 호스트가 외부 네트워크와 통신하려면?
- NAT(Network Address Translation) - IP 주소 변환 기술
- 주로 네트워크 내부에서 사용되는 사설 IP 주소와 네트워크 외부에서 사용되는 공인 IP 주소를 변환
- NAT를 통해 사설 IP 주소를 사용하는 여러 호스트는 적은 수의 공인 IP 주소를 공유 가능
- 대부분의 라우터와 (가정용) 공유기는 NAT 기능을 내장
- 사설 네트워크상에서 만들어진 패킷 속 사설 IP 주소는 공유기를 거쳐 공인 IP로 변경되고, 외부 네트워크로 전송
- 반대로 외부 네트워크로부터 받은 패킷 속 공인 IP 주소는 공유기를 거쳐 사설 IP 주소로 변경되어 사설 네트워크 속 호스트에 도달
- 하나의 공인 IP로 사설 네트워크 내의 여러 기기들이 통신할 수 있음
- 라우터 하나를 가지고 같은 강의장에서 여러 PC로 접속할 때, 모두 하나의 IP가 접속한 것으로 보인다.
- NAT의 기능 중 하나가 사설 IP와 공인 IP를 바꿔주는 것이지, NAT가 그거 하나만을 위해서 사용하는 건 아님
- 공인 IP를 알면 인터넷(외부 네트워크) 식별하여 DB에 접근할 수 있다.
- 중요한 서버는 바로 공인 IP를 주지 않고, 앞에 서버를 하나 더 두고 공인 IP를 사용한다.
특수 IP대역
- 0.0.0.0/8 → 현재(로컬) 네트워크
- 127.0.0.0/8 → 로컬 호스트(Local Host), 루프백(Loopback)
- 169.254.0.0/16 → 링크 로컬(Link Local) 컴퓨터 두 대를 LAN 케이블을 통해 직렬로 연결하면 보장받는 네트워크 대역
- 192.168.0.0/16 → 사설 네트워크
- 224.0.0.0/4 → 멀티캐스트
컴퓨터의 공인 IP 주소와 사설 IP 주소 확인
- 현재 IP(IPv4) 주소 조회
- 윈도우 - 명령 프롬프트(CMD)에 ipconfig
- 맥OS - 터미널에 ifconfig를 입력
- 만일 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 중 하나가 보인다면, 이는 사설 IP 주소
- 네이버나 구글 검색 사이트에서 IP 주소 확인
- 네이버 검색창에 ‘내 IP 주소’를 입력하거나 구글 검색창에 ‘what is my ip address’를 입력
- 네이버나 구글은 여러분의 사설 IP 주소가 아닌 공인 IP 주소를 인식하기 때문에 공인 IP 주소를 표시
정적 IP 주소와 동적 IP 주소
- 정적 할당
- 정적 할당은 호스트에 직접 수작업으로 IP 주소를 부여하는 방식
- 이렇게 할당된 IP 주소를 정적 IP 주소(static IP address)라고 함
- 정적 IP 주소 부여
- 윈도우나 맥OS 등의 네트워크 설정에서 IP 주소를 수동으로 설정
- 일반적으로 부여하고자 하는 IP 주소, 서브넷 마스크, 게이트웨이(라우터) 주소, DNS 주소를 입력
- 중요한 서버, 프린터 장비에 일반적으로 사용된다.
- 게이트웨이의 일반적인 의미
- 서로 다른 네트워크를 연결하는 하드웨어적/소프트웨어적 수단
- 기본 게이트웨이(default gateway)
- 호스트가 속한 네트워크 외부로 나가기 위한 기본적인 첫 경로(첫번째 홉)
- 기본 게이트웨이는 내트워크 외부와 연결된 라우터(공유기)의 주소를 의미하는 경우가 많다.
- IP 할당의 맥락에 사용된 ‘게이트웨이’라는 용어는 기본 게이트웨이를 의미한다.
- 설정 시 ‘게이트웨이’ 항목과 ‘라우터’ 항목에는 공통적으로 기본 게이트웨이 역할을 하는 라우터(공유기)의 주소를 적어주면 된다.
동적 할당과 DHCP
- IP 주소를 정적으로만 할당하다 보면 호스트의 수가 많아질 경우 관리가 곤란
- 의도치 않게 잘못된 IP 주소를 입력할 수도 있고, 중복된 IP 주소를 입력
- 동적 할당
- 정적 할당과 달리 IP 주소를 직접 일일이 입력하지 않아도 호스트에 IP 주소가 동적으로 할당되는 방식
- 동적 IP 주소(dynamic IP address) → 사용되지 않을 때는 회수된다.
- DHCP(Dynamic Host Configuration Protocol)
- IP 동적 할당에 사용되는 대표적인 프로토콜
DHCP
- 7계층 응용계층으로, IP 동적 할당에 사용되는 대표적인 프로토콜
- 자동 IP 할당: 네트워크에 접속할 때 수동으로 입력할 필요 없이 IP 주소를 자동으로 부여
- 임대(Lease) 개념: IP 주소를 영구적으로 주는 것이 아니라, 일정 기간 동안만 빌려줌
- 자원 회수 및 재사용: 장치가 네트워크를 떠나거나 꺼지면 IP 주소를 반환받아 다른 기기에 재할당하므로 IP 주소를 효율적으로 아껴 쓸 수 있음
- DHCP를 통한 IP 주소 할당
- IP 주소를 할당받고자 하는 호스트(이하 클라이언트)와 해당 호스트에게 IP 주소를 제공하는 DHCP 서버 (DHCP Server) 간에 메시지를 주고받음으로써 이루어짐
- DHCP 서버의 역할은 일반적으로 라우터(공유기)가 수행하지만, 특정 호스트에 DHCP 서버 기능을
- DHCP 서버는 클라이언트에게 할당 가능한 IP 주소 목록을 관리하다가, 클라이언트가 요청할 때 IP 주소를 할당
- 추가할 수도 있음
- DHCP로 할당받은 IP 주소는 사용할 기간(임대 기간)이 정해짐
- 임대 기간은 DHCP 서버에서 설정하기 나름이지만, 일반적으로 수 시간에서 수 일로 설정
- 임대 기간이 끝난 IP 주소는 다시 DHCP 서버로 반납
- DHCP를 통해 IP 주소를 할당받는 것을 ‘IP 주소를 임대한다’라고 표현
- DHCP 서버 주소와 임대 기간 확인
- 윈도우 - 명령 프롬프트(CMD)를 열고 ipconfig /all을 입력
- IP 주소 할당 중 클라이언트와 DHCP 서버 간에 주고받는 메시지의 종류
- DHCP Discover
- DHCP Offer
- DHCP Request
- DHCP Acknowledgment(이하 DHCP ACK)
- 클라이언트는 DHCP 서버와 DHCP Discover, DHCP Offer, DHCP Request, DHCP ACK(①~④번)순으로 메시지를 주고받으며 IP 주소를 할당
1. DHCP Discover(클라이언트 → DHCP 서버)
- 클라이언트는 DHCP Discover 메시지를 통해 DHCP 서버를 찾고 이는 브로드캐스트로 전송
- DHCP Discover 메시지를 전송하는 시점에 클라이언트는 아직 IP 주소를 할당받지 못했으므로
- 송신지 IP 주소는 0.0.0.0으로 설정됨
2. DHCP Offer(DHCP 서버 → 클라이언트)
- DHCP 서버는 DHCP Discover 메시지를 받은 뒤 클라이언트에게 DHCP Offer 메시지를 보냄
- 이 메시지는 클라이언트에게 할당해 줄 IP 주소를 제안하는 메시지
- 클라이언트에게 제안할 IP 주소뿐만 아니라 서브넷 마스크, 임대 기간 등의 정보도 포함
3. DHCP Request(클라이언트 → DHCP 서버)
- DHCP Request는 DHCP Offer 메시지에 대한 응답 - 이 또한 브로드캐스트로 전송
4. DHCP ACK(DHCP 서버 → 클라이언트)
- DHCP 서버는 클라이언트에게 DHCP ACK 메시지를 보냄
- 이 메시지는 마치 최종 승인과도 같은 메시지
- DHCP ACK 메시지까지 받은 클라이언트는 이제 할당받은 IP 주소를 자신의 IP 주소로 설정한 뒤
- 임대 기간 동안 IP 주소를 사용
'네트워크' 카테고리의 다른 글
| [혼공네] 05. 응용 계층 (0) | 2026.09.26 |
|---|---|
| [혼공네] 04. 전송 계층 (0) | 2026.09.26 |
| [혼공네] 03-1. LAN을 넘어서는 네트워크 계층 (0) | 2026.09.26 |
| [혼공네] 02-4. 스위치(Switch) (0) | 2026.09.21 |
| [혼공네] 02-1. 이더넷(Ethernet) (0) | 2026.09.21 |