오늘 배운 것

24-06-26 IP 주소

무무11 2024. 6. 26. 21:27

오늘도 개인 과제를 완성하는 시간을 주로 가지며 시간을 보냈다. 테스트 코드 작성이 역시나 난관이었는데 최선을 다해보아야겠다.

 

여기에는 오늘 IP 주소에 대해 공부한 내용을 간단히 정리해보았다.

 

1. IP 주소

 

- 공인 IP 주소와 사설 IP 주소

 

IP 주소는 유일한 주소라고 생각할 수도 있지만, 실제로는 전 세계에서 고유한 IP 주소도 있고, 고유하지 않은 주소도 있다.

 

공인 IP 주소는 전세계에서 고유한 IP 주소이다. 네트워크 간의 통신에 사용하는 IP 주소가 공인 IP 주소이다. 공인 IP 주소는 ISP나 공인 IP 주소 할당 기관을 통해 할당 받을 수 있다.

 

사설 IP 주소는 사설 네트워크에서 사용하기 위한 IP 주소이다. 사설 네트워크란 인터넷, 외부 네트워크에 공개되지 않은 네트워크를 의미한다.

 

IP 주소 공간 중에서 사설 IP 주소로 사용하도록 특별히 예약된 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 주소만으로는 일반적인 인터넷 접속을 비롯한 외부 네트워크 간의 통신이 어렵다.

 

 

- NAT(Network Address Translation)

 

네트워크 내부에서 사용되는 사설 IP 주소와 네트워크 외부에서 사용되는 공인 IP 주소를 변환하는데 사용되는 기술이 NAT 이다. NAT를 통해 사설 IP 주소를 사용하는 여러 호스트는 공인 IP 주소를 공유할 수 있다.

 

대부분의 라우터와 공유기는 NAT 기능을 내장하고 있다. 사설 네트워크 상에서 만들어진 패킷 속 사설 IP 주소는 공유기를 거쳐 공인 IP로 변경되고, 외부 네트워크로 전송된다. 반대로 외부 네트워크로부터 받은 패킷 속 공인 IP 주소는 공유기를 거쳐 사설 IP 주소로 변경되어 사설 네트워크 속 호스트에 이르게 된다. 

 

- 정적 IP 주소와 동적 IP 주소

 

호스트에 IP 주소를 할당하는 방법은 크게 2가지가 있다. 정적 할당과 동적 할당이다.

 

정적 할당

 

정적 할당은 호스트에 직접 수작업으로 IP 주소를 부여하는 방식이다. 이렇게 할당된 IP 주소를 정적 IP 주소라고 부른다.

 

정적 IP 주소를 부여하기 위해 입력해야 하는 값들은 일반적으로 부여하고자 하는 IP 주소, 서브넷 카스크, 게이트웨이 주소, DNS 주소가 있다.

 

동적 할당

 

IP 주소를 정적으로만 할당하다 보면 호스트의 수가 많아질 경우 관리가 어렵다. 잘못된 IP 주소를 입력할 수도 있고, 중복된 IP 주소를 입력할 수도 있다.

 

동적 할당은 정적 할당과는 달리 IP 주소를 직접 입력하지 않아도 호스트에 IP 주소가 동적으로 할당되는 방식이다. 이렇게 할당된 IP 주소를 동적 IP 주소라고 부른다.

 

동적 IP 주소는 사용되지 않을 경우 회수되고, 할당받을 때마다 다른 주소를 받을 수 있다.

 

DHCP(Dynamic Host Configuration Protocol)

 

IP 동적 할당에 사용되는 대표적인 프로토콜이다. DHCP를 통한 IP 주소 할당은 IP 주소를 할당받고자 하는 호스트와 해당 호스트에게 IP 주소를 제공하는 DHCP 서버간에 메시지를 주고받음으로써 이루어진다. 여기서 DHCP 서버의 역할은 일반적으로 라우터가 수행한다. 특정 호스트에 DHCP 서버 기능을 추가하는 것도 가능하다. DHCP 서버는 클라이언트에게 할당 가능한 IP 주소 목록을 관리하고, 클라이언트가 요청할 때 IP 주소를 할당한다.

 

DHCP로 할당받은 IP 주소는 사용할 기간이 정해져있다. 임대기간은 DHCP 서버에서 설정할 수 있다. 임대 기간이 끝난 IP 주소는 DHCP 서버로 반납된다. DHCP를 통해 IP 주소를 할당받는 것을 IP 주소를 임대한다라고 표현하기도 한다.

 

IP 주소를 할당받는 과정에서 클라이언트와 DHCP 서버 간에 주고 받는 메시지의 종류는 크게 4가지가 있다. DHCP Discover, DHCP Offer, DHCP Request, DHCP Acknowledgment 순서로 메시지를 주고 받는다.

 

1. DHCP Discover (클라이언트 → DHCP 서버)

 

클라이언트는 DHCP Discover 메시지를 통해 DHCP 서버를 찾는다. 브로드캐스트 메시지로 보낸다. 이 시점에 클라이언트는 아직 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 메시지에 대한 응답으로 역시 브로드캐스트 메시지로 보낸다. Offer로 받은 IP 주소를 사용하겠다고 답변을 주는 것과 같다.

 

4. DHCP ACK(Acknowledgement) (DHCP 서버 → 클라이언트)

 

DHCP 서버는 클라이언트에게 최종 승인과도 같은 메시지인 DHCP ACK 메시지를 보낸다. DHCP ACK 메시지를 받은 클라이언트는 이제 할당받은 IP 주소를 자신의 IP 주소로 설정한 뒤 임대 기간 동안 IP 주소를 사용할 수 있다.

 

IP 주소의 사용 기간이 모두 끝나 DHCP 서버에 반납되면 원래는 이 과정을 다시 거쳐 IP 주소를 재할당받아야한다. 하지만 IP 주소 임대 기간이 끝나기 전에 임대 기간을 연장할 수도 있는데 이를 임대 갱신이라고 한다. 임대 갱신은 IP 주소의 임대 기간이 끝나기 전에 기본적으로 두 차례 자동으로 수행된다. 이 갱신에 실패하면 DHCP 서버에 IP 주소가 최종적으로 반납된다.

 

 

2. 오늘 배운 것

- 오늘도 데일리 루틴을 지키며 학습을 잘 이어나갔다. 알고리즘, 네트워크 관련해서 조금씩 공부해나가고 있다.

- 테스트 코드 작성에 대해 열심히 공부하고있다.