Настроить выдачу IP-адресов DHCP-сервером LBinet

Когда абонент пытается подключиться к интернету, система идентифицирует его и выдаёт IP-адрес в соответствии с настройками.

Определять учётные записи и выделять им IP-адреса с помощью LBinet можно на основе:

  • привязанного MAC-адреса;
  • порта оборудования. В этом случае информация о порте передаётся в DHCP опции 82. В ней может быть передан:

Настроить выдачу IP-адресов по MAC-адресам

АСР LANBilling получает от абонентского устройства запрос DHCP-Discover и проверяет, кому принадлежит MAC-адрес этого устройства.

Если удаётся найти активную учётную запись с таким MAC-адресом, то система выдаёт IP-адрес.

  • Статический — если он назначен в учётной записи.
  • Динамический — если в учётной записи не назначен IP-адрес.
Как настроить
  1. Добавьте NAS.

  2. Добавьте подсети в форме RADIUS-агента. В настройках подсетей в поле «NAS» выберите «Все». Из этих сегментов система будет выдавать абонентам IP-адреса.

  3. Задайте параметры DHCP-сервера в RADIUS-агенте.

  4. В учётных записях должны быть указаны MAC-адреса абонентских устройств. Добиться этого можно несколькими способами.

  5. В учётных записях можно назначить статические IP-адреса и связать их с MAC-адресами.

Настроить выдачу IP-адресов по DHCP опции 82

Убедитесь, что ваше оборудование поддерживает работу с DHCP опцией 82 и что в нём настроена передача этих данных. Затем можно задать параметры в АСР LANBilling.

Порядок действий зависит от того, как вам необходимо определять учётные записи:

Идентификатор коммутатора и порта

АСР LANBilling получает от абонентского устройства запрос DHCP-Discover и проверяет значение DHCP option 82. В ней передаётся MAC-адрес и номер порта операторского устройства.

Если удаётся найти активную учётную запись, к которой привязан такой порт, то система выдаёт IP-адрес.

  • Статический — если он назначен в учётной записи.
  • Динамический — если в учётной записи не назначен IP-адрес.

Кроме того, при запросе система определяет MAC-адрес абонентского устройства. Он тоже может участвовать в идентификации.

Как настроить
  1. Добавьте операторские устройства в систему и укажите для каждого значение опции Agent-Remote-Id — MAC-адрес без разделителей. Сгруппируйте устройства. Например, по районам города.

  2. Добавьте NAS.

  3. Добавьте подсети в настройках RADIUS-агента. Из них система будет выдавать абонентам IP-адреса.

    Каждую подсеть свяжите с той или иной группой устройств. IP-адреса из подсети будут выдаваться группе устройств, с которой она связана.

  4. Задайте параметры DHCP-сервера в RADIUS-агенте.

  5. Привяжите к учётным записям порты коммутаторов.

  6. В учётных записях можно назначить статические IP-адреса и связать их с MAC-адресами.

Атрибуты

Данные со всех устройств приходят либо в бинарном, либо в текстовом формате.

Если данные приходят в бинарном виде, использовать эти атрибуты:

  • Redback-Agent-Remote-Id: 6 байт с конца — MAC-адрес коммутатора;
  • Redback-Agent-Circuit-Id: 1 байт с конца — номер порта.

Если данные приходят в текстовом виде, использовать эти атрибуты:

  • Cisco-AVPair:
    • remote-id-tag: 12 символов с конца — MAC-адрес коммутатора;
    • circuit-id-tag: 2 символа с конца — номер порта.

Также могут использоваться другие атрибуты — в зависимости от производителя оборудования. Правила их разбора описаны в документации вендора.

  • DHCP-Relay-Agent-Information

  • ERX-Dhcp-Options

  • HW-DHCP-Option

Формат данных

Для коммутаторов:

  • Remote-id — MAC-адрес коммутатора, без разделителей;
  • Circuit-id — номер порта содержится в последнем байте.

Для GPON:

  • Remote-id — MAC-адрес устройства, без разделителей;
  • Circuit-id — номер порта OLT и номер ONT в этом порту. Разбор параметров атрибута Circuit-id настраивается через GPON_REGEX.

Идентификатор пары VLAN

АСР LANBilling получает от абонентского устройства запрос DHCP-Discover и проверяет значение DHCP опции 82. В ней передаётся идентификатор пары VLAN.

Если удаётся найти активную учётную запись, которая относится к этой паре VLAN, то система выдаёт IP-адрес.

  • Статический — если он назначен в учётной записи.
  • Динамический — если в учётной записи не назначен IP-адрес.
