Dynamic Host Control Protocol로,
말 그대로 동적으로 호스트(IP)를 구성해주는 규격입니다.
DHCP 서버를 사용하여 client의 네트워크 장치에 IP 주소를 자동으로 할당해주는 방식이며, 요청에 의한 IP할당 및 불필요 시 회수하여 효율성을 높일 수 있습니다.
또한 잘못된 IP설정으로 인한 통신장애를 예방할 수 있습니다.
DHCP에서 통신하는 메시지 포맷은 transaction ID(client key)와 Client IP 등으로 구성되어 있으며, DHCP 동작 및 제어에 대한 항목을 message type을 통해 전달할 수 있습니다.
DHCP 역시 데이터 통신 전에 기본 네트워크 구성이 완료되어야 합니다.
switch - router로 이어지는 게이트웨이(보통은 라우터에 DHCP 서버가 포함) - DHCP server - PC 등으로 연결이 구성됩니다.
이 상태에서 DHCP DISCOVER(서버발견) / OFFER(서버 IP제안) / REQUEST(할당요청) / DHCPACK(IP할당수락)을 통해 IP할당이 이루어지고, 이후 IP갱신 및 해제가 동적으로 진행됩니다.
cmd - ipconfig/all
자신의 PC(네트워크 장비)가 DHCP 적용대상인지의 여부는 cmd의 ipconfig/all 명령을 통해 알 수 있습니다.
개인설정에 따라 구성된 네트워크 항목에서 DHCP 사용여부 및 IPv4 주소를 확인할 수 있습니다(저의 경우 192.168.-.-이 DHCP를 통해 할당받은 IP주소입니다).
또한 자신의 PC가 외부 네트워크와 라우팅을 하기 위해 최초로 접근하는 장비인 인접 라우터(기본 게이트웨이)주소 역시 알 수 있습니다(=192.168.-.-).
사설IP를 통한 네트워크 및 인터넷 연결 시,
라우팅이 가능한 공인IP로 변환하여 네트워크 통신이 가능하도록 해주는 기술.
NAT는 이러한 통신을 보장해주면서, 보안성/유연성/비용절약 등 L3 계층에서 여러 이점을 제공해줄 수 있습니다.
※ 공인IP는 ICANN 공인기관에서 인정하는 IP주소로, 인터넷을 통해 접근한 외부 대역(망)에서 식별 및 통신이 가능한 IP입니다.
※ 반면 사설IP는 내부적으로 내부망에서 사용 및 식별이 가능한 IP로, IPv4 한계 이슈로 고안된 개념입니다.
쉽게 말해 인터넷을 통해 웹사이트 주소에 접근하기 위해선 자신의 PC가 사설IP가 아닌, 공인IP를 할당받아야 합니다.
최초 상태는 내부적인 네트워크 환경에서 사설IP로 할당을 받은 상태이며, 이후 인터넷 접속 시 NAT을 통해 공인IP를 할당받은 후 접근을 하게 되는 것입니다.
NAT은 사설IP 1개와 공인IP 1개가 서로 1;1 매핑되는 체계인 정적NAT과 사설IP 여러 개와 공인 IP Pool이 동적으로 매핑되는 체계인 동적NAT로 분류됩니다.
개인PC를 포함한 192.168.1.- 대역의 여러 PC가 구글 홈페이지 접속을 시도하기 위해 패킷을 전송합니다.
전송된 패킷이 eth1에 도달하고, NAT이 이에 대해 공인 IP 대역의 pool을 확인하고 매핑시킵니다.
eth0에 도달 후, 현재 사설IP로 되어있는 네트워크 상태를 공인IP 주소 대역으로 변환하여 외부 인터넷과 통신을 시도합니다.
인터넷 통신 후 구글에 해당하는 라우터 장비를 찾아 패킷을 전송하고, 여기에 속한 구글에 최종 접근하게 됩니다.