Имеется компьютер с Ubuntu со статическим ip адресом, заданным руками.
Нужно сделать так, чтобы он автоматически получал этот же адрес по DHCP. Адрес (в данном случае) даже лучше, чтобы он был статическим, но вот нужно, чтобы компьютер получал статические маршруты и добавлял их в свою таблицу маршрутизации. (Прописать маршруты можно, создав скрипт, или же внеся марштут в конфигурационный файл).
Устанавливаю DHCP сервер
ddns-update-style none;
###########################################################
option classless-static-route code 121 = array of unsigned integer 8;
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; # Максимальное время аренды в секундах
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 # имя интерфейса
=====================
На клиенте:
$ 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-адреса, можно узнать, выполнив команду:
bc:ae:c5:30:13:a5
Проверка:
Перестартовываю сетевые интерфейсы:
192.168.1.5
workstation.marley.local
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
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;
shared-network “foo” { subnet x.x.x.0 netmask 255.255.255.0 { }
}