Skip to content

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 запрос от клиента.

dhcp_request.png

PXE

Клиент, поддерживающий загрузку по PXE, использует DHCP запрос со специальной опцией идентификатор клиента (60). Сервер поддерживающий загрузку PXE использует ответ DHCP со специальными опциями:

  • загрузочный сервер (66)
  • файл загрузчика (67)

Если клиент не получает DHCP ответ с этими опциями, то загрузка через PXE прекращается.

dhcp_offer.png

WDS и PXE

Дальше речь пойдет про PXE сервер от Microsoft - Windows Deployment Services (WDS). Существуют два способа настроить DHCP сервер и PXE сервер: на одной машине или на разных. Располагаться серверы могут как в подсети PXE клиентов, так и в другой подсети.

dhcp_wds.png

Если серверы 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;
        }
    }
}

Источник 1

Источник 2

Источник 3

Источник 4