Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Vendor-class-id заменён на универсальный сопоставитель опций — как теперь выполнить PXE загрузку?

    Vendor-class-id заменён на универсальный сопоставитель опций — как теперь выполнить PXE загрузку?

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Vendor-class-id заменён на универсальный сопоставитель опций — как теперь выполнить PXE загрузку?, RouterOS
     
    blazej222
    Guest
    #1
    0
    09.08.2022 11:50:00
    Здравствуйте. Хочу запустить PXE-сервер в своей локальной сети и настроить DHCP-сервер роутера так, чтобы он отдавал разные файлы в зависимости от строки архитектуры PXE клиента (например: EFI32 получает boot.e32, EFI64 — boot.e64, Legacy BIOS — boot.bios). До версии 7.4 это было возможно, создавая правило vendor-class-id с кастомным набором опций.  

    # [admin@v7] /ip/dhcp-server/vendor-class-id> add
    Создает новый элемент с заданными свойствами.  

    address-pool — пул адресов, используемый для этого vendor-class-id  
    copy-from — номер элемента для копирования  
    disabled — определяет, игнорируется ли элемент или используется  
    name —  
    option-set —  
    vid — содержимое vendor-class-id в виде строки или hex с префиксом 0x  

    В changelog к версии 7.4 написано: dhcp-server — изменён матчинг "vendor-class-id" на общий матчинг опций. Можно ли повторить точно такое же поведение на версиях 7.4 и выше? Я толком не понимаю, как пользоваться этим новым матчером опций, потому что, как мне кажется, он просто позволяет выбирать DHCP-сервер или пул адресов в зависимости от опции клиента DHCP 93 (или другой опции), но не даёт возможности указать набор DHCP-опций, которые сервер должен отправить обратно клиенту.
     
     
     
    deramirez
    Guest
    #2
    0
    10.09.2022 15:00:00
    Та же проблема. Никакой документации по новому matcher не могу найти. Похоже, что option matcher работает только с ограниченным набором DHCP опций. В режиме отладки DHCP опция 93 отображается как “Unknown(93)”: default получил запрос с id 3471760989 от 0.0.0.0  
    flags = broadcast  
    ciaddr = 0.0.0.0  
    chaddr = 08:00:27:2B:77:C2  
    Address-Request = 192.168.88.174  
    Msg-Type = request  
    Server-Id = 192.168.88.1  
    Parameter-List = Subnet-Mask,Unknown(2),Router,Unknown(4),Unknown(5),Domain-Server,Host-Name,Unknown(13),Domain-Name,Unknown(17),Unknown(18),Unknown(22),Unknown(23),Broadcast-Address,Unknown(40),Unknown(41),NTP-Server,Vendor-Specific,Address-Request,Address-Time,Server-Id,Renewal-Time,Rebinding-Time,Class-Id,Unknown(66),Unknown(67),Unknown(97),Unknown(128),Unknown(129),Unknown(130),Unknown(131),Unknown(132),Unknown(133),Unknown(134),Unknown(135)  
    Max-DHCP-Message-Size = 65280  
    Class-Id = "PXEClient:Arch:00007:UNDI:003000"  
    Unknown(93) = 00-07  
    Unknown(94) = 01-03-00  
    Unknown(97) = 00-25-E8-E7-ED-FD-93-2A-4D-B4-94-E1-78-81-1F-C1-06  
    Если использовать matcher с option 60 (Class-Id), всё работает как надо. Но с option 93 (Unknown) matcher не работает.
     
     
     
    deramirez
    Guest
    #3
    0
    10.09.2022 21:32:00
    matcher с опцией 93 работает, если значение в HEX, чтобы поймать arch uefi64: value = 0x0007, например. Я могу назначить конкретный пул для клиентов uefi64 (с опцией 93 = 0x0007), и это работает как надо. Но назначение конкретного набора опций этому matcher’у (с конкретным именем bootfile) никак не влияет.

    [admin@MikroTik] /ip/dhcp-server/matcher> print detail
    1   name="arch-uefi64" address-pool=uefi option-set=arch-uefi64-default code=93 value="0x0007"  
    2   name="arch-uefi32" address-pool=dhcp option-set=arch-uefi32-default code=93 value="0x0006"  

    [admin@MikroTik] /ip/dhcp-server/option/sets> print detail
    0 name="arch-uefi64-default" options=boot-uefi64  
    1 name="arch-uefi32-default" options=boot-uefi32  
    2 name="arch-bios-default" options=boot-bios  

    [admin@MikroTik] /ip/dhcp-server/option> print detail
    4 name="boot-bios" code=67 value="'ipxe.pxe'" raw-value="697078652e707865"  
    5 name="boot-uefi32" code=67 value="'ipxe.efi'" raw-value="697078652e656669"  
    6 name="boot-uefi64" code=67 value="'ipxe64.efi'" raw-value="6970786536342e656669"
     
     
     
    Fritti
    Guest
    #4
    0
    24.09.2022 09:29:00
    Похоже, что что-то в матчере будет исправлено в версии 7.6, см. http://forum.mikrotik.com/t/v7-6beta-testing-is-released/160567/1.
     
     
     
    ormandj
    Guest
    #5
    0
    12.10.2022 02:29:00
    Я столкнулся с той же проблемой — matcher, похоже, не использует указанный мной набор опций. Я сопоставляю идентификатор класса, и в отладочных логах DHCP видно нужное значение от клиента, но набор опций применяется не так, как должен (в моём случае это boot filename, основанный на class id/option 60). У меня версия 7.5, надеюсь, в 7.6 это действительно исправят.
     
     
     
    deramirez
    Guest
    #6
    0
    22.10.2022 10:17:00
    Только что проверил на версии 7.6, и, похоже, проблема решена. Matcher работает как положено с наборами опций и загрузочными параметрами!
     
     
     
    bassist
    Guest
    #7
    0
    22.10.2022 23:16:00
    Отлично! Ты можешь выложить пару кусочков кода или примеров? Я как раз собираюсь начать тестировать это, и было бы здорово иметь с чего отталкиваться!
     
     
     
    trnubo
    Guest
    #8
    0
    18.01.2023 23:12:00
    Я только что настроил это на RouterOS 7.7 (на 7.6 не пробовал).  
    [admin@MikroTik] > /ip/dhcp-server/option print detail
    0 name="ipxe-uefi64" code=67 value="'ipxe-x86_64.efi'" raw-value="697078652d7838365f36342e656669"  
    1 name="ipxe-uefi32" code=67 value="'ipxe-i386.efi'" raw-value="697078652d693338362e656669"  
    2 name="ipxe-bios" code=67 value="'undionly.kpxe'" raw-value="756e64696f6e6c792e6b707865"  
    3 name="next-server" code=66 value="'192.168.100.1'" raw-value="c0a86401"  
    4 name="ipxe-menu" code=67 value="'menu.ipxe'" raw-value="6d656e752e69707865"  

    [admin@MikroTik] > /ip/dhcp-server/option/sets print detail
    0 name="arch-uefi64" options=ipxe-uefi64,next-server  
    1 name="arch-uefi32" options=ipxe-uefi32,next-server  
    2 name="arch-bios" options=ipxe-bios,next-server  
    3 name="ipxe-menu" options=next-server,ipxe-menu  

    [admin@MikroTik] > /ip/dhcp-server/matcher print detail
    0   name="arch-uefi64" server=vlan100 address-pool=pool-vlan100 option-set=arch-uefi64 code=93 value="0x0007"  
    1   name="arch-uefi32" server=vlan100 address-pool=pool-vlan100 option-set=arch-uefi32 code=93 value="0x0006"  
    2   name="arch-bios" server=vlan100 address-pool=pool-vlan100 option-set=arch-bios code=93 value="0x0000"  
    3   name="ipxe-menu" server=vlan100 address-pool=pool-vlan100 option-set=ipxe-menu code=77 value="iPXE"  

    Это загрузит iPXE как для BIOS, так и для EFI, в зависимости от архитектуры системы клиента (код 93). А когда iPXE запустится, он получит “menu.ipxe” на основе класса пользователя (код 77). Всё это сделано по примерам из этой темы (спасибо deramirez) и из документации iPXE Wiki: PXE chainloading для ICS dhcpd. Здорово, что наконец-то всё заработало в RouterOS.
     
     
     
    mrboombasticdk
    Guest
    #9
    0
    26.01.2023 16:52:00
    Привет. У меня проблемы с настройкой. У меня запущен сервер netboot.xyz с iPXE, но когда я использую функцию matcher, мой PXE-клиент не может получить загрузочный файл или IP моего TFTP-сервера. Если я напрямую прописываю IP следующего сервера и имя загрузочного файла в разделе «dhcp server/networks», проблем нет, но я хочу иметь возможность загружать как BIOS, так и UEFI-устройства. Для BIOS я использую файл «netboot.xyz.kpxe», для UEFI — «netboot.xyz.efi».

    [xxxxxxx@MikroTik] > ip/dhcp-server/option print detail
    0 name="ipxe-uefi64" code=67 value="'netboot.xyz.efi'" raw-value="6e6574626f6f742e78797a2e656669"  
    1 name="ipxe-uefi32" code=67 value="'netboot.xyz.efi'" raw-value="6e6574626f6f742e78797a2e656669"  
    2 name="ipxe-bios" code=67 value="'netboot.xyz-undionly.kpxe'" raw-value="6e6574626f6f742e78797a2d756e64696f6e6c792e6b707865"  
    3 name="next-server" code=66 value="'192.168.1.11'" force=yes raw-value="c0a8010b"  
    4 name="ipxe-menu" code=67 value="'menu.ipxe'" raw-value="6d656e752e69707865"

    [xxxxxxx@MikroTik] > /ip/dhcp-server/option/sets print detail
    0 name="arch-uefi64" options=ipxe-uefi64,next-server  
    1 name="arch-uefi32" options=ipxe-uefi32,next-server  
    2 name="arch-bios" options=ipxe-bios,next-server  
    3 name="ipxe-menu" options=next-server,ipxe-menu

    [xxxxxxx@MikroTik] > /ip/dhcp-server/matcher print detail
    Flags: X - отключено  
    0 name="arch-uefi64" server=LAN address-pool=LAN option-set=arch-uefi64 code=93 value="0x0007"  
    1 name="arch-uefi32" server=LAN address-pool=LAN option-set=arch-uefi32 code=93 value="0x0006"  
    2 name="arch-bios" server=LAN address-pool=LAN option-set=arch-bios code=93 value="0x0000"  
    3 name="ipxe-menu" server=LAN address-pool=LAN option-set=ipxe-menu code=77 value="iPXE"

    Информация про netboot.xyz: https://github.com/netbootxyz/netboot.xyz  
    Я использую RouterOS 7.7. Любая помощь будет очень признательна!
     
     
     
    semchs3000
    Guest
    #10
    0
    12.06.2024 17:23:00
    Привет. Я просто объединил идеи из этой темы, и и для BIOS, и для EFI PXE с авто-переключением всё работает с netboot.xyz на всех клиентах с RouterOS x86 v7.10.2. Можно просто повторить мою конфигурацию:  
    [st@xgw1.stepantv.ru] > ip/dhcp-server/option print detail
    0 name="xyz-efi64" code=67 value="'netboot.xyz.efi'" raw-value="6e6574626f6f742e78797a2e656669"  
    1 name="xyz-bios" code=67 value="'netboot.xyz.kpxe'" raw-value="6e6574626f6f742e78797a2e6b707865"  
    2 name="next-server" code=66 value="'xgw1.stepantv.ru'" raw-value="786777312e73746570616e74762e7275"  

    [st@xgw1.stepantv.ru] > /ip/dhcp-server/option/sets print detail
    0 name="arch-uefi64" options=xyz-efi64,next-server  
    1 name="arch-bios" options=xyz-bios,next-server  

    [st@xgw1.stepantv.ru] > /ip/dhcp-server/matcher print detail
    Flags: X - disabled  
    0 name="arch-uefi64" server=dhcp1 address-pool=dhcp_pool0 option-set=arch-uefi64 code=93 value="0x0007"  
    1 name="arch-bios" server=dhcp1 address-pool=dhcp_pool0 option-set=arch-bios code=93 value="0x0000"  

    [st@xgw1.stepantv.ru] > /ip/tftp/print detail
    Flags: X - disabled  
    0 ip-addresses=10.99.0.0/22 req-filename="" real-filename="xyz" allow=yes read-only=yes allow-rollover=no allow-overwrite=no  
       reading-window-size=none hits=26  

    st@mox1:~$ ssh xgw1 'file/print' | grep xyz  
    341  xyz  
    342  xyz/netboot.xyz.kpxe  
    343  xyz/netboot.xyz.efi
     
     
     
    mrboombasticdk
    Guest
    #11
    0
    15.06.2024 13:22:00
    Мне удалось запустить всё с помощью новой документации zyx по маршрутизаторам Mikrotik. https://netboot.xyz/docs/kb/networking/mikrotik/ Сервер xyz работает на моём NAS в докер-контейнере. Я просто сменил IP следующего сервера на мой NAS, и теперь всё отлично работает. Класс!
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры