Користувальницькькі налаштування

Налаштування сайту


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації щодо оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

docsistemplate

Налаштування доступу користувачів за технологією DOCSIS

Починаючи з релізу 0.3.8 повністю ліквідовано стару модель роботи з DOCSIS і замість неї реалізовано максимально просту, без перезбірки конфігів модемів на льоту, під кожного користувача. Для того, щоб мати приблизне розуміння того, як це все працює - рекомендуємо ознайомитися з наступною статтям. У стислості схема наступна: “користувач” → “модем” → “CMTS” → “сервер”. При “вставанні” модем спочатку здійснює пошук DS і US, після чого намагається отримати по tftp валідний конфіг і якщо це вдалося передає DHCP запити від користувача крізь DHCP Relay на CMTS до нашого сервера. Для забезпечення хоч якоїсь авторизації, з урахуванням того, що CMTS не вміють бріджинг, використовується заборона на проходження трафіку від IP, які не були отримані за допомогою нашого DHCP сервера.

Угоди:

CMTS - валідно налаштована Motorola BSR 2000, Motorola BSR1000, Cisco UBR або Arris Cadant
інтерфейс em1 - дивиться на налаштовану CMTS
10.10.100.0/24 - мережа DOCSIS модемів
10.10.200.0/24 - мережа користувачів
10.10.10.10.10/24 - адреса нашого сервера, висить аліасом на em1
10.10.10.9/24 - адреса CMTS ethernet 0/0
10.10.100.1/24 - адреса CMTS cable 0/0
10.10.200.1/24 - адреса CMTS cable 0/0 secondary

Авторизація на CMTS

Заборона для проходження трафіку від IP отриманих не крізь наш DHCP-сервер (для вписаних вручну, припустимо) здійснюється в режимі конфігурації кабельного інтерфейсу:

Motorola: host authorization on
Cisco: cable source-verify dhcp
Arris: ip verify-ip-address-filter

Налаштування tftpd

# mkdir /tftpboot

далі

# vim /etc/inetd.conf

розкоментуємо наступний рядок:

tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot

і перезапустимо inetd

# /etc/rc.d/inetd restart

перевіримо працездатність tftp

# touch /tftpboot/testme  
# tftp 127.0.0.1           
tftp> get testme
tftp> q
# ls -la testme 
-rw-r--r---- 1 root wheel 0 Feb 4 13:55 testme
# rm testme /tftpboot/testme

Збірка початкового конфіга

Для складання файлу конфігурації модему нам знадобиться утиліта docsis, встановлюємо:

# cd /usr/ports/net-mgmt/docsis/ && make install

На 64 бітних системах docsis 0.9.5 генерує биті файли і може не зібратися з портів. У такому разі доведеться вдатися до ручного збирання. Забираємо останню версію з сайту розробників, і збираємо ручками:

# tar zxvf docsis-0.9.6.tar.gz
# cd docsis-0.9.6
# ./configure && make && make install

Після чого ми можемо спробувати зібрати найпростіший тестовий конфіг такого змісту з ключем “docsis123” (він же має бути сконфігурований на CMTS). Конфіг (/root/modems.s ) у нас матиме такий вигляд:

modems.s
 Main {
 NetworkAccess      1;
     GlobalPrivacyEnable 0;
     UsServiceFlow
     {
     UsServiceFlowRef 200;
     QosParamSetType 7;
     MaxRateSustained 0;
     SchedulingType 2;
     }
     DsServiceFlow
     {
     DsServiceFlowRef 100;
     QosParamSetType 7;
     TrafficPriority 3;
     MaxRateSustained 0;
     }
  MaxCPE 16;
 }
 
# echo "docsis123" > /root/keyfile
# docsis -e /root/modems.s /root/keyfile /tftpboot/modems.b

Перевірити чого ми назбирали в бінарний конфіг можна так:

# docsis -d /tftpboot/modems.b

Конфігурація CMTS на прикладі BSR2000

  enable password 0 changeme
!
hostname bsr2000
!
!
!
no service password-encryption
!
!
ip ftp username admin
ip ftp password 0 docsis123
!
ip name-server 10.10.10.10
!

logging buffered 51200
no logging control docsis
logging admin-status unconstrained
logging rate-limit 100 1
logging buffered notifications
logging console errors
!
!
cable cmts type domestic
!
!
interface ethernet 0/0
 ip address 10.10.10.9 255.255.255.0 
 no shutdown
!
interface ethernet 0/1
 shutdown
!
interface ethernet 0/2
 shutdown
!
interface ethernet 0/3
 shutdown
!
interface gigaether 0/0
 shutdown
!
interface gigaether 0/1
 shutdown
