Если в кратце, вот пример: Вы выдали dhcp адрес на x дней. С точки зрения DHCP адрес будет жить х дней, из которых х/2 дней он будет неизменям, по истечение х/2 первых дней жизни (половины срока лиза) клиент сам начинает обращаться на dhcp-сервер за продлением лиза - если клиент успел обратиться до окончания полного срока лиза - аренда продлевается.
Что происходит на стороне DNS - dhcp выдал адрес, и тут же зарегил запись в DNS - dhcp НЕ волнуется за жизнь записи в DNS, его дело - аренда адресов, и сообщение DNSу о новых арендах и продлении старых - удаление записей в DNS - дело самого DNS. Срок лиза адреса в dhcp никак не влияет на срок жизни ресурсной записи заводимой в DNS. На срок жизни записи в DNS влияют интервалы блокирования и обновления. Интервал блокирования - это период, в течение которого запись не может обновлятся, она может быть только полностью удалена. Интервал обновления - это интервал, в течение которого запись ожидает обновления (можно обновить дату создания, и тогда срок блокирования начнет новый отсчет), т.е. что dhcp придет и скажет - "пациент жив, продлевать буду" - это происходит как только "пациент" обратился к DHCP после истечения срока половины аренды, а запись еще не успела попасть в DNS под очистку, даже при условии, что истекли сроки блокировки и обновления, но она еще есть - у нее обновится дата создания, и сроки пойдут считаться с новой даты. Если прошли и срок блокирования и срок обновления записи на DNS - то при следующем запуске очистки запись будет удалена.
Т.е. срок блокировки и обновления записи желательно держать равными времени лиза - т.е. в вашем случае по 12 часов каждый. А срок очистки поставить скажем каждый час. Это увеличит нагрузку на сервер, но избавит вас от головной боли о дублирующихся записях. Чем чаще будет проходить очистка - тем меньше шансов дублирования будет. Но прямо пропорционально будет и рост нагрузки на DNS (если записей не много - не критично).