PXE Boot на Juniper SRX
Технология PXE boot используется для загрузки по сети установочного образа операционной системы с последующей его установкой. Она является альтернативой использованию установочного диска.
Для работы PXE используются такие протоколы как DHCP и TFTP.
- Протокол
DHCP
предназначен для автоматического присвоения IP адресов клиентам в сети, а также дополнительных сетевых параметров (опций): адреса роутера, адреса DNS серверов и т.д. - Технология
PXE
использует в своей работе специальные DHCP опции, которые позволяют сетевым клиентам найти загрузочный сервер в сети и загрузить с него загрузочный файл.
Работа DHCP протокола состоит из обмена сообщениями между клиентом и сервером, по завершении которого, клиент присваивает себе определенный IP-адрес, выданный сервером. Эти сообщения:
- DHCP Discover
- DHCP Offer
- DHCP Request
- DHCP Response.
Поскольку клиент на начальном этапе не имеет своего IP-адреса все сообщения передаются через широковещательную рассылку на адрес 255.255.255.255. Поскольку широковещательные пакеты не передается за пределы подсети, это означает, что DHCP сервер должен быть либо в одной подсети с клиентом, либо должна быть задействована технология Relay Agent, позволяющая передавать DHCP запросы за пределы подсети.
Relay agent
Relay Agent (также называемый ip helper
в терминологии Cisco), технология позволяющая передавать широковещательные сообщения из одной подсети в другую подсеть. Применительно к рассматриваемой теме Relay Agent позволяет отправлять DHCP запросы клиента на DHCP сервер, находящийся в другой подсети. Поскольку клиентских подсетей может быть несколько, то чтобы различать из каких диапазонов IP адресов DHCP серверу выдавать адрес клиенту в пересылаемом сообщении содержится IP адрес интерфейса, на который пришел DHCP запрос от клиента.
PXE
Клиент, поддерживающий загрузку по PXE, использует DHCP запрос со специальной опцией идентификатор клиента (60
). Сервер поддерживающий загрузку PXE использует ответ DHCP со специальными опциями:
- загрузочный сервер (
66
) - файл загрузчика (
67
)
Если клиент не получает DHCP ответ с этими опциями, то загрузка через PXE прекращается.
WDS и PXE
Дальше речь пойдет про PXE сервер от Microsoft - Windows Deployment Services
(WDS). Существуют два способа настроить DHCP сервер и PXE сервер: на одной машине или на разных. Располагаться серверы могут как в подсети PXE клиентов, так и в другой подсети.
Если серверы DHCP и PXE располагаются в одной с клиентом подсети:
- Если DHCP сервер располагается на одной машине с WDS, то в настройках WDS нужно включить опции
Не слушать на DHCP портах
(Do not listen on DHCP ports
) иНастроить DHCP опции, указывающие, что это PXE сервер
(Configure DHCP options to indicate that this is also a PXE server
). - Если DHCP сервер и WDS сервер располагаются на разных машинах, то в настройках WDS менять ничего не нужно.
Если DHCP сервер и WDS сервер располагаются за пределами клиентской подсети, то на интерфейсе роутера, который смотрит в эту сеть, нужно настроить Relay Agent:
- Если DHCP и WDS располагаются на одной машине, то нужно указать только один адрес сервера. WDS настроить, как указано ранее.
- Если DHCP сервер и WDS сервер располагаются на разных машинах, то в IP Helper нужно указать оба адреса.
JunOS и PXE
При настройке PXE на Juniper SRX я столкнулся со сл. проблемами:
-
Невозможно настроить одновременно DHCP сервер и Relay Agent на SRX. Что приводит к выводу, что можно настроить DHCP сервер и PXE сервер вне Juniper, но нельзя использовать DHCP сервер на Juniper для присвоения IP адреса клиентам и в тоже время Relay Agent для перенаправления PXE клиентов за специальными DHCP опциями на сервер PXE. Поэтому, если Juniper у вас выполняет роль DHCP сервера, то остается только вручную назначать специальные DHCP опции для PXE клиентов, т.к. возможности перенаправить запрос на PXE сервер у вас не будет. Это опции:
- загрузочного сервера (
66
) - файла загрузчика (
67
)
- загрузочного сервера (
-
Командная строка Juniper по-своему обрабатывает пути к файлам на Windows, таким образом, что
\x
становится спецсимволом и путь в конфигурации сохраняется некорректный. Поэтому нужно внимательно проверять принимаемые изменения в конфигурацию на наличие подобных ошибок. -
Новый DHCP сервер на SRX называется
JDHCP
и Juniper рекомендует его использовать. Проблема в том, что в отличие от старого из состава ISC, надежного и стабильного, новый JDHCP все еще находится в процессе разработки. Стоит также заметить, что JDHCP использует несколько названий для одной опции, так для опции66
используется названия- boot-server
- tftp-server
- next-server
-
Однако при указании даже всех возможных названий в ранних версиях JunOS опция
next server IP address
, указанная в конфигурации SRX, не передавалась PXЕ клиентам, из-за чего их загрузка заканчивалась ошибкойPXE: TFTP open timeout
. Решается этот баг обновлением версии до последней рекомендуемой.
op@srx# show system services dhcp-local-server
group Internal {
interface vlan.4;
}
op@srx# show access address-assignment
pool Main {
family inet {
network 10.3.0.0/24;
range Clients {
low 10.3.0.11;
high 10.3.0.99;
}
dhcp-attributes {
next-server 10.10.0.44;
name-server {
10.10.0.7;
10.10.0.8;
}
router {
10.3.0.1;
}
boot-file "boot\\arch64\\wdsnbp.com";
boot-server 10.10.0.44;
tftp-server 10.10.0.44;
}
}
}