Пример настройки модема в DOCSIS сети у оператора связи

В данной статье приводится пример кода perl скрипта, который генерирует конфигурационный файл для модема в DOCSIS сети. Аббревиатурой DOCSIS (Data Over Cable Service Interface Specifications) обозначается стандарт передачи данных по телевизионному кабелю, который был принят в 98 году. Стандарт в оригинале предполагает передачу данных до 42/38 Мбит/с в даунстриме (к пользователю) и до 10/9 Мбит/с в апстриме (от пользователя).

Типичная схема DOCSIS сети приведена на рисунке 1.

docsis-modem-config-01.jpg

Рисунок 1

Рассмотрим работу скрипта по шагам:

1. Подготавливаем базовый шаблон (код в скрипте выделен красным цветом), с занесением в него параметров частот апстрима, даунстрима, со стандартными параметрами файрвола (запрет в сети DOCSIS: бродкасты, мультикасты и т.д., разрешаем только самое необходимое). Этот конфигурационный файл создается администратором сети и сохраняется.

2. В цикле, в конфигурацию модема добавляем адреса клиентов, которые будут находиться за модемом (код в скрипте выделен синим цветом). За модемом можно поставить не более пяти IP устройств. Собственно добавив IP адреса, с которых все разрешено, мы фактически обеспечиваем безопасность (не хуже чем ACL PCF) и все это средствами модема, там же генерируем гарантированную и не гарантированную скорость. Имя файла конфигурации должно быть всегда - «макадрес.cm».

3. После генерации записываем конфигурационный файл на TFTP сервер.

Инициализация модема в сети DOCSIS:

1. Включаем модем в сеть HFC;

2. Модем находит апстрим, даунстрим, проверяет соотношение сигнал/шум, настраивается и посылает dhcp запрос;

3. Сервер dhcpd получает запрос на получения IP адреса, предает модему IP адрес и специальные строки для модема (опцию tftp, log server, time server);

4. Модем получив ответ, присваивает IP адрес;

5. Модем запрашивает конфигурационный файл - «макадрес.cm» с tftp сервера, который был передан ранее и применяет его;

6. Модем готов к работе.

