Просмотр Исходного

{toc}

h1. Настройки DHCP-сервера

Для работы сервиса необходимо:

# Включить службу
# Натсроить параметры
# Добавить подсети

{note}В настройках DHCP сервера должна быть указана подсеть, которой принадлежит хотя-бы один локальный интерфейс, иначе DHCP не запустится.
Если вы хотите настроить [DHCP с Option 82|CarbonBilling:Настройка DHCP с opt 82 на примере коммутатора D-Link] и вам не нужны сабнеты, попадающие под локальные интерфейсы, то обязательно создать subnet *<IP_адрес_локального_интерфейса>/32* без диапазона{note}
{note}Если адрес коммутатора не в сети абонента, то обязательно создать subnet *<IP_адрес_Коммутатора>/32* без диапазона{note}


h2. Включение и настройка DHCP сервера

Для настройки DHCP-сервера зайдите в настройках системы сбора статистики на вкладку dhcp.
Для включения DHCP сервера установить галочку: "Включить DHCP-сервер"

Задайте значения:
* *max-lease-time(в секундах)* - время с последнего продления через которое у клиента закончится аренда;
* *default-lease-time(в секундах)* - время через которое клиент будет продлять аренду адреса.
* *Номера интерфейсов DHCP (список)* - Список интерфейсов сервера, которые будет слушать служба DHCP. Заполняется списком. Пример:
{code}
eth0 eth2 eth3.10 eth3.20
{code}

!dhcp1.png|border=0!


h2. Добавление подсетей

Перейдите на вкладку "DHCP subnets"

Заполните поля:

* DHCP SUBNET - адрес сети(задается в формате <subnet address>/<subnet mask>);
* DNS сервер для клиентов - dns-сервер, который будет выдаваться клиентам в данной подсети;
* DHCP шлюз для клиентов - Адрес основного шлюза в данной подсети.
* DHCP Range для дин. раздачи - Диапазон IP адресов, которые DHCP сервер будет выдавать абонентам, при отсутствии дополнительных привязок (mac или opt82). Прописывается через дефис, например 192.168.1.20-192.168.1.50
* Маршруты для клиентов (список) - список статических маршрутов. Прописывается в виде "10.1.1.0/25 10.1.1.1;10.20.1.0/25 10.20.1.1"


!dhcp2.png|border=0!

h2. MAC привязки

Привязка MAC адреса к конкретному IP адресу создается в [учетной записи|CarbonBilling:Учетная запись. Создание и изменение.] абонента:

!mac.png|border=0,width=400!

Привязку можно сделать двумя способами:
* В поле MAC прописать mac-адрес абонентского устройства и нажать кнопку "Сохранить".
* Нажать кнопку "Получить mac", после этого mac-адрес запрашивается с оборудования и прописывается в этом поле. Нажать кнопку "Сохранить". При этом должно быть соблюдено условие: на абонентском устройстве должен быть уже прописан ip адрес, который соответствует адресу в ip учетной записи.

h2. Настройка Option 82

Для включения опции 82 *отключите* опцию "OPT 82. Создавать статические mac привязки вместо vlan+port"

Интеграция с коммутаторами описана в [этой части документации|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=52428815]

h3. Динамическая раздача с использованием Option 82

Динамическая раздача с использованием опции 82 пригодится для настройки HotSpot - так адреса из выделенного пула будут получать только абоненты за определённым портом коммутатора и/или в нужном VLAN.

Для настройки [создайте пул IP адресов|CarbonBilling:Пулы IP адресов] в справочниках биллинга. Возможные параметры опции 82 (указываются через запятую):
* *vlan* - VLAN абонента
* *switch_port_num* - номер порта абонента

Например: {code}vlan=225,switch_port_num=23{code}

Парсинг опции 82 зависит от коммутатора, который выбран в пуле.

!dyn1.png|border=0,width=600!

После установки опции "*Gen dhcp subnet*" данный пул будет создан пул в настройках DHCP:

!dyn2.png|border=0,width=600!

h1. Отладка и решение проблем

Для отладки Вы можете использовать:
* Лог DHCP-сервера
{code}tail -f /app/collector/var/log/messages{code}
* Дамп трафика в момент запроса и получения адреса абонентами: приведенная ниже команда соберёт дам по портам DHCP и одновременно будет выводить содержимое пакетов
{code}tcpdump -i any port 67 or port 68 -U -w - | tee dhcp_`date +%Y-%m-%d_%H%M`.pcap | tcpdump -vr -{code}

h2. Проблема: клиенты получают неправильный DNS-сервер

Эта проблема встречается на Windows XP и Windows 7 - в ряде случаев клиенты получают неправильный DNS-сервер. Причина в пакете DHCPINFORM.

Если ОС ранее уже получала адрес от DHCP-сервера или он был настроен статический и потом переключен на динамику, в первую очередь будет отправлен запрос DHCPINFORM - это широковещательный запрос и сервер отвечает на на него сразу ответом DHCPACK.

Проблема здесь в том что запрос отправляется широковещательно и тут возможны две причины почему DNS-адрес (а возможно и другие параметры) будет неверным:
* Если в сети несколько DHCP-серверов с похожими конфигурациями, очтет от неправильного сервера может достичь абонента раньше
* Если запрос проходит через RELAY, на нём может быть настроено какое-то особенное поведение, например кеширование ответов или что-то в этом роде.

Для решения проблемы можно:
# Отключить отправку DHCPINFORM через реестр:, чтобы ОС запрашивала адрес пакетом DHCPDISCOVER
{code:title=Куст реестра}HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{Interface GUID}{code}
Здесь *Interface GUI* это ID сетевого интерфейса. Параметры ключа:
#* Тип: DWORD
#* Имя: UseInform
#* DWORD значение: 0
# Отключить ответ на DHCPINFORM на всех DHCP-серверах кроме нужного
# Настроить фаерволы, DHCP-сервера и релеи таким образом чтобы каждый клиентский хост имел доступ только к одному DHCP-серверу