shipboard89 (shipboard89) wrote,
shipboard89
shipboard89

Dynamic Host Configuration Protocol

Задача: Настроить DHCP сервер, обслуживающий несколько локальных сетей.
Схема сети:

DHCP сервер находится в сети LAN2 и обслуживает клиентов сетей LAN1 и LAN2, маршрутизатор настроен таким образом, чтобы форвардить DHCP запросы от клиетов серверу.

Оборудование:
1) DHCP сервер dhcp3-server на базе Debian Linux 5.0
2) Router на базе Debian Linux 5.0
3) Рабочие станции с запущенными dhcp клиентами
4) Обычные неуправляемые dlink'овские свичи


Как это работает:
Dynamic Host Configuration Protocol - работает по модели клиент/сервер. На транспортном уровне он использует протокол UDP, серверу назначен порт 67, клиенту 68.
Процесс получения настроек клиентом от сервера включает в себя 4 стадии:



1)На первой стадии клиент широковещательно посылает сообщение DHCPDISCOVER с целью обнаружения серверов
находящихся в сети.
2)Получив запрос от клиента, сервер находит в своей базе подходящие настройки и предлагает их клиенту, отправляя ему юникастом DHCPOFFER.
3)Если в сети находится несколько DHCP серверов, клиент может получить несколько сообщений DHCPOFFER, затем он выбирает от какого сервера принять настройки и отправляет широковещательное сообщение DHCPREQUEST в котором говорит какие настройки он решил принять.
4)Выбраный клиентом сервер получает DHCPREQUEST от клиента и в случае, если запрошенный адрес все еще свободен, отправляет ему DHCPACK сообщение, которое по своей сути точно такое же как и DHCPOFFER. В противном случае он отправляет DHCPNACK. Остальные сервера, также получают DHCPREQUEST от клиента, возвращают предложенные настройки обратно в базу и далее безмолвствуют.


Затем клиент с целью проверки делает ARP запрос полученного от сервера ip адреса, и если все окей (не получает ответа), начинает работать с полученными настройками.
В случае, когда сервер находится в другой сети, бродкастные сообщения от сервера получает маршрутизатор, и если он настроен соответствующим образом, он вставляет в запрос свой ip адрес в специальное поле GIADDR (Gateway IP Address) и отправляет модифицированное сообщение DHCP серверу. Сервер получает сообщение, и базируясь на адресе маршрутизатора принимает решение из какого пула брать настройки для клиента.


Конфигурирование:
Linux Router:

1) Ставим пакет для форвардинга DHCP сообщений:

#apt-get install dhcp-helper

2) Запускаем его с соответствующими опциями: -i какой интерфейс слушать, -s адрес сервера
#dhcp-helper -i eth0 -s 192.168.0.1

DHCP-server

1)Ставим DHCP сервер
#apt-get install dhcp3-server

2)В файле /etc/default/dhcp3-server указываем какие интерфейсы слушать:


INTERFACES="eth0"

2)Настраиваем файл /etc/dhcp3/dhcpd.conf. Разберем его построчно:


authoritative;
#если сервер получит DHCPREQUEST предназначенный не для него, а для другого сервера,
#он не будет безмолвствовать ( по дефолту), а отправит клиенту DHCPNACK. Типо для безопасности.

default-lease-time 21600; # 6 hours
max-lease-time 43200; # 12 hours

subnet 192.168.0.0 netmask 255.255.255.224 {
#настройки для сети LAN1
range 192.168.0.2 192.168.0.50; # пул адресов, с какого по какой выдавать
option routers 192.168.0.1; #дефолт gateway для клиентов
option subnet-mask 255.255.255.224; #масква
option broadcast-address 192.168.50.63; #широковещательный адрес
option domain-name-servers 212.1.224.34; #DNS сервер

host clust5 {
hardware ethernet 00:1A:4D:51:E0:63;
fixed-address 192.168.50.85;
}
#хосту clust5 c МАК адресом 00:1A:4D:51:E0:63 присвоить ip адрес 192.168.50.85
}

subnet 10.5.7.0 netmask 255.255.255.0 {
#Настройки для сети LAN1

range 10.5.7.3 10.5.7.240; # allocate IPs within this range

option routers 10.5.7.1; # default gateway
option subnet-mask 255.255.255.o;
option broadcast-address 10.5.7.255;
option domain-name-servers 212.1.224.34;

option netbios-name-servers 10.5.7.45; # WINS
option netbios-dd-server 10.5.7.45; # SMB

}


3) Запускаем сервер
#/etc/init.d/dhcp3-server start

P.S. Dia - хороший редактор для рисования схем сетей =)
Subscribe

  • Desktop

    Интересно, что подумают инопланетяне, пролетая мимо Земли?))) Люблю ночь...и электрический свет

  • Link Aggregation

    Задача: Настроить агрегацию каналов для получения максимальной пропускной способности. Сеть ethernet, топология двойная звезда. Схема сети:…

  • NTP

    Задача: настроить синхронизацию часов компьютеров локальной сети под управлением Linux, с помощью NTP. Оборудование: Сервер:…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments