Версія 1 (альфа)
Встановлення і налаштування в мережі серверів DHCP з балансуванням навантаження та взаємозамінністю, автоматичним поновленням серверів DNS, завантаженням станцій через мережу.
За мотивами:
- man 8 dhcpd
- man 5 dhcpd.conf
- http://logout.sh/computers/linux/netboot/
- http://www.gentoo.org/doc/en/diskless-howto.xml
Вступ
Dynamic Host Configuration Protocol (DHCP) - динамічний протокол налаштування комп'ютерів. Сервер DHCP є першим комп'ютером з яким зв'язуються при завантаженні бездискові робочі станції, що мають мережеву картку PXE. Основне завдання серверу DHCP полягає у призначенні адрес IP та іншої конфігураційної інформації стеку протоколів TCP/IP комп'ютерам, про існування котрих могло навіть не бути відомо до встановлення сеансу зв'язку. Сервер DHCP може роздавати адреси IP на підгрунті адрес MAC мережевих карт. Також сервер DHCP може вказувати бездисковим станціям звідки брати файлову систему та ядро для завантаження через мережу. Роль серверу DHCP є безцінною в мережах де кількість комп'ютерів є змінною, а їх кількість перевищує можливе для цієї мережі число адрес, наприклад для провайдерів послуг Інтернет через додзвон по комутованих лініях. Протокол DHCP розширює можливості старого BOOTP і дозволяє динамічно змінювати налаштування стеку TCP/IP на робочих станціях. Фактично він значно полегшує роботу системних адміністраторів та обслуговуючого персоналу. Прослуховує запити на порт 67.
DHCP FAQ: http://www.dhcp-handbook.com/dhcp_faq.html
Початкові налаштування
Спочатку потрібно переконатись у вірній роботі деяких речей. Перевіримо мережевий зв'язок:
# ifconfig eth0 enable multicast
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:E0:83:16:2F:D6
inet addr:10.0.0.101 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:26460491 errors:0 dropped:0 overruns:2 frame:0
TX packets:32903198 errors:0 dropped:0 overruns:0 carrier:1
collisions:0 txqueuelen:100
RX bytes:2483502568 (2368.4 Mb) TX bytes:1411984950 (1346.5 Mb)
Interrupt:18 Base address:0x1800
Дуже важливо, щоб був присутнім MULTICAST якщо ні — потрібно перезібрати ядро з його підтримкою, див. Компіляція ядра GNU/Linux.
Встановлення сервера DHCP
В мережі може бути або один сервер DHCP (з своїм діапазоном ІР адрес), або два, спеціально налаштовані, для розподілу навантаження та взаємної заміни при вимкненні одного з них. Встановимо сервер DHCP http://www.isc.org/products/DHCP, в Gentoo це робиться так:
# emerge dhcp
Налаштування сервера DHCP (/etc/dhcp/dhcpd.conf)
Щоб запустити сервер DHCP, потрібно створити його конфігураційний файл, нижче подається тільки приклад, основні ідеї, на їх основі потрібно написати свій файл під вашу конкретну мережу:
$ cat /etc/dhcp/dhcpd.conf
### dhcpd.conf
### Sample configuration file for ISC dhcpd
### dhcpd.conf file for .cluster.linux
lease-file-name "/var/lib/dhcp/dhcpd.leases";
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog-ng.conf to complete the redirection).
log-facility local7;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
local-port 67;
local-address 10.0.0.10;
#omapi-port 00;
############## DHCP FAILOVER ######################
#failover peer name state {
# my state partner-down;
# peer state state at date;
#};
#failover peer "foo" {
# primary;
# address primarydhcp.cluster.linux;
# port 519;
# peer address secondarydhcp.cluster.linux;
# peer port 520;
# max-response-delay 60;
# max-unacked-updates 10;
# mclt 3600; #may not be specified on the secondary
# split 128; #only on prymary; hash<128 primary, hash>=128 secondary answer
# load balance max seconds 4;
#}
################ DNS server configuration ##############################
#The DNS server must be configured to allow updates for
#any zone that the DHCP server will be updating!!!
#security key for DNS
#to create in BIND9 key tipe: dnssec-keygen -a HMAC-MD5 -b 128 -n USER DNS_UPDATER
#
#EXAMPLE of DNS configuration:
#
#include "/etc/bind/dns-updater.key";
#
#zone "cluster.linux" {
# type master;
# file "cluster.linux.zone";
# allow-update { key DNS-UPDATER; };
# };
#
#zone "0.0.10.in-addr.arpa" {
# type master;
# file "10.0.0.zone";
# allow-update { key DNS-UPDATER; };
# };
#logging {
# channel update_debug {
# file "/var/log/update-debug.log";
# severity debug 3;
# print-category yes;
# print-severity yes;
# print-time yes;
# };
# channel security_info {
# file "/var/log/named-auth.info";
# severity info;
# print-category yes;
# print-severity yes;
# print-time yes;
# };
#
# category update { update_debug; };
# category security { security_info; };
# };
#################################################################################
################ Automatic DNS update ##############################
# The DNS server must be configured to allow updates for any zone that the DHCP server will be updating!!!
# Security key for DNS. To create in BIND9 key tipe:
# dnssec-keygen -a HMAC-MD5 -b 256 -n USER DNS-UPDATER
ddns-update-style interim;
ignore client-updates;
#allow client-updates;
update-optimization false; #DNS update for that client each time the client renews its lease
update-static-leases true; #DNS updates for clients even assigned their IP address using a fixed-address statement
#security key for DHCP - DNS update
include "/etc/dhcp/dns-updater.key";
zone cluster.linux. {
primary 10.0.0.10;
key DNS-UPDATER;
}
zone 0.0.10.in-addr.arpa. {
primary 10.0.0.10;
key DNS-UPDATER;
}
# option definitions common to all supported networks...
option domain-name "cluster.linux";
option domain-name-servers ns.cluster.linux, my-gentoo.cluster.linux;
default-lease-time 600;
max-lease-time 7200;
#option root-path "10.0.0.10:/diskless/10.0.0.104";
# Define Custom Options
option option-128 code 128 = string;
option option-129 code 129 = text;
option option-150 code 150 = text;
# Definition of PXE-specific options
# Code 1: Multicast IP address of boot file server
# Code 2: UDP port that client should monitor for MTFTP responses
# Code 3: UDP port that MTFTP servers are using to listen for MTFTP requests
# Code 4: Number of seconds a client must listen for activity before trying
# to start a new MTFTP transfer
# Code 5: Number of seconds a client must listen before trying to restart
# a MTFTP transfer
#
option space PXE;
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
################### dhcpd's class ######################
################### PXE clients ######################
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
# Definition of PXE-specific options
# At least one of the vendor-specific PXE options must be set in
# order for the client boot ROMs to realize that we are a PXE-compliant
# server. We set the MCAST IP address to 0.0.0.0 to tell the boot ROM
# that we can't provide multicast TFTP (address 0.0.0.0 means no address).
# Multicast IP address of boot file server
option PXE.mtftp-ip 0.0.0.0;
#option PXE.mtftp-ip 10.0.0.10;
# UDP port that client should monitor for MTFTP responses
option PXE.mtftp-cport 4011;
# UDP port that MTFTP servers are using to listen for MTFTP requests
option PXE.mtftp-sport 1759;
# Number of seconds a client must listen for activity before trying
# to start a new MTFTP transfer
option PXE.mtftp-tmout 20;
# Number of seconds a client must listen before trying to restart
# a MTFTP transfer
option PXE.mtftp-delay 20;
# This is the name of the server they should get it from.
# Use the master's IP
next-server 10.0.0.10;
# No Grub
# This is the name of the file the boot ROMs should download.
#filename "/pxelinux.0";
# GRUB network boot stuff
filename "/grub/pxegrub";
option option-150 "/grub/menu_node.lst";
}
#################### etherboot clients ########################
# If you are using etherboot with a non specific image
class "etherboot" {
match if substring (option vendor-class-identifier, 0, 9) = "Etherboot";
# This is the name of the server they should get it from.
# Use the master's IP
next-server 10.0.0.10;
# No Grub
#filename "/kernel/vmlinux";
# GRUB network boot stuff
filename "/grub/nbgrub";
option option-150 "/grub/menu_node.lst";
}
#################### subnet 10.0.0.0/24 options ###################
subnet 10.0.0.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.255;
# --- default gateway and routers
# Use your gateway IP, if required
option routers 10.0.0.10;
option ip-forwarding false;
option non-local-source-routing false;
option router-discovery false;
option static-routes 10.0.0.10 10.0.0.254;
option router-solicitation-address 10.0.0.10;
option domain-name "cluster.linux";
# Use your DNS IP, if required
option domain-name-servers 10.0.0.10, 10.0.0.1;
option nis-domain "cluster.linux";
option nisplus-domain "cluster.linux";
option nis-servers 10.0.0.10;
option nisplus-servers 10.0.0.10;
option smtp-server 10.0.0.10;
option pop-server 10.0.0.10;
option nntp-server 10.0.0.10;
option www-server 10.0.0.10;
option finger-server 10.0.0.10;
option irc-server 10.0.0.10;
option ntp-servers 10.0.0.10;
option time-servers 10.0.0.10;
option netbios-name-servers 10.0.0.10;
# --- Selects point-to-point node (default is hybrid).
# 1 b-node (brodcast); 2 p-node (wins); 3 m-node (brodcast-wins); 4 h-node (wins-brodcast)
# -- Don't change this unless you understand Netbios very well
option netbios-dd-server 10.0.0.10;
option netbios-node-type 2;
option lpr-servers 10.0.0.10;
option time-offset 7200; # Eastern Standard Time
default-lease-time 600;
max-lease-time 7200;
server-name "primarydhcp";
get-lease-hostnames true; #tell dhcpd to look up the domain name corresponding to the IP address
use-host-decl-names on; #name provided for the host declaration will be supplied to the client as its hostname
option option-150 "/grub/menu_node.lst";
next-server 10.0.0.10;
pool {
# failover peer "secondarydhcp.cluster.linux";
range 10.0.0.11 10.0.0.30;
allow known clients;
allow members of "pxeclients";
allow members of "etherboot";
allow unknown clients;
# This prevents unlisted machines from getting an IP
# deny unknown clients;
# ignore unknown clients;
# BOOTP options
# allow bootp true;
# deny bootp true;
# ignore bootp true;
# ping-check true;
}
# we want the nameserver to appear at a fixed address
group {
# Hosts which require special configuration options can be listed in
# host statements. If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.
# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
host ns {
hardware ethernet 0:6:8:c:4:6;
fixed-address 10.0.0.1;
allow booting;
# deny booting;
# ignore booting;
}
}
# we wont fixed IP for folowing hosts computers
host my.cluster.linux {
hardware ethernet 0:4:7:9:9d:45;
fixed-address 10.0.0.2;
ddns-hostname my-gentoo;
ddns-domainname "cluster.linux";
ddns-rev-domainname "in-addr.arpa";
allow duplicates; #it's nesecery when one computer has more than one operating system installed
# deny duplicates;
}
# Diskless
group {
update-static-leases on;
use-host-decl-names on;
host node-11 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.11;
option host-name "node-11";
option option-150 "/grub/menu-10.0.0.11.lst";
option root-path "/diskless/10.0.0.11"; # same as tftp from 'next server
}
host node-12 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.12;
option host-name "node-12";
option option-150 "/grub/menu-10.0.0.12.lst";
option root-path "/diskless/10.0.0.12"; # same as tftp from 'next server
}
host node-13 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.13;
option host-name "node-13";
option option-150 "/grub/menu-10.0.0.13.lst";
option root-path "/diskless/10.0.0.13"; # same as tftp from 'next server
}
host node-14 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.14;
option host-name "node-14";
option option-150 "/grub/menu-10.0.0.14.lst";
option root-path "/diskless/10.0.0.14"; # same as tftp from 'next server
}
host node-15 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.15;
option host-name "node-15";
option option-150 "/grub/menu-10.0.0.15.lst";
option root-path "/diskless/10.0.0.15"; # same as tftp from 'next server
}
host node-16 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.16;
option host-name "node-16";
option option-150 "/grub/menu-10.0.0.16.lst";
option root-path "/diskless/10.0.0.16"; # same as tftp from 'next server
}
host node-17 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.17;
option host-name "node-17";
option option-150 "/grub/menu-10.0.0.17.lst";
option root-path "/diskless/10.0.0.17"; # same as tftp from 'next server
}
host node-18 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.18;
option host-name "node-18";
option option-150 "/grub/menu-10.0.0.18.lst";
option root-path "/diskless/10.0.0.18"; # same as tftp from 'next server
}
host node-19 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.19;
option host-name "node-19";
option option-150 "/grub/menu-10.0.0.19.lst";
option root-path "/diskless/10.0.0.19"; # same as tftp from 'next server
}
host node-20 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.20;
option host-name "node-20";
option option-150 "/grub/menu-10.0.0.20.lst";
option root-path "/diskless/10.0.0.20"; # same as tftp from 'next server
}
host node-21 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.21;
option host-name "node-21";
option option-150 "/grub/menu-10.0.0.21.lst";
option root-path "/diskless/10.0.0.21"; # same as tftp from 'next server
}
host node-22 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.22;
option host-name "node-22";
option option-150 "/grub/menu-10.0.0.22.lst";
option root-path "/diskless/10.0.0.22"; # same as tftp from 'next server
}
host node-23 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.23;
option host-name "node-23";
option option-150 "/grub/menu-10.0.0.23.lst";
option root-path "/diskless/10.0.0.23"; # same as tftp from 'next server
}
host node-24 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.24;
option host-name "node-24";
option option-150 "/grub/menu-10.0.0.24.lst";
option root-path "/diskless/10.0.0.24"; # same as tftp from 'next server
}
host node-25 {
# Use your node MAC address
hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.25;
option host-name "node-25";
option option-150 "/grub/menu-10.0.0.25.lst";
option root-path "/diskless/10.0.0.25"; # same as tftp from 'next server
}
host node-30 {
# Use your node MAC address
#hardware ethernet 00:11:09:32:E5:0E;
# Give your slave a static IP
fixed-address 10.0.0.30;
option host-name "node-30";
option option-150 "/grub/menu_node.lst";
option root-path "/diskless/10.0.0.30"; # same as tftp from 'next server
}
}
}
# IP phone
group {
host ip-phone222.0.0.10.IN-ADDR.ARPA {
hardware ethernet 0:7:5:78:8:d7;
fixed-address 10.0.0.222;
}
}
# other servers
group {
host mail.cluster.linux {
hardware ethernet 0:3:48:24:4:6d;
fixed-address 10.0.0.2;
}
host gw-inet.cluster.linux {
hardware ethernet 0:2:18:5:5b:bd;
fixed-address 10.0.0.254;
}
}
################### dhcpd's example ######################
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
subnet 10.0.10.0 netmask 255.255.255.0 {
# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.
# range dynamic-bootp 10.254.239.40 10.254.239.60; # not recomended
option broadcast-address 10.254.239.31;
option routers rtr-239-32-1.example.org;
}
################### shared-network ###################
# The shared-network block is optional and should be used for IPs
# you want to assign that belong to the same network topology.
############# Example shared network ######################
# You can declare a class of clients and then do address allocation
# based on that. The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.
class "oof" {
match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
}
shared-network 224-29 {
subnet 10.17.224.0 netmask 255.255.255.0 {
option routers rtr-224.example.org;
}
subnet 10.0.29.0 netmask 255.255.255.0 {
option routers rtr-29.example.org;
}
pool {
allow members of "oof";
range 10.17.224.10 10.17.224.250;
}
pool {
deny members of "oof";
range 10.0.29.10 10.0.29.230;
}
}
Бездискові станції будуть намагатись звантажити вказаний опцією filename
файл з
серверу, вказаного адресою IP у next-server
. Це має бути сервер
TFTP, зазвичай він розташований там же, де й сервер DHCP. Шлях до
файлу вказується відносно директорії /diskless/boot
(яка, відповідно, вказується
параметром -s
для серверу tftp).
В середені розділу host, параметр hardware ethernet
визначає адресу MAC, а
fixed-address
встановлює призначену постійну адресу IP, що відповідає цій адресі
MAC. Параметр host-name
призначає вузлу ім’я.
Додаткові налаштування для автоматичного оновлення DNS
Щоб згенерувати ключ, для підпису, виконуємо:
# dnssec-keygen -a HMAC-MD5 -b 256 -n USER DNS-UPDATER
або інші:
-a algorithm: RSA | RSAMD5 | DH | DSA | HMAC-MD5
-b key size, in bits:
RSA: [512..4096]
DH: [128..4096]
DSA: [512..1024] and divisible by 64
HMAC-MD5: [1..512]
-n nametype: ZONE | HOST | ENTITY | USER
Детальніше дивіться ?dnssec-keygen.8, ?dnssec-signzone.8, ?dnssec-makekeyset.8, ?dnssec-signkey.8.
Приклад налаштування BIND для автоматичного оновлення зон за допомогою DHCP:
$ cat /etc/bind/named.conf
//access list:
//any, localhost, localnets, none
acl mynet {
10.0.0.0/24;
};
options {
version "9.2.2";
directory "/var/bind";
//notify yes;
also-notify 10.0.0.2;
recursion yes;
allow-recursion {
mynet;
};
transfer-format many-answers;
transfers-in 10;
transfers-out 10;
transfers-per-ns 2;
//transfers-source 10.0.0.1; //local interface
// uncomment the following lines to turn on DNS forwarding,
// and change the forwarding ip address(es) :
// forward first; //only;
// forwarders {
// 1.0.0.1;
// };
// to allow only specific hosts to use the DNS server:
allow-query {
10.0.0.0/24;
};
allow-transfer {
10.0.0.2;
};
blackhole {
10.0.0.100;
};
//listen-on-v6 { none; };
listen-on port 53 {
10.0.0.1;
};
// if you have problems and are behind a firewall:
// query-source address * port 53;
pid-file "/var/run/named/named.pid";
};
/*
security key for DNS
to create in BIND9 key tipe:
# dnssec-keygen -a HMAC-MD5 -b 256 -n USER DNS-UPDATER
*/
include "/etc/bind/dns-updater.key";
include "/etc/bind/rndc.key";
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "pri/localhost.zone";
allow-update { none; };
notify no;
};
zone "linux.kindom" IN {
type master;
file "pri/linux.kindom.zone";
allow-update { key DNS-UPDATER; };
notify yes;
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "pri/0.0.127.zone";
allow-update { none; };
notify no;
};
zone "0.0.10.in-addr.arpa" IN {
type master;
file "pri/0.0.10.zone";
allow-update { key DNS-UPDATER; };
notify yes;
};
logging {
channel update_debug {
file "/var/log/bind/update-debug.log";
severity debug 3;
print-category yes;
print-severity yes;
print-time yes;
};
channel security_info {
file "/var/log/bind/named-auth.info";
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category update { update_debug; };
category security { security_info; };
};
Детально: ?Налаштовуємо DNS.
Запуск серверу
Якщо у вас Gentoo, то перед завантаженням DHCP можна відредагувати конфігурацію самого сервісу в файлі /etc/conf.d/dhcp, для запуску його в ізольованому місці:
$ cat /etc/conf.d/dhcp
# Configure which interface or interfaces to for dhcp to listen on
# list all interfaces space separated.
IFACE="eth0"
# Insert any other options needed
DHCPD_OPTS="-q"
# If you wish to run dhcp in a chroot, run:
# ebuild /var/db/pkg/net-misc/<dhcp version>/<dhcp-version>.ebuild config
# and un-comment the following line.
# You can specify a different chroot directory but MAKE SURE it's empty.
CHROOT="/chroot/dhcp"
# If you need name resolution under a chroot, uncomment the following:
export LD_PRELOAD="/usr/lib/libresolv.so /usr/lib/libnss_dns.so"
та виконати:
ebuild /var/db/pkg/net-misc/dhcp-3.0.1-r1/dhcp-3.0.1-r1.ebuild config
Увага, потрібно вказати версію саме того DHCP, що встановлений!
Тепер нарешті настав час запуску DHCP.
# /etc/init.d/dhcp start
Для автоматичного завантаження сервера при старті, виконуємо:
# rc-update add dhcp default
Коли ви змінюєте конфігурацію, сервер потрібно перевантажити:
# /etc/init.d/dhcpd restart
Налаштування клієнтських комп'ютерів на конфігурацію з допомогою DHCP
Дуже важливо, щоб була ввімкнена динамічна конфігурація ядра, інакше потрібно перезібрати ядро з його підтримкою див: Компіляція ядра GNU/Linux. Додатково додайте:
Networking --->
[*] Networking support
Networking options --->
..............
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
[*] IP: RARP support
.............
File systems --->
.........
Network File Systems --->
<*> NFS file system support
[*] Provide NFSv3 client support
[*] Provide client support for the NFSv3 ACL protocol extension
[ ] Provide NFSv4 client support (EXPERIMENTAL)
[ ] Allow direct I/O on NFS files (EXPERIMENTAL)
..........
[*] Root file system on NFS
Детальніше можна прочитати у Встановлення бездискових робочих станцій (вузлів)
Можливі помилки та шляхи їх вирішення
Якщо отримуєте помилку:
no free leases on subnet LOCAL-NET
значить сервер відповідає вірно, але погано налаштований.
Читаємо логи, аналізуємо і виправляємо :-)
Література
- RFC 2131 R. Droms, "Dynamic Host Configuration Protocol", 3/97.
Supersedes RFC 1541 and RFC 1531.
Note that some of the references in this FAQ are to RFC 1541: I'll update them when I get a chance.
-- Author - RFC 1534 R. Droms, "Interoperation Between DHCP and BOOTP", 10/08/1993.
- RFC 2132 S. Alexander, R. Droms, "DHCP Options and BOOTP Vendor Extensions", 3/97. Supersedes RFC 1533.
- RFC 2136, RFC 2137, RFC 2300
--Svyat 23:32, 27 серп 2005 (EEST)