Ниже приведен код perl скрипта:

    
#!/usr/bin/perl -w
use DBI;
$prefix="/chroot/rsyncd";
`/usr/bin/mkdir -p ${prefix}/var/cm`;
$dbh=DBI->connect("DBI:mysql:dbname=billing;host=127.0.0.1","billing", "billing") or die "Couldn't connect to database: ".DBI->errstr;
if (defined $ARGV[0]) {
$sth=$dbh->prepare("SELECT vg_id, str_value from vgroups_addons_vals join vgroups using(vg_id) where login = '$ARGV[0]' and name = 'modem_mac'");
}
else { die "LOGIN IS NOT VALID\n";
}
$sth->execute() or die "Cannot execute: ".$sth->errstr();
#$s = int(rand 10000) + 1;
#$config=`mktemp ${prefix}/var/tmp/docsis-$s-XXXX`;
$config=`/usr/bin/mktemp`;
chomp $config;
while(@row=$sth->fetchrow_array) {
$speed = 2048000;
$string = "
Main {
NetworkAccess 1;
ClassOfService {
ClassID 1;
MaxRateDown $speed;
MaxRateUp $speed;
PriorityUp 3 ;
GuaranteedUp 3000;
PrivacyEnable 0;
}
";
$string = $string . "
    
    
SnmpMibObject enterprises.1166.1.19.3.1.25.0            Integer 2;
SnmpMibObject docsDevFilterIpControl.1                  Integer 2;
SnmpMibObject docsDevFilterIpProtocol.1                 Integer 1;
SnmpMibObject docsDevFilterIpStatus.1                   Integer 4;
SnmpMibObject docsDevFilterIpControl.2                  Integer 2;
SnmpMibObject docsDevFilterIpProtocol.2                 Integer 47;
SnmpMibObject docsDevFilterIpStatus.2                   Integer 4;
SnmpMibObject docsDevFilterIpControl.3                  Integer 2;
SnmpMibObject docsDevFilterIpProtocol.3                 Integer 50;
SnmpMibObject docsDevFilterIpStatus.3                   Integer 4;
SnmpMibObject docsDevFilterIpControl.4                  Integer 2 ;
SnmpMibObject docsDevFilterIpDaddr.4                    IPAddress 255.255.255.255 ;
SnmpMibObject docsDevFilterIpDmask.4                    IPAddress 255.255.255.255 ;
SnmpMibObject docsDevFilterIpProtocol.4                 Integer 17 ;
SnmpMibObject docsDevFilterIpDestPortLow.4              Integer 67 ;
SnmpMibObject docsDevFilterIpDestPortHigh.4             Integer 68 ;
SnmpMibObject docsDevFilterIpStatus.4                   Integer 4 ;
SnmpMibObject docsDevFilterIpControl.5                  Integer 1;
SnmpMibObject docsDevFilterIpDestPortLow.5              Integer 445;
SnmpMibObject docsDevFilterIpDestPortHigh.5             Integer 445;
SnmpMibObject docsDevFilterIpStatus.5                   Integer 4;
SnmpMibObject docsDevFilterIpControl.6                  Integer 1;
SnmpMibObject docsDevFilterIpDestPortLow.6              Integer 135;
SnmpMibObject docsDevFilterIpDestPortHigh.6             Integer 139;
SnmpMibObject docsDevFilterIpStatus.6                   Integer 4;
SnmpMibObject docsDevFilterIpControl.7                  Integer 1;
SnmpMibObject docsDevFilterIpDestPortLow.7              Integer 2745;
SnmpMibObject docsDevFilterIpDestPortHigh.7             Integer 2745;
SnmpMibObject docsDevFilterIpStatus.7                   Integer 4;
SnmpMibObject docsDevFilterIpControl.8                  Integer 1;
SnmpMibObject docsDevFilterIpDestPortLow.8              Integer 3127;
SnmpMibObject docsDevFilterIpDestPortHigh.8             Integer 3127;
SnmpMibObject docsDevFilterIpStatus.8                   Integer 4;
SnmpMibObject docsDevFilterIpControl.9                  Integer 1;
SnmpMibObject docsDevFilterIpDestPortLow.9              Integer 1439;
SnmpMibObject docsDevFilterIpDestPortHigh.9             Integer 1439;
SnmpMibObject docsDevFilterIpStatus.9                   Integer 4;
SnmpMibObject docsDevFilterIpControl.10                 Integer 1;
SnmpMibObject docsDevFilterIpDestPortLow.10             Integer 6129;
SnmpMibObject docsDevFilterIpDestPortHigh.10            Integer 6129;
SnmpMibObject docsDevFilterIpStatus.10                  Integer 4;
SnmpMibObject docsDevFilterIpControl.11                 Integer 1;
SnmpMibObject docsDevFilterIpDaddr.11                   IPAddress 239.255.255.250 ;
SnmpMibObject docsDevFilterIpDmask.11                   IPAddress 239.255.255.250 ;
SnmpMibObject docsDevFilterIpProtocol.11                Integer 17 ;
SnmpMibObject docsDevFilterIpDestPortLow.11             Integer 1900;
SnmpMibObject docsDevFilterIpDestPortHigh.11            Integer 1900;
SnmpMibObject docsDevFilterIpStatus.11                  Integer 4;
SnmpMibObject docsDevFilterIpControl.12                 Integer 1 ;
SnmpMibObject docsDevFilterIpDaddr.12                   IPAddress 255.255.255.255 ;
SnmpMibObject docsDevFilterIpDmask.12                   IPAddress 255.255.255.255 ;
SnmpMibObject docsDevFilterIpStatus.12                  Integer 4 ;
SnmpMibObject docsDevFilterIpControl.13                 Integer 1 ;
SnmpMibObject docsDevFilterIpDaddr.13                   IPAddress 192.168.0.0 ;
SnmpMibObject docsDevFilterIpDmask.13                   IPAddress 255.255.0.0 ;
SnmpMibObject docsDevFilterIpStatus.13                  Integer 4 ;
SnmpMibObject docsDevFilterIpControl.14                 Integer 1 ;
SnmpMibObject docsDevFilterIpDaddr.14                   IPAddress 192.0.2.0 ;
SnmpMibObject docsDevFilterIpDmask.14                   IPAddress 255.255.255.0 ;
SnmpMibObject docsDevFilterIpStatus.14                  Integer 4 ;
SnmpMibObject docsDevFilterIpControl.15                 Integer 1 ;
SnmpMibObject docsDevFilterIpDaddr.15                   IPAddress 192.0.2.0 ;
SnmpMibObject docsDevFilterIpDmask.15                   IPAddress 255.255.255.0 ;
SnmpMibObject docsDevFilterIpStatus.15                  Integer 4 ;
SnmpMibObject docsDevFilterIpControl.16                 Integer 1 ;
SnmpMibObject docsDevFilterIpDaddr.16                   IPAddress 127.0.0.0 ;
SnmpMibObject docsDevFilterIpDmask.16                   IPAddress 255.0.0.0 ;
SnmpMibObject docsDevFilterIpStatus.16                  Integer 4 ;
SnmpMibObject docsDevFilterIpControl.17                 Integer 1 ;
SnmpMibObject docsDevFilterIpDaddr.17                   IPAddress 1.0.0.0 ;
SnmpMibObject docsDevFilterIpDmask.17                   IPAddress 255.0.0.0 ;
SnmpMibObject docsDevFilterIpStatus.17                  Integer 4 ;
SnmpMibObject docsDevFilterIpControl.18                 Integer 1 ;
SnmpMibObject docsDevFilterIpDaddr.18                   IPAddress 169.254.0.0 ;
SnmpMibObject docsDevFilterIpDmask.18                   IPAddress 255.255.0.0 ;
SnmpMibObject docsDevFilterIpStatus.18                  Integer 4 ;
SnmpMibObject docsDevFilterIpControl.19                 Integer 1 ;
SnmpMibObject docsDevFilterIpDaddr.19                   IPAddress 204.152.64.0 ;
SnmpMibObject docsDevFilterIpDmask.19                   IPAddress 255.255.254.0 ;
SnmpMibObject docsDevFilterIpStatus.19                  Integer 4 ; ";
    
    
$sth1=$dbh->prepare("select inet_ntoa(segment) from staff where vg_id=$row[0]");
$sth1->execute() or die "Cannot execute: ".$sth1->errstr();
$cpe = " SnmpMibObject mib-2.69.1.7.1.0 Integer 1 ; /* doscDevCpeEnroll */";
$n=0;
while(@row1=$sth1->fetchrow_array) {
$cpe = $cpe . "
SnmpMibObject mib-2.69.1.7.3.1.3.$row1[0] Integer 4; /* docsDevCpeStatus */
";
$n++;
}
$cpe = "SnmpMibObject mib-2.69.1.7.2.0 Integer $n ; /* docsDevCpeIpMax */
" . $cpe;
$string=$string.$cpe."}";
open(F,">$config") or die "Can not open file:".$config;
print F $string;
$row[1] =~ s/://g;
`/usr/local/bin/docsis -e $config /var/tmp/keyfile ${prefix}/var/cm/$row[1].cm`;
close(F);
print "$row[1] **\n";
}
#`rm ${prefix}/var/tmp/docsis-$s*`;
`rm /tmp/tmp.*`;
$sth->finish();
$dbh->disconnect;
    

Для корректной работы скрипта с LANBilling 1.9, необходимо произвести следующие настройки:

1. В скрипты vg.create, vg.edit вставляем следующий код (в строке, содержащей «DBI->connect» исправляем параметры доступа к серверу БД);

2. Для учетных записей агента Netflow, который будет проводить тарификацию трафика, создаем дополнительное текстовое поле «modem_mac», в котором указываем MAC-адрес клиентского оборудования;

3. В раздел назначенных учетной записи IP-адресов добавляем все адреса, используемые клиентом, с маской 32.

C уважением,
Игорь Алов,
Группа компаний МТС ЗАО «Теликс»,
Заместитель генерального директора по техническим вопросам

Заказать обратный звонок

обновить картинку
Нажимая на кнопку «Отправить», я даю согласие на обработку персональных данных и соглашаюсь c политикой конфиденциальности

Политика в отношении обработки
персональных данных

1. Общие положения

Настоящая политика обработки персональных данных составлена в соответствии с требованиями Федерального закона от 27.07.2006. №152-ФЗ «О персональных данных» и определяет порядок обработки персональных данных и меры по обеспечению безопасности персональных данных, предпринимаемые ООО "Сетевые решения" (далее – Оператор).

1.1. Оператор ставит своей важнейшей целью и условием осуществления своей деятельности соблюдение прав и свобод человека и гражданина при обработке его персональных данных, в том числе защиты прав на неприкосновенность частной жизни, личную и семейную тайну.

1.2. Настоящая политика Оператора в отношении обработки персональных данных (далее – Политика) применяется ко всей информации, которую Оператор может получить о посетителях веб-сайта https://www.lanbilling.ru/.

2. Основные понятия, используемые в Политике

2.1. Автоматизированная обработка персональных данных – обработка персональных данных с помощью средств вычислительной техники;

2.2. Блокирование персональных данных – временное прекращение обработки персональных данных (за исключением случаев, если обработка необходима для уточнения персональных данных);

2.3. Веб-сайт – совокупность графических и информационных материалов, а также программ для ЭВМ и баз данных, обеспечивающих их доступность в сети интернет по сетевому адресу https://www.lanbilling.ru/;

2.4. Информационная система персональных данных — совокупность содержащихся в базах данных персональных данных, и обеспечивающих их обработку информационных технологий и технических средств;

2.5. Обезличивание персональных данных — действия, в результате которых невозможно определить без использования дополнительной информации принадлежность персональных данных конкретному Пользователю или иному субъекту персональных данных;

2.6. Обработка персональных данных – любое действие (операция) или совокупность действий (операций), совершаемых с использованием средств автоматизации или без использования таких средств с персональными данными, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (распространение, предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных данных;

2.7. Оператор – государственный орган, муниципальный орган, юридическое или физическое лицо, самостоятельно или совместно с другими лицами организующие и (или) осуществляющие обработку персональных данных, а также определяющие цели обработки персональных данных, состав персональных данных, подлежащих обработке, действия (операции), совершаемые с персональными данными;

2.8. Персональные данные – любая информация, относящаяся прямо или косвенно к определенному или определяемому Пользователю веб-сайта https://www.lanbilling.ru/;

2.9. Пользователь – любой посетитель веб-сайта https://www.lanbilling.ru/;

2.10. Предоставление персональных данных – действия, направленные на раскрытие персональных данных определенному лицу или определенному кругу лиц;

2.11. Распространение персональных данных – любые действия, направленные на раскрытие персональных данных неопределенному кругу лиц (передача персональных данных) или на ознакомление с персональными данными неограниченного круга лиц, в том числе обнародование персональных данных в средствах массовой информации, размещение в информационно-телекоммуникационных сетях или предоставление доступа к персональным данным каким-либо иным способом;

2.12. Трансграничная передача персональных данных – передача персональных данных на территорию иностранного государства органу власти иностранного государства, иностранному физическому или иностранному юридическому лицу;

2.13. Уничтожение персональных данных – любые действия, в результате которых персональные данные уничтожаются безвозвратно с невозможностью дальнейшего восстановления содержания персональных данных в информационной системе персональных данных и (или) уничтожаются материальные носители персональных данных.

3. Оператор может обрабатывать следующие персональные данные Пользователя

3.1.Фамилия, имя, отчество;

3.2.Электронный адрес;

3.3.Номера телефонов;

3.4. Также на сайте происходит сбор и обработка обезличенных данных о посетителях (в т.ч. файлов «cookie») с помощью сервисов интернет-статистики (Яндекс Метрика и Гугл Аналитика и других).

3.5. Вышеперечисленные данные далее по тексту Политики объединены общим понятием Персональные данные.

4. Цели обработки персональных данных

4.1. Цель обработки персональных данных Пользователя —информирование Пользователя посредством отправки электронных писем; предоставление доступа Пользователю к сервисам, информации и/или материалам, содержащимся на веб-сайте; информирование Пользователя посредством телефонного звонка.

4.2. Также Оператор имеет право направлять Пользователю уведомления о новых продуктах и услугах, специальных предложениях и различных событиях. Пользователь всегда может отказаться от получения информационных сообщений, направив Оператору письмо на адрес электронной почты itdep@lanbilling.ru с пометкой «Отказ от уведомлений о новых продуктах и услугах и специальных предложениях».

4.3. Обезличенные данные Пользователей, собираемые с помощью сервисов интернет-статистики, служат для сбора информации о действиях Пользователей на сайте, улучшения качества сайта и его содержания.

5. Правовые основания обработки персональных данных

5.1. Оператор обрабатывает персональные данные Пользователя только в случае их заполнения и/или отправки Пользователем самостоятельно через специальные формы, расположенные на сайте https://www.lanbilling.ru/. Заполняя соответствующие формы и/или отправляя свои персональные данные Оператору, Пользователь выражает свое согласие с данной Политикой.

5.2. Оператор обрабатывает обезличенные данные о Пользователе в случае, если это разрешено в настройках браузера Пользователя (включено сохранение файлов «cookie» и использование технологии JavaScript).

6. Порядок сбора, хранения, передачи и других видов обработки персональных данных

Безопасность персональных данных, которые обрабатываются Оператором, обеспечивается путем реализации правовых, организационных и технических мер, необходимых для выполнения в полном объеме требований действующего законодательства в области защиты персональных данных.

6.1. Оператор обеспечивает сохранность персональных данных и принимает все возможные меры, исключающие доступ к персональным данным неуполномоченных лиц.

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

6.3. В случае выявления неточностей в персональных данных, Пользователь может актуализировать их самостоятельно, путем направления Оператору уведомление на адрес электронной почты Оператора itdep@lanbilling.ru с пометкой «Актуализация персональных данных».

6.4. Срок обработки персональных данных является неограниченным. Пользователь может в любой момент отозвать свое согласие на обработку персональных данных, направив Оператору уведомление посредством электронной почты на электронный адрес Оператора itdep@lanbilling.ru с пометкой «Отзыв согласия на обработку персональных данных».

7. Трансграничная передача персональных данных

7.1. Оператор до начала осуществления трансграничной передачи персональных данных обязан убедиться в том, что иностранным государством, на территорию которого предполагается осуществлять передачу персональных данных, обеспечивается надежная защита прав субъектов персональных данных.

7.2. Трансграничная передача персональных данных на территории иностранных государств, не отвечающих вышеуказанным требованиям, может осуществляться только в случае наличия согласия в письменной форме субъекта персональных данных на трансграничную передачу его персональных данных и/или исполнения договора, стороной которого является субъект персональных данных.

8. Заключительные положения

8.1. Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты itdep@lanbilling.ru.

8.2. В данном документе будут отражены любые изменения политики обработки персональных данных Оператором. Политика действует бессрочно до замены ее новой версией.

8.3. Актуальная версия Политики в свободном доступе расположена в сети Интернет по адресу https://www.lanbilling.ru/privacy/.