p. 709
참조 : https://jinheeahn.wordpress.com/2015/06/04/dhcp-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/
컴퓨터가 전원이 켜지면, 자신의 Ip 구성 방식을 확인한다
- 만약 정적 구성이라면, 해당 주소를 자신의 NIC 에 할당하고, Gratuitous ARP ( 동일 Ip 확인을 위한 Protocol ) 를 발생시킨다
동적 구성이라면, 자동으로 Ip 주소 요청 ( Discover Message ) 을 브로드 캐스트로 한다. 이때 OFFER 를 받을 방식을 유니캐스트로 할 지, 브로드캐스트로 할 지 미리 FLAG를 설정해서 보낸다 ( 목적지 : 255.255.255.255, 출발지 : 0.0.0.0 )
- FLAG : 0x8000 ( 1 ) = 브로드캐스트
- FLAG : 0x0000 ( 0 ) = 유니캐스트
DHCP 서버는 자신의 DHCP Bind Table ( 어떤 MAC 이 어떤 Ip 주소를 언제까지 사용할 수 있는지 ( expired timed ) 가 기록된 Table ) 을 참조하여, 사용하지 않는 주소를 DHCP pool 에서 꺼내어, OFFER 를 유니캐스트 OR 브로드캐스트로 보내준다
- 유니캐스트를 사용할 경우, PC에 MAC 주소는 가본적으로 할당되어있으므로, 이 MAC 주소를 목적지로 DHCP SERVER에서 메시지를 보낸다
OFFER 를 받은 PC 는 해당 주소가 다른 PC 가 사용하고 있는지 Gratuitous ARP를 통해 확인하고, 해당 주소를 사용하는 장비가 없다면, OFFER 에 대하여 서버에게 REQUEST 를 전달한다 ( 브로드캐스트 )
- Discover 메시지와 동일하게 ACK를 유니캐스트로 받을 지, 브로드캐스트로 받을 지 FLAG를 설정해서 보낸다
- REQUEST를 통해 DHCP 서버의 IP주소와 MAC주소를 아는데, 왜 유니캐스트가 아니라 브로드캐스트로 보낼까? 같은 네트워크 대역에 다른 DHCP 서버가 있다면, PC가 어떤 IP 주소를 사용하는지 모두 알아야 한다. 따라서 브로드캐스트를 통해 모든 DHCP 서버에게 알려야 한다
서버는 최종적으로 해당 주소에 대한 Bind Table 를 작성하고, DHCP ACK를 브로드캐스트 OR 유니캐스트로 PC에게 보낸다
- REQUEST 이후에 DHCP는 PC의 IP 주소와 MAC 주소를 아는데, 왜 굳이 PC에게 ACK 메시지를 브로드캐스트로 보낼 수 있게 했을까? IP 주소를 제대로 받기 전에는 유니캐스트된 IP 데이터그램을 받을 수 없도록 구현되있기 때문이다
- PC는 ACK를 받으면, 할당 받은 IP 주소를 자신의 IP 주소로 설정한다
PC 가 전원을 종료하면 Ip 주소를 반납한다
default-lease : 해당 시간이 되면 PC 가 동작중인지 여부를 확인한다. PC 로 부터 응답이 돌아오면, 임대기간을 갱신하여 계속 사용할 수 있도록 해준다. 만약, 1일로 설정하면, 1일 후에 여부를 확인해서, 만약 해당 PC가 사용하고 있다면, 임대 기간을 연장 시켜 준다
max-lease : 최대 임대 기간으로, defualt-lease 가 설정한 기간 마다, pc 의 lease 기간이 업데이트 되어도, max-lease 기간에 도달하면, 무조건 Ip 를 회수한다
- DHCP CLIENT는 UDP 68 PORT, DHCP SERVER는 UDP 67 PORT를 사용한다. 따라서 DHCP 통신에서 브로드캐스팅을 할 때, 목적지 IP 주소와 목적지 MAC 주소를 몰라도, 목적지 PORT를 통해 자신이 목적지인지 아닌지 판단한다
- CentOS 8 : DNS 캐시 네임 서버 이면서 마스터 네임 서버. 관리하는 도메인 주소가 test.pri 이다
- 웹 서버 : www.test.pri
- DHCP 서버 : 211.183.3.201~239 를 할당해준다
- DNS 주소로는 211.183.3.8 로 사용
- 웹 서버의 내용은 자유롭게 한다
- cli 를 이용하여, server 의 Ip 주소를 211.183.3.88 로 입력한다. 기본 게이트 웨이는 211.183.3.2 이며, DNS 주소는 향후 이 server 가 test.pri 에 대한 maaster 네임 서버로 동작할 계획임을 감안하여 등록한다
- server 가 웹 서버, DNS 서버, DHCP 서버 를 위하여 방화벽과 SELinux 는 편의상 비활성화 시킨다
- 웹 서비스 실행
- 캐시 네임 서버 와 마스터 네임 서버 ( test.pri ) 를 구성하되, 내부에 www 정보를 zone 파일에 등록한다. 단, 웹 서버는 자기 자신이다
- PC 들을 위한 DHCP 서비스를 구성하고, 활성화 시킨다
- PC 는 Ip 주소 입력에 대하여 DHCP 로 전환하고, 211.183.3.201 ~ 239 사이의 주소를 할당받아야 한다. 또한, firefox 를 실행한 뒤, 주소창에 www.test.pri 를 입력했을 경우, server 의 웹 페이지 내용이 보여야 한다. 또한, www.google.com 을 입력했을 경우에도 정상적으로 페이지가 보여야 한다
- ddns-update-style interim : 네임 서버의 동적 업데이트 옵션
- subnet ~ : DHCP의 네트워크 주소 지정. 아래는 클라이언트에게 제공할 게이트웨이 주소, 서브넷 마스크, Ip 주소 범위, 도메인 주소, 임대 시간 이다