diff --git a/manuals/README.md b/manuals/README.md index a883199..28fa959 100644 --- a/manuals/README.md +++ b/manuals/README.md @@ -4,3 +4,4 @@ ## [Установка Asterisk](src/asterisk-install.md) ## [initrd (Initial RAM Disk)](src/initrd.md) ## [Базовая настройка подключения к серверу Samba](src/samba.md) +## [Настройка загрузки PXE - EFI и Legacy](src/pxe-efi-legzcy.md) diff --git a/manuals/src/img/pxe-efi-legzcy-1.png b/manuals/src/img/pxe-efi-legzcy-1.png new file mode 100644 index 0000000..c402d87 Binary files /dev/null and b/manuals/src/img/pxe-efi-legzcy-1.png differ diff --git a/manuals/src/img/pxe-efi-legzcy-2.png b/manuals/src/img/pxe-efi-legzcy-2.png new file mode 100644 index 0000000..04bea7e Binary files /dev/null and b/manuals/src/img/pxe-efi-legzcy-2.png differ diff --git a/manuals/src/img/pxe-efi-legzcy-3.png b/manuals/src/img/pxe-efi-legzcy-3.png new file mode 100644 index 0000000..9bea4a8 Binary files /dev/null and b/manuals/src/img/pxe-efi-legzcy-3.png differ diff --git a/manuals/src/img/pxe-efi-legzcy-4.png b/manuals/src/img/pxe-efi-legzcy-4.png new file mode 100644 index 0000000..ec73618 Binary files /dev/null and b/manuals/src/img/pxe-efi-legzcy-4.png differ diff --git a/manuals/src/img/pxe-efi-legzcy-5.png b/manuals/src/img/pxe-efi-legzcy-5.png new file mode 100644 index 0000000..2e9ef06 Binary files /dev/null and b/manuals/src/img/pxe-efi-legzcy-5.png differ diff --git a/manuals/src/img/pxe-efi-legzcy-6.png b/manuals/src/img/pxe-efi-legzcy-6.png new file mode 100644 index 0000000..2c52a38 Binary files /dev/null and b/manuals/src/img/pxe-efi-legzcy-6.png differ diff --git a/manuals/src/pxe-efi-legzcy.md b/manuals/src/pxe-efi-legzcy.md new file mode 100644 index 0000000..12028f8 --- /dev/null +++ b/manuals/src/pxe-efi-legzcy.md @@ -0,0 +1,83 @@ +# Настройка загрузки PXE - EFI и Legacy + +1. Прошить микротик версией не ниже 7.6. +2. Для каждой сети DHCP указать в `Next Server` **IP** PXE-сервера. В теории можно указать `66` опцией и подсунуть в `Option Set`, оставив `Next Server` пустым. +3. `Boot File Name` оставить пустым. + +![pxe-efi-legzcy-1](img/pxe-efi-legzcy-1.png) + +4. Создать две опции: + +``` +Name: legacy_67 +Code: 67 +Value: s'loader_legacy/pxelinux.0' +``` + +``` +Name: uefi_67 +Code: 67 +Value: s'loader_uefi/syslinux.efi' +``` + +![pxe-efi-legzcy-2](img/pxe-efi-legzcy-2.png) + +5. Создать `Option Sets` + +![pxe-efi-legzcy-3](img/pxe-efi-legzcy-3.png) + +6. Создать опции в `Option Matcher` + +![pxe-efi-legzcy-4](img/pxe-efi-legzcy-4.png) + +Можно в `Server` указать **all**, в особенности, если DHCP серверов на микроте несколько. Если несколько DHCP серверов, то нужны отдельные опции для каждой сети. Если одна подсеть разбита на несколько пулов, то указываем только первый, `next pool` не нужно. + +![pxe-efi-legzcy-5](img/pxe-efi-legzcy-5.png) + +![pxe-efi-legzcy-6](img/pxe-efi-legzcy-6.png) + +## В терминале + +```sh +ip dhcp-server option +/ip dhcp-server/network/ print +/ip dhcp-server/network/ set <НОМЕР СЕТИ> next-server="ip сервера" +/ip dhcp-server/option/ add name="legacy_67" code=67 value="s'loader_legacy/pxelinux.0'" +/ip dhcp-server/option/ add name="uefi_67" code=67 value="s'loader_uefi/syslinux.efi'" +/ip dhcp-server option sets add name="pxe-uefi" options=uefi_67 +/ip dhcp-server option sets add name=" pxe-legacy" options= legacy_67 +/ip dhcp-server/matcher/ add name="arch-legacy" " server="all" address-pool="ИМЯ ПУЛА" option-set="pxe-legacy" code="93" value="0x0000" +/ip dhcp-server/matcher/ add name="arch-efi" server="all" address-pool="ИМЯ ПУЛА" option-set="pxe-uefi" code="93" value="0x0007" +``` + +- `server="all"` - вместо `all` можно указать номер DHCP сервера (`/ip/dhcp-server print`) +- `address-pool="имя пула"` – указать имя `pool` (`ip/pool/ print` или нажать TAB поставив курсор после `address-pool=`) + +## Для ISC-DHCP-SERVER (Linux) + +Редактирование `dhcp.conf`: + +``` +option architecture-type code 93 = unsigned integer 16; +``` + +в `subnet` указать: + +``` +next-server ; +if option architecture-type = 00:07 { + filename "loader_uefi/syslinux.efi"; +} else { + filename "loader_legacy/pxelinux.0"; +} +``` + +## tftpd-ремап + +В Legacy некоторые старые клиенты имеют косяк в стеке и они в конец искомого имени файла `loader_legacy/pxelinux.0` добавляют ненужный код. Исправляется ремап-фильтром на tftpd сервере: + +``` +g \\ / +ri (loader_uefi\/syslinux\.efi).*$ \1 # на всякий случай и для efi +ri (loader_legacy\/pxelinux\.0).*$ \1 +```