!
interface cable 0/0
 ip address 10.10.100.1 255.255.255.0 
 ip address 10.10.200.1 255.255.255.0 secondary 
 ip helper-address 10.10.10.10
 cable helper-address 10.10.10.10 cable-modem
 cable helper-address 10.10.10.10 host
 no shutdown
 cable downstream 0 frequency 455250000
 cable downstream 0 interleave-depth 128
 cable downstream 0 power-level 450
 no cable downstream 0 shutdown
 cable upstream 0 frequency 34000000
 cable upstream 0 power-level 260
 cable upstream 0/0 modulation-profile 2
 no cable upstream 0 shutdown
 no cable upstream 0/0 shutdown
 no cable upstream 0/1 shutdown
 no cable upstream 0/2 shutdown
 no cable upstream 0/3 shutdown
 cable upstream 1 frequency 34000000
 cable upstream 1 power-level 260
 cable upstream 1/0 modulation-profile 2
 no cable upstream 1 shutdown
 no cable upstream 1/0 shutdown
 no cable upstream 1/1 shutdown
 no cable upstream 1/2 shutdown
 no cable upstream 1/3 shutdown
 cable upstream 2 frequency 34000000
 cable upstream 2 power-level 260
 cable upstream 2/0 modulation-profile 2
 no cable upstream 2 shutdown
 no cable upstream 2/0 shutdown
 no cable upstream 2/1 shutdown
 no cable upstream 2/2 shutdown
 no cable upstream 2/3 shutdown
 cable upstream 3 frequency 34000000
 cable upstream 3 power-level 260
 cable upstream 3/0 modulation-profile 2
 no cable upstream 3 shutdown
 no cable upstream 3/0 shutdown
 no cable upstream 3/1 shutdown
 no cable upstream 3/2 shutdown
 no cable upstream 3/3 shutdown
 cable dynamic-service authorization-mode disable
 ip dhcp relay information option
 cable downstream schedule priority-wfq
 no cable wireless downstream modulation qpsk
!
!
!
!
!
!
! 
 ip route 0.0.0.0 0.0.0.0 10.10.10.10
!
!
!

 snmp-server engineid local 80001375030030b880f46100
 snmp-server context 
 snmp-server community changeme2 ro view changeme2
 snmp-server chassis-id Serial Number: XXX-YY-ZZZZ
 snmp-server contact Docsis Admin (docsis@isp.ua)
 snmp-server sysname bsr2000
 snmp-server enable traps snmp
 snmp-server enable traps ospf
 snmp-server enable traps bgp
 snmp-server enable traps entity
 snmp-server enable traps docsdevcmts
snmp-server enable traps flap
snmp-server location Somewhere
snmp-server view changeme2 iso included
snmp-server view changeme2 org included
snmp-server view changeme2 dod included
snmp-server view changeme2 internet included
snmp-server view changeme2 directory included
snmp-server view changeme2 mgmt included
snmp-server view changeme2 experimental included
snmp-server view changeme2 private included
snmp-server view changeme2 security included
snmp-server view changeme2 snmpv2 included
snmp-server view changeme2 mib-2 included
snmp-server view changeme2 system included
snmp-server view changeme2 interfaces included
snmp-server view changeme2 at included
snmp-server view changeme2 ip included
snmp-server view changeme2 icmp included
snmp-server view changeme2 tcp included
snmp-server view changeme2 udp included
snmp-server view changeme2 egp included
snmp-server view changeme2 transmission included
snmp-server view changeme2 snmp included
snmp-server view changeme2 ospf included
snmp-server view changeme2 rip2 included
snmp-server view changeme2 ifmib included
snmp-server view changeme2 riverdelta included
snmp-server trap rate-limit 100 1
!
!
packet-cable
 dqos shutdown
 no em shutdown
 no es shutdown
ipsec
 ipsec shutdown
password telnet 0 changeme
!
session-timeout console 0
session-timeout telnet 5
!
telnet session-limit 8
!
!
!
!
!
!
!
ssh enable
!
!
logging on
logging trap notifications
no logging snmp-trap
logging facility local7
!
!
!
!
!
!
cable shared-secret 0 "docsis123"
enable rdn-process
!
!
!
!
cable service-class
 mab DefBEDown 1
!
 mab DefRRDown 1
!
 mab DefBEUp 1
!
 mab DefRRUp 1
!
 mab DefUGS 1
!
 mab DefUGSAD 1
!
 mab DefRTPS 1
!
 mab DefNRTPS 1
!
!

Конфігурація CMTS на прикладі BSR1000

!
hostname rdelta
!
!
boot system nvram:appImage.bin.r.01.00.09.PRR
!
!
ip name-server 10.10.10.10
!
logging buffered 262144
logging rate-limit auto-restart
logging rate-limit 100 1
logging buffered warnings
logging console warnings
!
!
interface ethernet 0/0
 ip address 10.10.10.9 255.255.255.0
