Есть сервер с debian 8 на борту. Выполняет роль шлюза. В качестве dhcp/dns/tftp стоит dnsmasq. Tftp используется для тонких клиентов. Тонкие клиенты (старые железяки, читай получили вторую жизнь) работают под управлением Thinstation 2.2. Всё устраивало, всё работало. Возникла необходимость добавить рабочее место, и вот тут возникла проблема. В старой сборке thinstation не оказалось модулей, для видеокарты нового клиента. Не беда. Решил (давно уже назревал этот вопрос) обновить образ, до последнего, Thinstation 5.4. Сказано - сделано. Но. Теперь возникла другая проблема - один из старых слиентов ооочень стар, и в новом thinstation не оказалось драйверов для старенькой Ati Radeon R9250.
Теперь стою перед выбором: либо старое железо и старый образ thinsration, но без новой машинки в сети, либо новый образ и новая машинка, но без старой железки, которая пока ещё справляется со своей задачей.
В связи с чем возник вопрос: можно ли для разных клиентов написать разные конфиги dnsmasq, в которых отдавать разные файлы по tftp?
Точный рецепт не подскажу, но думаю, что нужно копать в сторону определения MAC-адреса тонкого клиента и в зависимости от MAC'а отдавать нужный образ версии 2.2 или версии 5.4.
Здесь описан пример отдачи разных загрузчиков в зависимости от архитектуры клиентской станции.
Константин ™: Получилось, но не до конца. Теперь на старой машине загружается старый образ, на новых - новый.
В конфиг добавились такие строки:
dhcp-host=00:11:22:33:44:55,set:old
dhcp-boot=tag:old,/tftp-22/pxelinux.0
# где 00:11:22:33:44:55 соответственно МАС нужной машины, old - метка
Одно из условий, директория /tftp-22 должна быть дочерней по отношению к tftp-root=/srv/tftp-54. Я так понял, TFTP не может выйти за пределы корня. Это то, что получилось.
Теперь о печальном, почему-то опция dhcp-host=00:11:22:33:44:55,set:old
не работает вместе с опцией dhcp-host=00:11:22:33:44:55,192.168.166.100
Короче, не работает резервирование. Может вы увидите ошибку? Сейчас приложу конечный конфиг cat /etc/dnsmasq.conf
sazhyk: думаю dnsmasq ругается на дубликаты строк с одним и тем же mac'ом. Можно попробовать прописать тег и зарезервированный адрес в одну строку, например, так: