Dhcphosts

Модуль управления DHCP сервером и ведения статических адресов абонентов
Модуль автоматически создаёт конфигурационный файл для DHCP сервера и вносит в него всех пользователей системы, в которых активизирован сервис DHCP.

Возможности

  • Автоматическое создание конфигурационного файла ISC DHCP
  • Привязка IP к MAC
  • Передача пользователям дополнительных маршрутов
  • Система гостевого входа
  • Option 82 (Vlan, PORT, Switch IP, Client MAC)
  • static arp, ipguard (FreeBSD), ipsentinel (Linux)
  • Управление DHCP на удалённом сервере
  • Мониторинг выданных адресов
  • Использование нескольких серверов доступа
  • Гостевой вход
  • Авто активация и включение активных абонентов (при использовании вместе с модулем Ipn)
  • Freeradius DHCP - Иновационная система управления адресами

Установка

Создать таблицы в базе.

# mysql --default-character-set=utf8 -D abills < db/Dhcphosts.sql

Подключение модуля. abills/libexec/config.pl

@MODULES = (
          'Dhcphosts'
          );

Настройка ISC DHCP


Настройка ISC DHCP

Проверка работоспособности

Сообщения

Jan 19 17:12:28 null dhcpd: DHCPDISCOVER from 00:07:e9:19:72:1b via fxp0: network ne3: no free leases

Пользователь не может авторизироваться, так как его MAC не в базе.

Jan 19 18:08:19 null dhcpd: DHCPDISCOVER from 00:07:e9:19:72:1b via fxp0
Jan 19 18:08:19 null dhcpd: DHCPOFFER on 10.128.10.10 to 00:07:e9:19:72:1b via fxp0
Jan 19 18:08:19 null dhcpd: DHCPREQUEST for 10.128.10.10 (10.128.0.1) from 00:07:e9:19:72:1b via fxp0
Jan 19 18:08:19 null dhcpd: DHCPACK on 10.128.10.10 to 00:07:e9:19:72:1b via fxp0

Пользователь успешно подключился

Ведение лога в базе данных (DHCP История)

# ln -s /usr/abills/Abills/modules/Dhcphosts/dhcp_log2db.pl /usr/abills/libexec/dhcp_log2db.pl

FreeBSD:
правим /etc/syslog.conf

если есть

!dhcpd
*.* /var/log/dhcpd.log

то удаляем и вставляем

!dhcpd
*.*   |/usr/abills/libexec/dhcp_log2db.pl

Linux:
/etc/rc.local

tail -F /var/log/dhcpd.log | /usr/abills/libexec/dhcp_log2db.pl
# cd /usr/abills/libexec/
# ln -s ../Abills/modules/Dhcphosts/dhcp_log2db.pl
# killall -1 syslogd

sudo

sudo будет использоваться для переконфигурации сервера.

# cd /usr/ports/security/sudo && make && make install && make clean

Прописываем возможность запуска сервиса системой. /usr/local/etc/sudoers

# Для FreeBSD: 
#Allow dhcpd operation without password for webserver user
www   ALL = NOPASSWD: /usr/local/etc/rc.d/isc-dhcpd

Option 82

При использовании Options 82 коммутаторы заводятся в системе как сервера доступа (NAS).
/ Система/ Сервер доступа/
Необходимые параметры:

  • IP адрес. Если у коммутатора нет IP адреса можно использовать несуществующий так как он не принимает участия в авторизации
  • Название
  • Тип сервера доступа

other

  • указать MAC адрес коммутатора в настройках NAS.

дополнительные настройки
Запросе IP адреса система по умолчанию проверяет следующие параметры:

  • MAC коммутатора
  • Порт коммутатора
  • Vlan клиента
  • MAC клиента если включена опция $conf{DHCPHOSTS_O82_USE_MAC}=1;

если параметр не прописан в билинге он игнорируется и по нему проверка не происходит

При использовании данной опции параметры конфигурации сетей должны быть не отмеченными

Deny unknown clients:	
Server is authoritative for this shared network:	

Для использования индивидуальных настроек классов авторизации пользуйтесь шаблоном (Правку шаблона осуществлять только через / Система/ Другое/ Шаблоны ). Система использует данный шаблон только при включённой опции $conf{DHCPHOSTS_O82_CLASS_TPL}=1;

