IP 주소의 분류
- 공인 IP 주소와 사설 IP 주소
- 정적 IP 주소와 동적 IP 주소 -- 이 글에서 다룰 내용
① 정적 할당
- 호스트에 직접 (수작업으로) IP 주소를 부여하는 방식
- 이렇게 할당된 IP 주소 = 정적 IP 주소(static IP address)
- 정적 IP 주소를 부여할 때 어떤 값들을 입력해야 하는지는 기억하자
- 부여하고자 하는 IP 주소, 서브넷 마스크, 게이트웨이(라우터) 주소, DNS 주소

기본 게이트웨이 (default gateway)
- 게이트웨이(gateway)의 일반적인 의미
- 서로 다른 네트워크를 연결하는 하드웨어적/소프트웨어적 수단 - 호스트가 속한 네트워크 외부로 나가기 위한 기본적인 첫 경로(첫 번째 홉)
- 네트워크 외부와 연결된 라우터(공유기)의 주소를 의미하는 경우가 많음
- IP 할당의 맥락에서 사용된 '게이트웨이'라는 용어는 기본 게이트웨이(즉, 라우터(공유기)의 주소)를 의미
cf. DNS 주소
- 로컬 DNS 서버 주소를 의미
- 도메인 이름을 기반으로 패킷을 주고받을 때 도메인 이름을 IP 주소로 변환해주는 작업을 하는 것이 DNS 서버
- 호스트들끼리 패킷을 주고받을 때 기본적으로 IP 주소를 활용
- 일반적으로 DNS 서버 주소를 ISP가 자동으로 할당해 주는 경우가 많음
- 공개된 DNS 주소도 있음; ex. 8.8.8.8, 1.1.1.1
모든 IP 주소를 정적으로 할당할 수 있을까?
- 호스트의 수가 많아질 경우 관리 곤란
- 의도치 않게 잘못된 IP 주소를 입력할 수도 있고, 중복된 IP 주소를 입력할 수도 있음
- 휴먼 에러(human error) 발생
② 동적 할당
- 호스트에 IP 주소를 프로토콜을 활용해 자동으로 할당하는 방식
- IP 동적 할당에 사용되는 대표적인 프로토콜: DHCP(Dynamic Host Configuration Protocol)
- 이렇게 할당된 IP 주소 = 동적 IP 주소(dynamic IP address)
DHCP를 통한 IP 주소 할당
- 클라이언트와 DHCP 서버 간 메시지 송수신을 통해 할당이 이루어짐
- 클라이언트: IP 주소를 할당받고자 하는 호스트
- DHCP 서버: 호스트에게 IP 주소를 제공하는 호스트
- DHCP 서버의 역할은 일반적으로 라우터(공유기)가 수행
- 특정 호스트에 DHCP 서버 기능을 추가할 수도 있음
- DHCP 서버는 클라이언트에게 할당 가능한 IP 주소 목록을 관리하다가 클라이언트 요청 시 IP 주소를 할당 - DHCP로 할당받은 동적 IP 주소는 사용할 기간(임대 기간)이 정해짐

[chatGPT 답변 참고 - 윈도우와 맥 환경에서 네트워크 확인 명령어]
1. 윈도우
위의 명령어 'ipconfig /all'은 윈도우에서만 동작되는 듯 싶고 여기서 '/all'은 네트워크 어댑터에 대해 상세한 정보를 출력하라는 의미이다. 기본적으로 ipconfig는 네트워크 어댑터의 IP 주소, 서브넷 마스크, 기본 게이트웨이 정보만을 보여주지만 '/all' 옵션을 추가할 시 다음의 정보도 확인할 수 있다.
- 호스트 이름
- DNS 서버 주소
- MAC 주소(물리적 주소)
- DHCP 서버 정보
- IP 리스(임대) 시작 및 만료 시간
- 각 네트워크 어댑터에 대한 추가 정보(예: 상태, 설명 등)
2. macOS
기본적으로는 ifconfig 명령어를 사용한다. 네트워크 관련 명령어는 다음과 같다.