!
interface cable 0/0
 ip address 10.10.100.1 255.255.255.0
 ip address 10.10.200.1 255.255.255.0 secondary
 ip helper-address 10.10.10.10
 cable helper-address 10.10.10.10 cable-modem
 cable helper-address 10.10.10.10 host
 cable downstream 0 frequency 455250000
 cable downstream 0 power-level 450
 no cable downstream 0 shutdown
 cable upstream 0 frequency 34000000
 cable upstream 0 power-level 260
 no cable upstream 0 shutdown
 cable upstream 1 frequency 34000000
 cable upstream 1 power-level 260
 no cable upstream 1 shutdown
 cable upstream 2 frequency 34000000
 cable upstream 2 power-level 260
 no cable upstream 2 shutdown
 cable upstream 3 frequency 34000000
 cable upstream 3 power-level 260
 no cable upstream 3 shutdown
 ip dhcp relay information option
!
!
!
!
!
!
ip route 0.0.0.0 0.0.0.0 10.10.10.10
!
!
!
snmp-server context 
snmp-server community changeme2 ro view changeme2
snmp-server contact Docsis docsis@isp.ua
snmp-server sysname bsr1000
snmp-server enable traps
snmp-server location Somewhere
snmp-server view changeme2 iso included
snmp-server view changeme2 org included
snmp-server view changeme2 dod included
snmp-server view changeme2 internet included
snmp-server view changeme2 directory included
snmp-server view changeme2 mgmt included
snmp-server view changeme2 experimental included
snmp-server view changeme2 private included
snmp-server view changeme2 security included
snmp-server view changeme2 snmpv2 included
snmp-server view changeme2 mib-2 included
snmp-server view changeme2 system included
snmp-server view changeme2 interfaces included
snmp-server view changeme2 at included
snmp-server view changeme2 ip included
snmp-server view changeme2 icmp included
snmp-server view changeme2 tcp included
snmp-server view changeme2 udp included
snmp-server view changeme2 egp included
snmp-server view changeme2 transmission included
snmp-server view changeme2 snmp included
snmp-server view changeme2 ospf included
snmp-server view changeme2 rip2 included
snmp-server view changeme2 ifmib included
snmp-server view changeme2 riverdelta included
snmp-server trap rate-limit 100 1
no snmp-server trap rate-limit auto-restart
!
!
!
!
logging on
logging trap notifications
!
clock timezone EET 2 0
!
!
cable shared-secret "docsis123"
!
!

Налаштування Ubilling

1. Слід додати таке до config/global.template на початку секції в shared-network

subnet 10.10.10.0 netmask 255.255.255.0 {
}

2. Додати підмережу модемів

Початкова ІР: 10.10.100.0
Остання ІР: 10.10.100.255
Тип мережі: DHCP static hosts
Мережа/CIDR: 10.10.100.0/24

3. Добавити підмережу DOCSIS користувачів

Початкова ІР: 10.10.200.0
Остання ІР: 10.10.200.255
Тип мережі: DHCP static hosts
Мережа/CIDR: 10.10.200.0/24

4. Додати обробник DHCP для підмережі модемів, використовуючи такий “персональний шаблон”:

subnet 10.10.100.0 netmask 255.255.255.0 {
 default-lease-time 3600;
 option subnet-mask 255.255.255.0;
 option routers 10.10.100.1;
 server-name "10.10.10.10";
 option tftp-server-name "10.10.10.10";
 option bootfile-name "modems.b";
 next-server 10.10.10.10;
 filename "modems.b";
 option time-servers 10.10.10.10;
 option time-offset 2;

include "/usr/local/etc/multinet/{HOSTS}";

}

5. додати обробник DHCP для підмережі DOCSIS користувачів
6. переконатися в тому, що підмережі користувачів і модемів доступні за відповідними маршрутами через нашу CMTS

# route add 10.10.100.0/24 10.10.10.9
# route add 10.10.200.0/24 10.10.10.9

ну і додати ці маршрути на майбутнє у rc.conf

static_routes="cable modems"
route_cable="10.10.200.0/24 10.10.10.9"
route_modems="10.10.100.0/24 10.10.10.9"

Реєстрація модемів і контроль рівнів сигналу

Під час додавання модему слід вказати тільки його MAC-адресу, за якою надалі видаватиметься IP. Усе. Більше нічого.
Під час реєстрації модему йому буде видано першу-ліпшу вільну IP з підмережі з ID, зазначеним в опції DOCSIS_MODEM_NETID.

Також можлива вказівка SNMP ком'юніті та шляху до встановленого snmpwalk. Це потрібно для оперативного зняття статистики про стан модему, рівні сигналу в прямому і зворотному каналах, модуляцію та інші важливі параметри.

docsistemplate.txt · Востаннє змінено: 2023/06/16 14:34 повз borisov