Назад | Перейти на главную страницу

Несколько серверов PXE в одной подсети

Я уже некоторое время борюсь с этим. У меня есть несколько тестовых машин, которые загружаются из сети, они получают данные загрузки с DHCP-сервера, это говорит им, кто является загрузочным сервером, где находится файл, который они будут загружать и т. Д. Однако мне нужно добавить второй сервер PXE в той же подсети (создать еще один Vlan сейчас не вариант).

Я где-то читал, что могу отправлять определенные параметры на определенные машины на основе их MAC-адреса (таким образом выбирая, какие компьютеры загружаются с какого сервера), однако я не могу найти, как это сделать, кто-нибудь знает, как? это будет моим решением, но я не могу найти ответ.

Мой DHCP - это сервер Windows 2003

У меня есть 2 сервера, на которых запущены пользовательские варианты сервера Linux в качестве серверов TFTP. Некоторые машины используют данные для загрузки с сервера 1, а другие должны иметь возможность загружаться с сервера 2.

Спасибо

РЕДАКТИРОВАТЬ: Я уже выбрал ответ, но, если кому-то интересно, я не использовал цепную загрузку, как было предложено, а вместо этого написал сценарий gPXE и ​​записал его с ISO-образом на компакт-диск, я загружаюсь с него, сценарий выполняется, и ПК перенаправлен на сервер, указанный в сценарии, это тот сценарий, который я использовал.

#!gpxe
dhcp net0
set filename pxelinux.0
set next-server 10.225.83.125   #Server your pointing to
set 210:string http://10.225.83.125/fogimg/  #if http the exact http address
imgfetch pxelinux.0       #name of the img file to fetch
imgload pxelinux.0        #name of the img file to load
boot pxelinux.0           #name of the img file to boot from

Это возможно, если вы используете gPXE. Вы настраиваете все хосты для загрузки с использованием gPXE, а затем используете серверный скрипт, написанный на PHP или что-то подобное, для обслуживания соответствующего образа с учетом параметра MAC-адреса:

chain http://${next-server}/boot.php?mac=${net0/mac}

приведен пример Вот.

Вам не нужно записывать gPXE в свои сетевые карты (хотя это, безусловно, допустимый вариант): цепная загрузка прекрасно работает.

И наконец, страница с описанием конфигурации ваших клиентов gPXE на Win2k3 DHCP: Вот.

Мы используем ISC dhcpd3 на нашем DHCP-сервере Linux, а не Server 2003. Но у нас там поддерживаются две разные среды сетевой загрузки. PXELinux для установок Linux и Microsoft Deployment Toolkit 2010 для установок Windows.

Так, например, поскольку мы используем TFTP с DHCP-сервера, наши клиенты Linux имеют такие записи, как

host linux-host {hardware ethernet 00:01:02:03:04:05;
                 fixed-address A.B.C.D; filename "pxelinux.0";}

и у клиентов Windows есть записи вроде

host windows-host {hardware ethernet 00:06:07:08:09:10;
                   fixed-address A.B.C.E; use-host-decl-names on;
                   next-server A.B.C.F; option tftp-server-name "A.B.C.F";
                   option bootfile-name "boot\\x86\\wdsnbp.com";}

Это (я думаю) установка, которую Chopper3 описывает выше. Лично я никогда не вернусь к DHCP-серверу Windows. У нас есть сценарий Python, который может регенерировать нашу конфигурацию DHCP за секунды, поэтому мы можем переключаться между типами загрузки по мере необходимости.

Здесь вам нужна возможность установить параметры BOOTP / DHCP 66 и 67 на основе MAC клиента. Хотя вы можете легко установить эти параметры глобально, используя службу DHCP Windows по умолчанию, нет возможности сделать это выборочно, даже с использованием резервирования.

Я также не знаю об этой возможности на других DHCP-серверах, поэтому другой возможностью было бы установить резервирование MAC-IP на вашем существующем DHCP-сервере (чтобы вы знали, какие IP-адреса находятся на вашем компьютере) и использовать опции 66 и 67 для передачи один и тот же загрузочный хост и файл для каждой машины, но затем на машине, которая раздает эти загрузочные файлы, он раздает разные файлы на основе исходного IP-адреса - имеет ли это смысл?