동적 IP 리스 정보가 궁금해서 관련 명령어들을 물어봤던 건데 결과를 직접 확인해보고, 또 Lease 키워드를 포함하고 있는지 명령어로 검색해 보아도(-> | grep Lease) 'system_profiler SPNetworkDataType 명령어 실행- Wi-Fi - DHCP Server Responses' 부분에서만 확인할 수 있었다. 여기서는 리스 기간이 0으로 나타나 있는데 리스가 무제한일 경우 0으로 표시될 수 있다고 한다. DHCP Message Type에서 0x05는 DHCP ACK 메시지를 나타낸다고 한다.
chatGPT 왈, "일반적으로 DHCP 리스 정보를 확인하려면 다음과 같이 수동으로 확인해야 한다." - cd /var/db/dhcpclient/leases → cat <파일이름> 이대로 따랐더니 권한이 안 되는지 거부당했다; 위 명령어로 확인할 수 있었던 걸로 만족!

동적 IP의 리스 정보까지 확인하려다 길이 많이 샜는데 주소 혹은 간단한 정보만 확인하는 거라면 다음 명령어로도 가능하다. 동적 IP 즉, DHCP로 할당된 IP 주소가 다양한 네트워크 환경에서 사용될 수 있다는데 대부분 Wi-Fi 환경에서 사용한다고 하여 그 부분에 집중하여 작성했다.
- ipconfig getifaddr en0
- networksetup -getinfo Wi-Fi
ifconfig를 하면 나 같은 경우 장황하게 알 수 없는 정보들이 나열되어서 뭐가 뭔지 구분이 힘들었는데, chatGPT 덕분에 조금은 이해할 수 있었다. 아래에 나온 약어들은 인터페이스 이름들을 지칭하는데, 역할과 유형에 따라 설계되었다. 다음을 간단히 요약하면 lo는 루프백, en은 이더넷, awdl은 Apple의 무선 연결, utun은 터널 인터페이스를 의미한다.

동적 IP 주소 할당 과정에서 주고받는 메시지
① DHCP Discover
② DHCP Offer
③ DHCP Request
④ DHCP Acknowledgement (이하 DHCP ACK)

① DHCP Discover (클라이언트 → DHCP 서버)
- DHCP 서버 찾는 메시지
- 브로드캐스트로 전송
- 클라이언트는 아직 IP 주소를 할당받지 못함: 송신지 IP 주소는 0.0.0.0으로 설정
② DHCP Offer (DHCP 서버 → 클라이언트)
- 클라이언트에게 할당 가능한 IP 주소 정보를 제안하는 메시지
- 할당 가능한 IP 주소, 서브넷 마스크, 임대 기간 등의 정보 포함
③ DHCP Request (클라이언트 → DHCP 서버)
- DHCP Offer에 대한 응답
- 브로드캐스트로 전송(∵아직까지 동적 메시지를 할당받지 못한 상태이기 때문에)
④ DHCP ACK(DHCP 서버 → 클라이언트)
- 최종 승인과 같은 메시지
- DHCP ACK 메시지를 수신한 클라이언트는 이제 할당받은 IP 주소를 자신의 IP 주소로 설정한 후 임대 기간 동안 사용
- 원칙적으로는 사용 기간이 끝나면 IP 주소를 DHCP 서버에 반납하고 재할당을 위해서는 같은 과정을 거쳐야 함
- 임대 갱신(Lease Renewal)을 통해 임대 기간을 연장할 수 있음
- IP 주소 임대 기간이 끝나기 전에 임대 기간을 연장하는 것
- 임대 기간이 끝나기 전에 기본적으로 두 차례 자동으로 수행
- 자동 임대 갱신이 모두 실패하면 그때 IP 주소 반납

'network' 카테고리의 다른 글
[network] 혼자 공부하는 네트워크 03-3 라우팅 테이블 (240814) (1) | 2024.08.14 |
---|---|
[network] 혼자 공부하는 네트워크 03-2 추가: 127.0.0.1과 0.0.0.0 (240813) (0) | 2024.08.13 |
[network] 혼자 공부하는 네트워크 03-2 공인 IP 주소와 사설 IP 주소 (240811) (1) | 2024.08.11 |
[network] 혼자 공부하는 네트워크 03-2 클래스리스 주소체계와 서브네팅 (240810) (0) | 2024.08.10 |
[network] 혼자 공부하는 네트워크 03-2 IP 주소의 구조와 클래스풀 주소 체계 (240809) (0) | 2024.08.09 |