Настройка DHCP сервера для передачи статических маршрутов клиентам
Имеется компьютер с Ubuntu со статическим ip адресом, заданным руками.
Нужно сделать так, чтобы он автоматически получал этот же адрес по DHCP.
Адрес (в данном случае) даже лучше, чтобы он был статическим, но вот нужно, чтобы компьютер получал статические маршруты и добавлял их в свою таблицу маршрутизации. (Прописать маршруты можно, создав скрипт, или же внеся марштут в конфигурационный файл).
Устанавливаю DHCP сервер
# yum install -y dhcp
# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bkp
# vi /etc/dhcp/dhcpd.conf
# Динамическое обновление DNS, обязательная строчка без нее dhcpd не запустится
# none - не использовать динамическое обновление
# ad-hoc - устарело, и не должно использоваться
# interim - позволяет обновлять DNS записи
ddns-update-style none;
###########################################################
# Включение возможности передачи маршрутов по DHCP
# Windows Vista и другие не Windows DHCP клиенты:
option classless-static-route code 121 = array of unsigned integer 8;
# Windows 2000/XP DHCP клиенты:
option classless-static-route-ms code 249 = array of unsigned integer 8;
###########################################################
# Описание подсети
subnet 192.168.1.0 netmask 255.255.255.0 {
# Не обязательные параметры
default-lease-time 600; # Время аренды в секундах
max-lease-time 7200; # Максимальное время аренды в секундах
# Параметры передаваемые dhcp-клиентам
option subnet-mask 255.255.255.0; # Маска подсети
option broadcast-address 192.168.1.255; # Адрес широковещательной
# рассылки
option routers 192.168.1.1; # Адрес шлюза
option domain-name-servers 192.168.1.1; # Список DNS-серверов
# через запятую
option domain-name "fmarley.local"; # Суффикс домена
#range 192.168.1.10 192.168.1.100; # Область выдаваемых адресов
############################################
# Маршруты:
# формат:
# маска,IP,адрес,сети, IP,адрес,шлюза,туда
option classless-static-route 24,192,168,2, 192,168,1,100;
option classless-static-route-ms 24,192,168,2, 192,168,0,100;
# Если нужно указать несколько маршрутов, это можно сделать через запятую.
# option classless-static-route 24,192,168,1, 192,168,0,1, 24,192,168,2, 192,168,0,2, 24,192,168,3, 192,168,0,3;
# option classless-static-route-ms 24,192,168,1, 192,168,0,1, 24,192,168,2, 192,168,0,2, 24,192,168,3, 192,168,0,3;
############################################
ignore unknown-clients;
# Делаю резервирование ip адреса для моего компьютера по mac-адресу:
host workstation { # myhostname - имя хоста
hardware ethernet bc:ae:c5:30:13:a5; # MAC-адрес хоста
fixed-address 192.168.1.5; # Резервируемый IP-адресс
}
}
Если в системе несколько интерфейсов, то указать с каким из них должен работать dhcpd, можно отредактировав файл /etc/sysconfig/dhcpd
DHCPDARGS=eth0 # имя интерфейса
# chkconfig dhcpd on
# service dhcpd start
=====================
На клиенте:
$ sudo su -
#vi /etc/network/interfaces
auto lo
iface lo inet loopback
#auto eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
gateway 192.168.1.1
После настройки DHCP сервера, достаточно разкомментировать строки относящиеся к интерфейсу eth0 для dhcp и закомментировать строки относящиеся к статическому адресу
.
Значением mac-адреса, можно узнать, выполнив команду:
# ifconfig eth0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
bc:ae:c5:30:13:a5
Проверка:
Перестартовываю сетевые интерфейсы:
# /etc/init.d/networking restart
# hostname -I
192.168.1.5
# hostname --fqdn
workstation.marley.local
# route -n | grep 192.168.2.0
192.168.2.0 192.168.1.100 255.255.255.0 UG 0 0 0 eth0
Почитать:
http://www.alsigned.ru/?p=462
http://ospf-ripe.livejournal.com/5488.html?thread=44656#t44656
http://www.linuxmanpages.com/man5/dhcpd.conf.5.php