Dnsmasq

Если по-быстрому нужно поднять DNS и DHCP c помощью dnsmasq:

dnsmasq -k -d -l /tmp/leases -C /usr/local/etc/dnsmasq.conf

-k – Keep in foreground
-d – Debug mode: log to stderr, don’t write a pid file, don’t change user id.
-l – Path to leases file
-C – Path to config file

Конфиг:

# На каком интерфейсе слушать запросы DNS/DHCP
interface=en0
bind-interfaces

# Не читать /etc/resolv.conf
no-resolv
# Не отслеживать его изменения
no-poll

# Задать DNS сервера клиентам
#dhcp-option=6,8.8.8.8,8.8.4.4


# Резолвить заданные адреса на указанный IP
# Для указания ВСЕХ доменов вместо домена указывается символ решетки
# В данном примере все домены будут резолвиться на 10.99.99.1 и только special.net на 10.99.99.2
address=/#/10.99.99.1
address=/special.net/10.99.99.2

# Диапазон IP которые будут назначаться DHCP клиентам 
dhcp-range=10.99.99.10,10.99.99.254,20m

TFTP и PXE:

# Disable DNS
# Если нужен только tftp 
port=0


# Enable the TFTP server
enable-tftp
tftp-root=/var/lib/tftpboot/

# PXE options
# Можно вынести tftp сервер и рутовый диск на адреса отличные от DHCP сервера
dhcp-option=17,10.0.0.2:/opt/ltsp/i386  
dhcp-boot=/ltsp/i386/pxelinux.0,randomname,10.0.0.3

# Или разместить их на том же сервере что DHCP
dhcp-option=17,/path/to/root  
dhcp-boot=pxelinux.0