Как настроить
  1. Добавьте NAS, укажите их IP-адреса.

  2. Создайте карточки NAS в разделе Inventory. Укажите для них те же IP-адреса, что и в настройках RADIUS-агента.

  3. Свяжите NAS в настройках агента с карточкой в разделе Inventory.

  4. Создайте группу NAS.

  5. Добавьте коммутаторы в разделе Inventory. Их также можно сгруппировать — например, по районам города.

  6. Добавьте подсети в настройках RADIUS-агента. Из них система будет выдавать абонентам IP-адреса.

    Каждую подсеть свяжите с той или иной группой устройств. IP-адреса из подсети будут выдаваться группе устройств, с которой она связана.

  7. Создайте VLAN.

  8. Свяжите порты коммутаторов:

    • с нужными VLAN;
    • с учётными записями.

    Через порт устройства настраивается связь учётной записи с VLAN. Сами порты и их номера не участвуют в поиске учетной записи — они используются только как связующее звено.

  9. Настройте отправку RADIUS-атрибутов. Выберите, какой группе NAS передавать тот или иной атрибут.

  10. Задайте параметры DHCP-сервера LBinet в RADIUS-агенте.

  11. В учётных записях можно назначить статические IP-адреса.

Форматы данных

Авторизация по VLAN в АСР LANBilling доступна для оборудования:

Формат данных зависит от производителя оборудования.

Ericsson SmartEdge
QinQ Tunnel VLAN
NAS-Port-Id = <slot>/<port> vlan-id <outer_vlan>:<inner_vlan> clips <sess-id>

Пример:
NAS-Port-Id = 4/1 vlan-id 1001:189 clips 54345
NAS-Port-Id = <slot>/<port> vlan-id <outer_vlan> clips <sess-id>

Пример:
NAS-Port-Id = 2/4 vlan-id 2456 clips 4543

Регулярное выражение: vlan-id ([0-9]+)(:([0-9]+))? clips

Huawei
QinQ Tunnel VLAN
NAS-Port-Id = <slot>/<port> vlanid <outer_vlan>:<inner_vlan> clips <sess-id>

Пример:
NAS-Port-Id = 1/6 vlanid 108:439 clips 96
NAS-Port-Id = <slot>/<port> vlanid <outer_vlan> clips <sess-id>

Пример:
NAS-Port-Id = 2/5 vlanid 4 clips 8

Регулярное выражение: vlanid ([0-9]+)(:([0-9]+))? clips

Juniper
QinQ Tunnel VLAN
NAS-Port-Id = interface-type-slot/adapter/port.subinterface:<outer_vlan>-<inner_vlan>

Пример:
NAS-Port-Id = xe-2/0/3.demux0.3221348601:2810-916
NAS-Port-Id = interface-type-slot/adapter/port.subinterface:<outer_vlan>

Пример:
NAS-Port-Id = ae1.demux0.3221225472:2500

Регулярное выражение: .*:([0-9]+)-([0-9]+)$

Cisco
QinQ Tunnel VLAN
NAS-Port-Id = NAS_slot/NAS_subslot/NAS_port/<inner_vlan>.<outer_vlan>

Пример:
NAS-Port-Id = 0/0/1/101.1000
NAS-Port-Id = NAS_slot/NAS_subslot/NAS_port/<outer_vlan>

Пример:
NAS-Port-Id = 0/1/0/1602

Регулярное выражение: ([0-9]+/){3}(([0-9]+)\.)?([0-9]+)

Linux
QinQ Tunnel VLAN
NAS-Port-Id = <interface_name>.<outer_vlan>.<inner_vlan>

Пример:
NAS-Port-Id = enp0s3.1003.687
NAS-Port-Id = <interface_name>.<outer_vlan>

Пример:
NAS-Port-Id = eth6.876

Регулярное выражение: [A-Za-z0-9]{1,}.([0-9]+).([0-9]+)

СКАТ DPI
QinQ Tunnel VLAN
NAS-Port-Id = <outer_vlan>/<inner_vlan>

Пример:
NAS-Port-Id = 708/209
NAS-Port-Id = <outer_vlan>

Пример:
NAS-Port-Id = 589

Регулярное выражение: ([0-9]+)/([0-9]+)

Пример: тестовый RADIUS-запрос Access-Request с Nas-Port-Id.

В системе должен быть установлен radclient из freeradius-utils.

echo 'Nas-Port-Id="2/1 vlan-id 3002:1277 clips 131210"' | radclient -x 127.0.0.1:1812 auth secret