dhcphosts_dhcp_conf_o82_class.tpl

Если используются коммутаторы с разными параметрами Option 82 нужно создать несколько правил авторизации разделив их параметром or
Пример:

Dhcphosts_dhcphosts_dhcp_conf_o82_class.tpl

# LOGIN: %LOGIN%
class \"%OPTION82_NAS_NAME%-%OPTION82_NAS_MAC%-port-%OPTION82_NAS_PORT%\" { match if (substring(option agent.circuit-id, 24, 14) = \"%OPTION82_NAS_MAC%\" 
     and substring(option agent.circuit-id, 39, 5) = \"%OPTION82_NAS_PORT%\" 
     and  substring(option agent.circuit-id, 57, 3) = \"%CLIENT_VLAN%\")  
  or ( substring(option agent.circuit-id, 54, 2)=\"%CLIENT_VLAN%\" 
     and substring(option agent.circuit-id, 48, 5) = \"%OPTION82_NAS_PORT%\" 
     and substring(option agent.circuit-id, 35, 12) = ucase(\"%OPTION82_NAS_MAC%\"));
 }

Структура шаблона конфигурации dhcpd.conf

Dhcphosts_dhcphosts_dhcp_conf_main.tpl главный конфигурационный файл в него вносятся все общие данные

а также 3 секции

  1. %OPTION82_CLASS% - секция выражений Options 82 (dhcphosts_dhcp_conf_o82_class.tpl)
  2. %NETWORKS% - Секция DHCP сетей (dhcphosts_dhcp_conf_subnet.tpl)
  3. %HOSTS% - секция статических хостов (dhcphosts_dhcp_conf_host.tpl)

Примеры шаблонов авторизации

Для foxgate-s-6224-s2

# LOGIN: %LOGIN%
class "%OPTION82_NAS_NAME%-%OPTION82_NAS_MAC%-port-%OPTION82_NAS_PORT%" {        match if option agent.circuit-id="Vlan%CLIENT_VLAN%+Ethernet0/0/%OPTION82_NAS_PORT%" and option agent.remote-id="%OPTION82_NAS_MAC%";
}

Лог

Если все правильно настроено в логе DHCP сервера Вы должны видеть следующие сообщения: /var/log/dhcpd.log

Oct 19 18:26:36 billing dhcpd: DHCPDISCOVER from 00:13:77:34:5f:a8 via vlan3
Oct 19 18:26:37 billing dhcpd: DHCPOFFER on 172.23.1.55 to 00:13:77:34:5f:a8 (Druid) via vlan3
Oct 19 18:26:40 billing dhcpd: Lease for 172.23.1.55 is connected to interface 0/3 (add 1 to port number!), VLAN  on switch 1:32
Oct 19 18:26:40 billing dhcpd: Lease for 172.23.1.55 raw option-82 info is CID: 0.3 AID: ac.17.1.32
Oct 19 18:26:40 billing dhcpd: DHCPDISCOVER from 00:13:77:34:5f:a8 (Druid) via vlan3

Ошибки ISC-DHCP

Ошибки которые отображаются в файле /var/log/dhcpd.log

  • Все сделал DHCP стартовал но не раздаёт адреса.

Скорее всего у Вас не одна из сетей не настроена слушать запросы на Ваших интерфейсах.

Алгоритм поиска ошибок: 1. перезапустить isc-dhcp (проверить слушает ли на каком-нибудь интерфейсе)

# service isc-dhcp restart

Ошибка:

No subnet declaration for em1 (no IPv4 addresses).
** Ignoring requests on em1.  If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface em1 is attached. **
  • Не прописаны подсети для клиентов. Писать в '/usr/local/etc/dhcpd.conf'
  • Проверить прописан ли IP (alias) для указаного интерфейса в указаной подсети.

2. проверить лог '/var/log/dhcpd.log' (или log.messages)

3. Сделать дамп интерфейса:

tcp-dump port 67
tcpdump -i ВАШ_ИНТЕРФЕЙС -n port 67
  • Пересечение адресов
/usr/local/etc/dhcpd.conf line 142: lease 10.133.3.26 is declared twice!
pool { range 10.133.3.26;
                        ^

Проверте не пересекаются ли у Вас ренжи (rage) выдаваемых адресов

IP guard

Дополнительное расширение для модуля Dhcphosts позволяет управлять самостоятельным присвоением IP-адресов пользователями. Сиcтема автоматически формирует список IP/MAC-адресов, с которых и которым можно работать в сети. Все остальные пользователи при подключении к сети получают сообщение, что их сетевой адрес уже используется другим устройством. Список ограничения доступа пере создаётся после изменения данных абонентов и ночным периодиком.

config.pl

$conf{DHCPHOSTS_IPGUARD_FORMAT}=«MAC»; Формат пар для FreeBSD ipguard
MAC - контролировать только MAC
MAC/IP контролировать MAC и IP-связки
$conf{DHCPHOSTS_IPGUARD_DENY_TPL}=«»; Формат записи запрещено для файла конфигурационного ipguard.
Переменные
%IP% - IP адрес
%MAC% - MAC адрес
%LOGIN% - Логин
%DEPOSIT% - Депозит. Появляется только при влючённой опции $conf{DHCPHOSTS_DEPOSITCHECK}
%UID% - ID-пользователя
%EXPIRE% - Дате истечения аккаунта

Примеры:
Linux ipsentinel:
$conf{DHCPHOSTS_IPGUARD_DENY_TPL}='%IP% %MAC% # %LOGIN%; %STATUS%; %DEPOSIT%';
FreeBSD ipguard:
$conf{DHCPHOSTS_IPGUARD_DENY_TPL}=«»;
$conf{DHCPHOSTS_IPGUARD_ACCEPT_TPL}=«»; Формат записи разрешено для файла конфигурационного ipguard.
Примеры:
Linux ipsentinel:
$conf{DHCPHOSTS_IPGUARD_ACCEPT_TPL}='%IP%@!%MAC% # %LOGIN%; %STATUS%; %DEPOSIT%';
FreeBSD ipguard:
$conf{DHCPHOSTS_IPGUARD_ACCEPT_TPL}='%MAC% %IP% # %LOGIN%; %STATUS%; %DEPOSIT%';

Для внесение статических записей / System configuration/ DHCP Networks/ IP guard/ Static/. Правила, тут объявленные, появляются в конце списка общих правил.

FreeBSD

Для ОС FreeBSD программа IP Guard. На базе этой программы и производится контроль.

# cd /usr/ports/security/ipguard && make && make install && make clean
# cp  /usr/local/etc/rc.d/ipguard.sh.sample /usr/local/etc/rc.d/ipguard.sh
# chmod +x /usr/local/etc/rc.d/ipguard.sh

вносим изменения в файлы /usr/local/etc/rc.d/ipguard.sh

iface=fxp1
daemon_flags="-n 2 -u 60 -x -f /usr/abills/var/ipguard"

Запускаем

# /usr/local/etc/rc.d/ipguard.sh start

Для просмотра MAC/IP-пар, которые попали в список разрешённых, нужно открыть меню системы

/ System configuration/ DHCP Networks/ IP guard/

Вид для $conf{DHCPHOSTS_IPGUARD_FORMAT}=«MAC»;

00:07:e9:19:72:1b 0.0.0.0 # Login: aa1
00:07:e9:19:72:12 0.0.0.0 # Login: aa1
00:07:e9:19:72:22 0.0.0.0 # Login: aa1

Вид для $conf{DHCPHOSTS_IPGUARD_FORMAT}=«MAC/IP»;

00:07:e9:19:72:1b 10.128.10.10 # Login: aa1
00:07:e9:19:72:12 10.128.10.11 # Login: aa1
00:07:e9:19:72:22 10.128.10.15 # Login: aa1

Linux

Для ОС Linux программа ipsentinel

Вид:

10.128.0.109@!00:00:00:00:11:00 # aa1 ACCEPT
10.11.11.12@!00:00:00:ee:aa:01 # aa1 ACCEPT
10.0.0.10 00:16:36:a1:6d:75 # aa1 DENY

ARP Static

Занесение статических записей в ARP таблицу

abills/libexec/config.pl

$conf{DHCPHOSTS_IPGUARD_FORMAT}="MAC/IP";
$conf{DHCPHOSTS_RECONFIGURE}="/usr/local/bin/sudo /usr/local/etc/rc.d/isc-dhcpd restart; ".
 '/bin/cat /usr/abills/var/ipguard | /usr/bin/awk \'$1 !~ /#/ { print $2 " " $1 } \' > /usr/abills/var/arp_static ;'.
 ' /usr/local/bin/sudo /usr/sbin/arp -ad ;'.
 ' /usr/local/bin/sudo /usr/sbin/arp -f /usr/abills/var/arp_static ';

/usr/local/etc/sudoers

www   ALL = NOPASSWD: /usr/sbin/arp

Пример управления удалённым сервером доступа

  • Создание dhcp конфигурационного файла на удалённом NAS.
  • Переконфигурация DHPC-сервера.
  • Создание статической ARP таблицы
$conf{DHCPHOSTS_RECONFIGURE}='/usr/bin/scp -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.abills_admin '.
  '/usr/local/etc/dhcpd.conf '.
  'abills_admin\@10.10.20.16:/usr/local/etc/dhcpd.conf; '.
'/usr/bin/scp -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.abills_admin /usr/abills/var/ipguard '.
  'abills_admin\@10.10.20.16:/usr/abills/var/ipguard; '.
'/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.abills_admin abills_admin\@10.10.20.16 "/usr/local/bin/sudo /usr/local/etc/rc.d/isc-dhcpd restart;' .
'/bin/cat /usr/abills/var/ipguard | /usr/bin/awk \'\$1 !~ /#/ { print \$2 \" \" \$1 }\' > /usr/abills/var/arp_static ;'.
' /usr/local/bin/sudo /usr/sbin/arp -ad ;'.
' /usr/local/bin/sudo /usr/sbin/arp -f /usr/abills/var/arp_static "';


Загрузка ARP таблицу на Mikrotik

$conf{DHCPHOSTS_RECONFIGURE}='/bin/cat /usr/abills/var/ipguard | /usr/bin/awk \'\$1 !~ /#/ { print "/ip arp add address=" \$2 " mac-address=" \$1 " interface=Norq-ETH " } \' | /usr/bin/ssh -t -i /usr//abills/Certs/id_rsa.abills_admin abills_admin@10.0.0.3';

чтобы контролировать связки MAC/IP также нужно включить на интерфейса read-only в секции обучения мак адресов

Гостевой аккаунт

Гостевой аккаунт предполагает возможность зарегистрированным и авторизированным (имеющим право пользоваться сетью с учётом их депозита или других параметров) пользователям пользоваться сетью и получать свои статические IP-адреса, в тоже время незарегистрированные и неавторизированные пользователи попадают в гостевую сеть. В последующем нужно настроить гостевую сеть с ограниченным доступом (доступ только к пользовательскому порталу и т.д. ).

Для включения формы заполнения данных пользователем внесите в конфигурационный файл следующие опции.

$conf{DV_IP_DISCOVERY}=«1:129.168.0.0/24;NET_ID:ADDRESS_RANGE»; Регистрация IP/MAC адреса клиента для последующей выдачи статического адреса данному клиенту в сети. Система автоматически ищет следующий свободный адрес и присваивает его клиенту прописывая в таблице адресов DHCP.

NET_ID - в какую сеть регистрировать клиента.

ADDRESS_RANGE - диапазон адресов куда должен попадать незарегистрированный клиент. Если не указать эту опцию все клиенты попадают в общую сеть указанную в первом параметре. Шаблоны сравнения указываются через точку с запятой.
Настройка

/ System configuration/ DHCP Networks/ Создаются две сети для гостевого и для зарегистрированного доступа. В первой сети для гостевого доступа нужно указать рендж выдаваемых IP-адресов.

IP Range: Указываем IP, которые должны выдаваться в гостевом режиме

Dhcphosts. DHCP Guest Account

Для авторизированной сети этот параметр оставить пустым.

Dhcphosts. DHCP Auth Account

Шаблон описания зарегистрированного пользователя dhcphosts_dhcp_conf_host.tpl

# dhcphosts_dhcp_conf_host.tpl
# Login: %LOGIN%
host %HOSTNAME% {
  hardware ethernet %MAC%;
  fixed-address %IP%;
  option routers %ROUTERS%;
  %BOOT_FILE%
  option routers 10.100.20.1;
}

10.100.20.1 - шлюз для зарегистрированных/авторизированных пользователей

leases2db.pl

При использовании DHCP сервера на сервере отдельном от биллинга целесобразно использовать для синхронизации с биллингом и мониторинга - агент экспорта leases2db.pl, который занимается експортом данных из dhcpd.leases в базу данных биллинга.
Проверка и экспорт данных осуществляется через промежуток времени указанны при старте (по умолчанию каждые 20 секунд) при условии что за этот промежуток времени был изменён файл dhcpd.leases.
leases2db.pl должен быть запущен на сервер с DHCP сервером. Агент работает как демон и автоматически проверяет при старте присутствие дублирующих процессов.
Установка:

# cd /usr/abills/libexec/
# ln -s ../Abills/modules/Dhcphosts/leases2db.pl

Для старта используется команда

# /usr/abills/libexec/leases2db.pl -d LEASES=/var/db/dhcpd/dhcpd.leases

Стоп /usr/abills/libexec/leases2db.pl

# /usr/abills/libexec/leases2db.pl stop

Параметры:

-d Запустить как демон
-h помощь в использовании программы
LEASES=… путь к dhcpd.leases файлу
UPDATE_TIME=… Время обновления
DEBUG=… Режим отладки
NAS_ID= ИД сервера доступа (по умолчанию 0)

Для включения в мониторинге просмотра данной информации нужно указать опцию $conf{DHCPHOSTS_LEASES}='db';

ABillS

Файл конфигурации abills/libexec/config.pl

$conf{DHCPHOSTS_DEPOSITCHECK}=0.00; Указывается сумма на счёту при которой выдавать IP адрес пользователям.
$conf{DHCPHOSTS_EXT_DEPOSITCHECK}=0.00; Указывается сумма на дополнительном счёту при которой выдавать IP адрес пользователям. Данный параметр имеет больший приоритет чем $conf{DHCPHOSTS_DEPOSITCHECK}
$conf{DHCPHOSTS_CONFIG}='/usr/local/etc/dhcpd.conf'; Файл конфигурации для DHCP-сервера.
По умолчанию /usr/local/etc/dhcpd.conf.
Обязательно поставьте на файл права, с которыми работает WEB-сервер.
$conf{DHCPHOSTS_LEASES}='/var/db/dhcpd/dhcpd.leases'; Расположение dhcpd.leases файла для мониторинга выдачи IP адресов. В данный файл не попадают статически прописанные на MAC адрес адреса.
$conf{DHCPHOSTS_LOG_CLEAN_DAYS}=30; Период хранения логов в базе. По умолчанию 30
$conf{DHCPHOSTS_USE_DV_STATUS}=1; Использовать статусы сервиса Internet для модуля Dhcphosts. Статус модуля Dv используется если статус Dhcphosts включено
$conf{DHCPHOSTS_RECONFIGURE}='/usr/local/bin/sudo /usr/local/etc/rc.d/isc-dhcpd restart'; Команда для перезапуска DHCP-сервера. Так, как для запуска сетевого сервиса нужны права суперпользователя (по умолчанию root), система перезапускает демон, используя sudo.

Команда $conf{DHCPHOSTS_RECONFIGURE} также выполняется после изменения параметров учётной записи абонента. При изменении учётной записи абонента система передаёт команде следующие значения переменных щаблона (переменные шаблона должны экранироваться знаками процента с двух сторон %переменна%), а также эти значения устанавливают как переменные окружения .

UID
ID Номер записи DHCP
HOSTNAME
NETWORK
IP
BOOT_FILE
NEXT_SERVER
EXPIRE
DISABLE
COMMENTS
OPTION_82
PORTS
VID
NAS_ID

Пример
Локальный Linux (Ubuntu/Debian) сервер

  $conf{DHCPHOSTS_CONFIG}='/etc/dhcp/dhcpd.conf';
  $conf{DHCPHOSTS_LEASES}='db';
  $conf{DHCPHOSTS_RECONFIGURE}='/usr/bin/sudo /etc/init.d/isc-dhcp-server restart';

Сети

Управление абонентами

Включение шейпера (ipoe_shapper)

Ограничение пропускаемой полосы занимается /usr/abills/libexec/ipoe_shapper.pl.
Программа работает в режиме демона и каждый 10 секунд проверяет нет ли новых сессий в мониторинге биллинга и заносит IP адреса новых абонентов в таблицы шейпера.
В режиме IPN_SHAPPER программа для каждого нового подключения выполняет поднятие правил шейпера програмами IPN управления ($conf{IPN_FW_START_RULE}). Также в этом режиме выполняются правила $conf{IPN_FILTER}.

Программа не следить за депозитом или возможность доступа абонента, она выполняете поднятие шейпера для активных абонентов. Функции авторизации возложены на авторизатор, а функции слежения на программу billd .

Правила шейпера при завершении сесии возложены на контролер сессий billd.

Параметры

-d Запускать в режиме демона. (По умолчанию включено)
LOG_FILE=… Путь к файлу логов
UPDATE_TIME=… Период проверки новых подключений указывается в секундах (По умолчанию 10 секунд)
DEBUG=… Режим отладки 1-7 (Default: 8)
NAS_IDS= Номер сервера доступа для которого поднимать правила шейпера (По умолчанию: Все)
IPN_SHAPPER Включить режим поднятия шейпера правилами IPN
# cd /usr/abills/libexec/
# ln -s ../Abills/modules/Dhcphosts/ipoe_shapper.pl ipoe_shapper.pl 

Включение:
перед включением убедитесь что скрипт поднятия шейпера установлен (/usr/local/etc/rc.d/shaper_start.sh)

/etc/rc.conf

abills_dhcp_shaper="YES"
abills_dhcp_shaper_nas_ids="1,2"  #список серверов доступа для контроля программой ipoe_shaper

интерфейс шейпера ( опционально )

abills_ipn_if='em0';

другие параметры shaper_start.sh

Отслеживать ошибки выдачи адресов можно через меню
/ Отчёт/ Internet/ Ошибка/

Привязка к серверам доступа осуществляется используя параметр DHCP-Gateway-IP-Address как IP сервера доступа, если этот параметр не найден используется параметр DHCP-Server-IP-Address. Будьте внимательны параметр Radius NAS-Identifier не учитывается и если у вас несколько серверов с одинаковым IP система может использовать любой их них в случайном порядке

Список ошибок авторизации

  • User Not Exist '00:11:22:11:11:a1' /0not Option82

Скорее всего запрос к серверу идёт не по Option 82, а через DHCP Broadcast. Нужно настроить коммутатор на Option 82 (Настройка оборудования) данное сообщение выдаётся когда система не может найти ни один из ниже указанных параметров в запросе

DHCP-Relay-Agent-Information
DHCP-Relay-Circuit-Id
DHCP-Relay-Remote-Id
  • Can't find Switch MAC '00:11:22:11:11:a1' or user port '24'

Не найден коммутатор или подключенный абонент к данному коммутатору. Если используется автворизация по MAC тогда только коммутатор.
Коммутаторы заводятся в секции /Сиcтема/ Сервер доступу/

  • Can't find MAC, Switch MAC '00:11:22:11:11:a1' port '24'

Авторизация по MAC. MAC абонента не обнаружен

Мониторинг активных сессий

/ Мониторинг/ Internet/

Отображаются активные сессии абонентов


Мониторинг резерва адресов

/ Мониторинг/ DHCP/

Отображаются зарезервированные IP адреса и параметры подключения абонентов: коммутатора, порт, VLAN, MAC адрес

Настройка оборудования

dhcp_tools.pl

Набор дополнительных утилит для работы с DHCP

  • автоматическое занесения IP/MAC адресов пользователей в модуль Dhcphosts.

Работает в двух режимах:

  1. Занесение IP/MAC связок пользователей из файла.

Формат файла:

LOGIN[TAB]IP[TAB]MAC[TAB]PORTS[TAB]NAS_ID[TAB]OPTION_82[TAB]VID[TAB]HOSTNAME
  1. Режим ARP монитора система вытаскивает IP/MAC связки из arp таблицы сравнивает их с онлайн пользователями и заносит в базу
  • Перенос абонентов из одной сети в другую.
# dhcp_tools.pl ADDRESS_SHIFT="NEW_NETWORK_ID:SRC_NET:DST_NET" 
NEW_NETWORK_ID номер в какую сеть перенести абонентов
SRC_NET Поточная сеть абонентов. Маска сети /24 (255.255.255.0)
DST_NET Новая сеть абонентов. Маска сети /24 (255.255.255.0)

Аргументы программы

NETWORK ИД сети для ARG grab.
FILE Режим парсера файла
ADDRESS_SHIFT Перенос абонентов из одной сети в другую
DEBUG Режим отладки

Ошибки

  • Dlink DES 3026 номера портов начинаются с 0 до 25

Дополнительно