DHCP Server
VyOS использует Kea DHCP Server (начиная с версии 1.5.x) для предоставления DHCPv4 и DHCPv6 сервисов.
Важное изменение в VyOS 1.5.x
VyOS 1.5 перешел с ISC DHCP на Kea DHCP. Основные изменения:
ISC DHCP (VyOS 1.4):
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping host1 mac-address '00:50:56:00:00:01'Kea DHCP (VyOS 1.5):
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping host1 mac '00:50:56:00:00:01'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping host1 ip-address '192.168.1.10'Ключевые отличия:
mac-address→mac- Требуется указание
ip-addressилиhostnameдля статических маппингов
IPv4 DHCP Server
Базовая конфигурация
Минимальная конфигурация DHCP сервера:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option default-router '192.168.1.1'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option name-server '192.168.1.1'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 start '192.168.1.100'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 stop '192.168.1.200'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 subnet-id 1Структура конфигурации
service dhcp-server
└── shared-network-name <name>
├── authoritative
├── subnet <prefix>
│ ├── subnet-id <id>
│ ├── option
│ │ ├── default-router <ip>
│ │ ├── name-server <ip>
│ │ ├── domain-name <domain>
│ │ └── ...
│ ├── range <id>
│ │ ├── start <ip>
│ │ └── stop <ip>
│ ├── static-mapping <name>
│ │ ├── mac <mac-address>
│ │ ├── ip-address <ip>
│ │ └── hostname <name>
│ ├── lease <seconds>
│ └── exclude <ip>
└── ...Shared Network
Shared network группирует несколько подсетей, которые находятся в одном физическом сегменте:
set service dhcp-server shared-network-name OFFICE subnet 192.168.1.0/24 subnet-id 1
set service dhcp-server shared-network-name OFFICE subnet 192.168.2.0/24 subnet-id 2Параметр authoritative указывает, что сервер является авторитетным для этой сети:
set service dhcp-server shared-network-name LAN authoritativeSubnet Parameters
Subnet ID
Уникальный идентификатор подсети (обязательный параметр в Kea):
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 subnet-id 1Default Router (Gateway)
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option default-router '192.168.1.1'DNS Servers
Один DNS сервер:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option name-server '192.168.1.1'Множественные DNS серверы:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option name-server '192.168.1.1'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option name-server '8.8.8.8'Domain Name
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option domain-name 'example.local'Domain Search
Список доменов для поиска:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option domain-search 'example.local'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option domain-search 'example.com'Lease Time
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 lease 86400Значение в секундах. По умолчанию: 86400 (24 часа).
NTP Servers
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option ntp-server '192.168.1.1'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option ntp-server '0.pool.ntp.org'Address Ranges
Динамические диапазоны IP-адресов для автоматического назначения:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 start '192.168.1.100'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 stop '192.168.1.200'Множественные диапазоны:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 start '192.168.1.100'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 stop '192.168.1.150'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 1 start '192.168.1.200'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 1 stop '192.168.1.250'Excluded Addresses
Исключение адресов из распределения:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 exclude 192.168.1.1
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 exclude 192.168.1.2
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 exclude 192.168.1.3Static Mappings
Статические привязки MAC-адресов к IP-адресам.
Базовый static mapping:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping server1 mac '00:50:56:00:00:01'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping server1 ip-address '192.168.1.10'С hostname:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping server1 mac '00:50:56:00:00:01'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping server1 hostname 'server1.example.local'С описанием:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping server1 mac '00:50:56:00:00:01'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping server1 ip-address '192.168.1.10'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping server1 description 'Production Web Server'Отключение static mapping:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping server1 disableDHCP Options
Bootfile Name (для PXE)
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option bootfile-name 'pxelinux.0'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option bootfile-server '192.168.1.5'TFTP Server
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option tftp-server-name '192.168.1.5'WPAD URL
Web Proxy Auto-Discovery:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option wpad-url 'http://wpad.example.local/wpad.dat'Vendor Options
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 vendor-option cisco option 150 value '192.168.1.5'DHCPv6 Server
Базовая конфигурация DHCPv6
set service dhcp-server shared-network-name LANv6 subnet 2001:db8::/64 subnet-id 1
set service dhcp-server shared-network-name LANv6 subnet 2001:db8::/64 address-range start 2001:db8::100 stop 2001:db8::200
set service dhcp-server shared-network-name LANv6 subnet 2001:db8::/64 option name-server 2001:db8::1Prefix Delegation
DHCPv6 Prefix Delegation для выдачи префиксов клиентам:
set service dhcp-server shared-network-name LANv6 subnet 2001:db8::/48 subnet-id 1
set service dhcp-server shared-network-name LANv6 subnet 2001:db8::/48 prefix-delegation prefix 2001:db8:1000::/52 delegated-length 56Static Mappings для DHCPv6
set service dhcp-server shared-network-name LANv6 subnet 2001:db8::/64 static-mapping server1 identifier '00:01:00:01:12:34:56:78:9a:bc:de:f0:12:34'
set service dhcp-server shared-network-name LANv6 subnet 2001:db8::/64 static-mapping server1 ipv6-address '2001:db8::100'Dynamic DNS (DDNS) Integration
Автоматическое обновление DNS записей при выдаче DHCP адресов:
set service dhcp-server dynamic-dns-update enable
set service dhcp-server dynamic-dns-update server ddns.example.local zone example.local
set service dhcp-server dynamic-dns-update server ddns.example.local key keynameHigh Availability
Active-Active Mode
set service dhcp-server high-availability mode active-active
set service dhcp-server high-availability peer-address '192.168.1.2'
set service dhcp-server high-availability source-address '192.168.1.1'
set service dhcp-server high-availability name 'dhcp-ha-pair'Active-Passive Mode
set service dhcp-server high-availability mode active-passive
set service dhcp-server high-availability peer-address '192.168.1.2'
set service dhcp-server high-availability source-address '192.168.1.1'
set service dhcp-server high-availability name 'dhcp-ha-pair'Примеры конфигурации
Домашняя сеть
set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 option default-router '192.168.1.1'
set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 option name-server '192.168.1.1'
set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 option domain-name 'home.local'
set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 range 0 start '192.168.1.100'
set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 range 0 stop '192.168.1.200'
set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 subnet-id 1
set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 lease 86400Корпоративная сеть с VLAN
# VLAN 10 - Management
set service dhcp-server shared-network-name MGMT subnet 192.168.10.0/24 option default-router '192.168.10.1'
set service dhcp-server shared-network-name MGMT subnet 192.168.10.0/24 option name-server '192.168.10.1'
set service dhcp-server shared-network-name MGMT subnet 192.168.10.0/24 option domain-name 'mgmt.corp.local'
set service dhcp-server shared-network-name MGMT subnet 192.168.10.0/24 range 0 start '192.168.10.100'
set service dhcp-server shared-network-name MGMT subnet 192.168.10.0/24 range 0 stop '192.168.10.200'
set service dhcp-server shared-network-name MGMT subnet 192.168.10.0/24 subnet-id 10
set service dhcp-server shared-network-name MGMT subnet 192.168.10.0/24 lease 3600
# VLAN 20 - Workstations
set service dhcp-server shared-network-name WORK subnet 192.168.20.0/24 option default-router '192.168.20.1'
set service dhcp-server shared-network-name WORK subnet 192.168.20.0/24 option name-server '192.168.20.1'
set service dhcp-server shared-network-name WORK subnet 192.168.20.0/24 option domain-name 'corp.local'
set service dhcp-server shared-network-name WORK subnet 192.168.20.0/24 range 0 start '192.168.20.50'
set service dhcp-server shared-network-name WORK subnet 192.168.20.0/24 range 0 stop '192.168.20.250'
set service dhcp-server shared-network-name WORK subnet 192.168.20.0/24 subnet-id 20
set service dhcp-server shared-network-name WORK subnet 192.168.20.0/24 lease 43200Серверы со статическими адресами
set service dhcp-server shared-network-name SERVERS subnet 192.168.100.0/24 option default-router '192.168.100.1'
set service dhcp-server shared-network-name SERVERS subnet 192.168.100.0/24 option name-server '192.168.100.1'
set service dhcp-server shared-network-name SERVERS subnet 192.168.100.0/24 subnet-id 100
# Web Server
set service dhcp-server shared-network-name SERVERS subnet 192.168.100.0/24 static-mapping web1 mac '00:50:56:00:01:01'
set service dhcp-server shared-network-name SERVERS subnet 192.168.100.0/24 static-mapping web1 ip-address '192.168.100.10'
set service dhcp-server shared-network-name SERVERS subnet 192.168.100.0/24 static-mapping web1 hostname 'web1.corp.local'
# Database Server
set service dhcp-server shared-network-name SERVERS subnet 192.168.100.0/24 static-mapping db1 mac '00:50:56:00:01:02'
set service dhcp-server shared-network-name SERVERS subnet 192.168.100.0/24 static-mapping db1 ip-address '192.168.100.20'
set service dhcp-server shared-network-name SERVERS subnet 192.168.100.0/24 static-mapping db1 hostname 'db1.corp.local'PXE Boot сервер
set service dhcp-server shared-network-name PXE subnet 192.168.50.0/24 option default-router '192.168.50.1'
set service dhcp-server shared-network-name PXE subnet 192.168.50.0/24 option name-server '192.168.50.1'
set service dhcp-server shared-network-name PXE subnet 192.168.50.0/24 option bootfile-name 'pxelinux.0'
set service dhcp-server shared-network-name PXE subnet 192.168.50.0/24 option bootfile-server '192.168.50.5'
set service dhcp-server shared-network-name PXE subnet 192.168.50.0/24 option tftp-server-name '192.168.50.5'
set service dhcp-server shared-network-name PXE subnet 192.168.50.0/24 range 0 start '192.168.50.100'
set service dhcp-server shared-network-name PXE subnet 192.168.50.0/24 range 0 stop '192.168.50.200'
set service dhcp-server shared-network-name PXE subnet 192.168.50.0/24 subnet-id 50Операционные команды
Просмотр аренд (leases)
Все активные аренды:
show dhcp server leasesАренды конкретной подсети:
show dhcp server leases subnet 192.168.1.0/24Конкретный адрес:
show dhcp server leases address 192.168.1.100Статистика
show dhcp server statisticsПерезапуск сервера
restart dhcp serverЛоги
Просмотр логов:
show log dhcp
monitor log | grep dhcpФайлы конфигурации и данных
VyOS 1.5.x (Kea DHCP)
- Конфигурация: генерируется из VyOS CLI
- Leases файл:
/config/dhcp4.leases - Логи:
/var/log/kea/kea-dhcp4.log
VyOS 1.4.x (ISC DHCP) - для справки
- Конфигурация:
/run/dhcp-server/dhcpd.conf - Leases файл:
/var/lib/dhcp/dhcpd.leases
Устранение неполадок
Клиенты не получают адреса
Проверьте статус сервиса:
show service dhcp-serverПроверьте конфигурацию:
show service dhcp-server shared-network-name LANМониторинг в реальном времени:
monitor log | grep dhcpПерезапустите сервис:
restart dhcp serverStatic mapping не работает
Убедитесь, что указаны обязательные параметры:
mac(MAC-адрес)ip-addressилиhostname
Проверьте правильность MAC-адреса:
show service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mappingКонфликты адресов
Проверьте exclude и static mappings:
show service dhcp-server shared-network-name LAN subnet 192.168.1.0/24Очистите старые аренды (осторожно!):
restart dhcp serverDHCP Relay проблемы
Если DHCP сервер на другом сегменте, настройте DHCP relay на интерфейсе:
set service dhcp-relay interface eth0
set service dhcp-relay server 192.168.1.1Лучшие практики
- Планирование адресов - резервируйте диапазоны для статических адресов
- Используйте exclude - для серверов и сетевого оборудования
- Документируйте static mappings - используйте описания
- Настройте lease time - короткие для гостевых сетей, длинные для стабильных
- Резервное копирование - сохраняйте конфигурацию регулярно
- Мониторинг - следите за использованием адресов
- High Availability - для критичных сетей настройте HA
- Логирование - регулярно проверяйте логи на ошибки
Миграция с VyOS 1.4 на 1.5
При миграции обновите static mappings:
Старый формат (1.4):
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping host1 mac-address '00:50:56:00:00:01'Новый формат (1.5):
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping host1 mac '00:50:56:00:00:01'
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 static-mapping host1 ip-address '192.168.1.10'Используйте скрипт для массовой конвертации если у вас много статических маппингов.
Следующие шаги
- DNS Forwarding - интеграция с DNS
- Dynamic DNS - автоматическое обновление DNS записей
- High Availability - отказоустойчивость DHCP