Перейти до

Cisco ASR1002X дружба з Ubilling.


Рекомендованные сообщения

Всім добра!

Намагаюсь подружити ASR1002X з Убілінгом.

На стенді з десятком клієнтів все чудово працює.

Авторизує,  пускає в інет шле на заглушку все чудесно.

На продакшені виникають проблеми.

----------------------------------------------------------------------------------------------------------------------------------------

Що ми маєм.

Є певна кількість вланів, по влану на OLT чи на глазок OLT Всі влани від OLT доставлені на ASR.

Білі і сірі IP адреси в перемішку по всіх вланах. 

Налаштований radius і купаген на стороні білінгу і ASR, абонент ідентифікується і йому призначається відповідний сервіс.

-----------------------------------------------------------------------------------------------------------------------------------------

Логіка роботи.

Абонент при підключенні до мережі запитує адрес від DHCP-сервера

Cisco ASR робить relay  DHCP запиту на білінг через ip helper-address

На стороні білінгу абонент ідентифікується по МАС  

На даному етапі маю верифіковану IP адресу по які однозначно можна ідентифікувати абонента тому ініціалізація сесії відбувається  по   unclassified ip-address

Влан який дивиться в сторону абонента

Скрытый текст

!
interface GigabitEthernet0/0/3.69
 encapsulation dot1Q 69
 ip unnumbered Loopback1
 ip helper-address 10.10.10.1
 ip nat inside
 service-policy type control ISG_POLICY
 ip subscriber routed
  initiator unclassified ip-address
!

На стороні білінгу через радіус користувач ідентифікується по IP, атрибути на скріні.

Для відомої IP адреси з білінга віддаю атрибутами швидкість і назву сервісу  залежно від стану рахунку
         AACEPT-INTERNET - активний абонент з оплаченим сервісом - ходимо в інет
         AOPEN-GARDEN - абонет неактивний - неоплачений/заморожений і тп. переадресація в кабінет користувача.
Якщо у користувача щось помінялось скриптами PoD+CoA - скидаю сесію щоб користувач підняв сесію з новими реаліями.

 

------------------------------------------------------------------------------------------------------------------------------------------------

Проблеми.

 

У частини абонентів ~ 10% перезвонило  до нас, не у всіх, з різних ОЛТ. Закономірності невиявив.
Перший раз DHCP сервер з білінга через relay видає абоненту IP адресу - тут у всіх все ок.

По закінченню lease-time  абонент продовжує оренду, в логах DHCP сервера я бачу відповіть,
але на ASR динамічний маршрут не створюється.
show ip dhcp binding | include IP_АБОНЕНТА - пусто
Відповідно звязку немає.
Через половину lease-time абонент знову запитує адрес від DHCP-сервера, отримує, 
 маршрут зявлявся і звязок появлявся. і так раз є раз немає.
Пробував ip unnumbered loopback 1 poll - ASR сильно лагав, швидко забрав.

 

1ght пропонував DHCP Radius Proxy 
Але це не в дусі Убілінга, пропаде лог DHCP(  - один з інструментів  діагностики роботи абонента.

Поки не пробував.

 

Прблема №2

На білих адресах непрацював PPTP з світу. Забрав з вілану до абонента ip nat inside - PPTP запрацювало.
Але тут мені повезло, тут був один абонент у влані, що робити там де їх багато?
 

У кого які ідеї як спіймати проблему з релей?

Може у мене мережа якось криво зроблена, чи я не зтого боку засовую залізяку в мережу?

Може атрибути не ті і не в ті послідовності?

Перший раз ASR в руках тримаю, все працює на NAS-rscript.

 

Конфігурацію збирав поглядаячи в документації:

http://wiki.ubilling.net.ua/doku.php?id=multigen

https://ntwrk.today/2019/06/17/cisco-isg.html звідси копіпастив пів конфіга ISG
https://wiki.mikbill.pro/billing/nas_access_server/cisco_asr1k
https://www.lanbilling.ru/lanbilling-cisco-isg

 

Конфіг ASR

Скрытый текст

show running-config
Building configuration...

Current configuration : 18016 bytes
!
!!
version 16.3
service timestamps debug datetime msec
service timestamps log datetime msec
no platform punt-keepalive disable-kernel-core
!
hostname ASR-1002x
!
boot-start-marker
boot system bootflash:/asr1002x-universalk9.16.03.09.SPA.bin
boot-end-marker
!
!
vrf definition Mgmt-intf
 !
 address-family ipv4
 exit-address-family
 !
 address-family ipv6
 exit-address-family
!
enable password 7 MY_PASSWORD
!
aaa new-model
!
!
aaa group server radius ISG-RADIUS
 server name MAIN
 ip radius source-interface Port-channel1
!
aaa authentication login ISG-AUTH-LIST group ISG-RADIUS
aaa authorization network ISG-AUTH-LIST group ISG-RADIUS
aaa authorization subscriber-service default local group ISG-RADIUS
aaa accounting update newinfo periodic 5
aaa accounting network ISG-ACT-LIST start-stop group ISG-RADIUS
!
!
!
!
!
aaa server radius dynamic-author
 client IP_BILLING server-key NESKAZHU!
 auth-type any
!
aaa session-id common
clock timezone Kiev 2 0
clock summer-time Kiev recurring last Sun Mar 3:00 last Sun Oct 4:00
!
!
!
!
!
!
!
!
!
no ip domain lookup
ip domain name MY_DOMEN.if.ua
ip dhcp relay information option
no ip dhcp relay information check
ip dhcp relay information trust-all
!
!
!
!
!
!
!
!
!
!
subscriber templating
subscriber authorization enable
!
!
!
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
license udi pid ASR1002-X sn SNiourgh324
license boot level advipservices
!
spanning-tree extend system-id
diagnostic bootup level minimal
!
!
username SUPER_ADMIN privilege 15 secret NESKAZHU!
!
redundancy
 mode none
redirect server-group PORTAL_MONEY
 server ip IP_KABINETA_KORYSTYVACHA
!
!
!
!
!
!
cdp run
!
class-map type traffic match-any OPEN-CLASS
 match access-group input name OPENGARDEN_ACL_IN
!
class-map type traffic match-any CLASS-INET
 match access-group input name ALL_IN
 match access-group output name ALL_OUT
!
class-map type traffic match-any RDR-CLASS
 match access-group input name ACL_RDR_IN
!
class-map type control match-all IP_UNAUTH_COND
 match authen-status unauthenticated
 match timer IP_UNAUTH_TIMER
!
policy-map type service RDR-SRV
 100 class type traffic RDR-CLASS
  redirect to group PORTAL_MONEY
 !
 class type traffic default input
  drop
 !
!
policy-map type service OPEN-GARDEN
 10 class type traffic OPEN-CLASS
 !
!
policy-map type service ACEPT-INTERNET
 50 class type traffic CLASS-INET
 !
!
policy-map type control ISG_POLICY
 class type control IP_UNAUTH_COND event timed-policy-expiry
  10 service disconnect
 !
 class type control always event session-start
  10 service-policy type service name RDR-SRV
  20 authorize aaa list ISG-AUTH-LIST password ISG identifier source-ip-address
 !
 class type control always event access-reject
  10 service-policy type service name RDR-SRV
  20 service-policy type service name OPEN-GARDEN
  40 set-timer IP_UNAUTH_TIMER 2
 !
 class type control always event radius-timeout
  10 service-policy type service name ALL-SRV
  40 set-timer IP_UNAUTH_TIMER 30
 !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback1
 ip address 172.16.4.1 255.255.255.0 secondary
 ip address 172.16.14.1 255.255.255.0 secondary
 ip address 172.16.16.1 255.255.255.0 secondary
 ip address 172.16.21.1 255.255.255.0 secondary
 ip address 172.16.22.1 255.255.255.0 secondary
 ip address 172.16.23.1 255.255.255.0 secondary
 ip address 172.16.24.1 255.255.255.0 secondary
 ip address 172.16.32.1 255.255.252.0 secondary
 ip address 172.32.0.1 255.255.255.0 secondary
 ip address ТУТ_БІЛИЙ_САБНЕТ 255.255.255.0 secondary
 ip address 172.16.1.1 255.255.255.0
 no ip redirects
 no ip unreachables
 no ip proxy-arp
!
interface Port-channel1
 ip address IP_ADRESS_ASR 255.255.255.192
 no ip redirects
 ip nat outside
 no negotiation auto
 history BPS
!
interface GigabitEthernet0/0/0
 no ip address
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 negotiation auto
 channel-group 1 mode active
!
interface GigabitEthernet0/0/1
 no ip address
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 negotiation auto
 channel-group 1 mode active
!
interface GigabitEthernet0/0/2
 no ip address
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 negotiation auto
 channel-group 1 mode active
!
interface GigabitEthernet0/0/3
 no ip address
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 negotiation auto
!
interface GigabitEthernet0/0/3.4
 encapsulation dot1Q 4
 ip unnumbered Loopback1
 ip helper-address 10.10.10.1
 ip nat inside
 service-policy type control ISG_POLICY
 ip subscriber routed
  initiator unclassified ip-address
!
interface GigabitEthernet0/0/3.5
 encapsulation dot1Q 5
 ip unnumbered Loopback1
 ip helper-address 10.10.10.1
 ip nat inside
 service-policy type control ISG_POLICY
 ip subscriber routed
  initiator unclassified ip-address
!
!ТУТ ДОФІГА ВЛАНІВ З АБОНЕНТАМИ ~ 100 ШТ
! НА ПОРТАХ GigabitEthernet0/0/3, GigabitEthernet0/0/4, GigabitEthernet0/0/5

!АНАЛОГІЧНО НАСТРОЇНО  ЯК GigabitEthernet0/0/3.5
!
interface GigabitEthernet0/0/5.500
 description VLAN_TO_BILLING
 encapsulation dot1Q 500
 ip address 10.10.10.20 255.255.255.0
 no ip redirects
 no ip unreachables
 no ip proxy-arp
!
interface GigabitEthernet0/0/5.501
 description TEST-OFFISE
 encapsulation dot1Q 501
 ip unnumbered Loopback1
 ip helper-address 10.10.10.1
 ip nat inside
 service-policy type control ISG_POLICY
 ip subscriber routed
  initiator unclassified ip-address
!
interface GigabitEthernet0
 vrf forwarding Mgmt-intf
 no ip address
 negotiation auto
!
ip default-gateway MY_GETEWAY!
ip nat settings mode cgn
no ip nat settings support mapping outside
ip nat settings pap
ip nat translation timeout 300
ip nat translation tcp-timeout 1800
ip nat translation pptp-timeout 1800
ip nat translation udp-timeout 60
ip nat translation finrst-timeout 10
ip nat translation syn-timeout 10
ip nat translation dns-timeout 10
ip nat translation icmp-timeout 10
ip nat translation port-timeout tcp 80 360
ip nat translation port-timeout tcp 8080 360
ip nat translation port-timeout tcp 1600 180
ip nat translation port-timeout tcp 110 180
ip nat translation port-timeout tcp 25 180
ip nat translation max-entries all-host 3000
no ip nat service all-algs
ip nat pool bili-nat MY_PREFIX.32 MY_PREFIX.63 prefix-length 27
ip nat inside source list nat pool bili-nat overload
ip forward-protocol nd
!
no ip http server
no ip http secure-server
ip tftp source-interface GigabitEthernet0
ip route 0.0.0.0 0.0.0.0 MY_GETEWAY
ip route MY_SANTET 255.255.255.0 10.10.10.1
ip route IP_KABINETU 255.255.255.255 10.10.10.1
ip route 172.16.0.1 255.255.255.255 10.10.10.1
ip ssh rsa keypair-name router-key
ip ssh version 2
!
ip access-list standard nat
 permit 172.16.4.0 0.0.0.255
 permit 172.16.14.0 0.0.0.255
 permit 172.16.16.0 0.0.0.255
 permit 172.16.21.0 0.0.0.255
 permit 172.16.22.0 0.0.0.255
 permit 172.16.23.0 0.0.0.255
 permit 172.16.24.0 0.0.0.255
 permit 172.16.32.0 0.0.3.255
 permit 172.16.100.0 0.0.0.255
 permit 172.16.1.0 0.0.0.255
 deny   BILI_SABNET 0.0.0.64
 permit 172.32.0.0 0.0.0.255
 !
ip access-list extended ACL_RDR_IN
 permit tcp any any eq www
 permit tcp any any eq 8000
 permit tcp any any eq 8080
 permit tcp any any eq 443
ip access-list extended ALL_IN
 permit ip any any
ip access-list extended ALL_OUT
 permit ip any any
ip access-list extended OPENGARDEN_ACL_IN
 permit ip any host IP_KABINETY
 permit ip any host IP_SAITU
 permit udp any host IP_DNS eq domain
 permit ip any host 172.16.0.1
 permit ip any host 172.32.0.1
!
logging trap debugging
logging source-interface GigabitEthernet0/0/5.500
logging host 10.10.10.1
!
!
!
!
radius-server attribute 44 include-in-access-req all
radius-server attribute 44 extend-with-addr
radius-server attribute 31 mac format unformatted
radius-server attribute 31 send nas-port-detail mac-only
radius-server attribute nas-port-id include circuit-id plus remote-id
radius-server dead-criteria time 10 tries 1
radius-server retransmit 2
radius-server timeout 30
radius-server deadtime 5
radius-server vsa send cisco-nas-port
!
radius server MAIN
 address ipv4 IP_BILLING auth-port 1812 acct-port 1813
 key NE_SKAZHU!
!
!
control-plane
!
 !
 !
 !
 !
!
!
!
!
!
line con 0
 stopbits 1
line aux 0
 stopbits 1
line vty 0
 exec-timeout 30 0
 logging synchronous
 transport input ssh
!
ntp server 91.236.251.24
ntp server 91.236.251.11
!
!
!
!
!
!
end

 

Screenshot_3.jpg

Відредаговано mgo
Ссылка на сообщение
Поделиться на других сайтах

Нужно искать рабочий конфиг IPOE и ставить такую же версию прошивки.

Затем подвязывать с Radius

 

Для вас будет идеальным вариантом найти администратора сети, в котором стоит ASR и все у него выяснить.

Если таких нет, то я бы задался вопросом "а почему ASR редко используют?"

Ссылка на сообщение
Поделиться на других сайтах
41 минуту назад, Чучундра сказал:

Потому что продают соточку за чирик, поэтому и не используют ASR

Вже давно гиг за чирик продають;)

Відредаговано ntp
  • Haha 1
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від mac
      Глюк в тому, що один (так - тільки один) mac адрес onu існує в білінгу у вигляді строки. Це трохи заважає.
      olt - bdcom gepon.
      Наскільки зрозумів, це виключно проблема реалізації snmpwalk у freebsd, де snmpwalk може на свій розсуд віддати mac адресу не як hex-string, а як звичайний string.
      Можливо snmpwalk тригериться на якомусь символі, мені невідомо.
       
      # tcpdump -vv -i em0 udp port 161 and host olt and host ub | grep "3320.101.10.4.1.1.241 ... olt.snmp > ub.47940: [udp sum ok] { SNMPv2c C="*****" { GetResponse(44) R=93278354 E:3320.101.10.4.1.1.241="8LO"W*" } } ub.47940 > olt.snmp: [udp sum ok] { SNMPv2c C="*****" { GetNextRequest(34) R=93278355 E:3320.101.10.4.1.1.241 } } snmpwalk -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = STRING: "8LO\"W*" snmpwalk -Ox -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = Hex-STRING: 38 4C 4F 22 57 2A  
      Це стосується таких параметрів у snmp конфізі bdcom
       
      [signal] MACINDEX=".1.3.6.1.4.1.3320.101.10.4.1.1" [misc] ONUINDEX=".1.3.6.1.4.1.3320.101.11.1.1.3"  
      За для усунення глюку спробував трошки змінити код і завдати тип snmp параметру явно у ./api/libs/api.ponbdcom.php у function collect()
      Це працює. Мабуть станеться у нагоді:
       
      # diff api.ponbdcom.php{.new,.bak} 37c37 < $onuIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); --- > $onuIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); 91c91 < $macIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE); --- > $macIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE);  
      P.S. Створив тему, а зараз міркую: а може це глюк у ПЗ olt. Оновлю фірмваре olt та перевірю...
       

    • Від Plastilin
      Вітаю. Маю наступний комплект. Ubilling на Debian + Mikrotik CHR як маршрутизатор. Наче все запустилось, але виникло питання яке не вдається розрулити. Читав Wiki, ковиряв, читав знову Wiki, знову ковиряв - не допомогло.
      Чи можливо якось визначити конкретну IP адресу з пулу який видає Mikrotik клієнту через Radius? Мені пропонує обрати наступну вільну адресу з пулу при спробі зміни адреси?
      З цього з'являється додаткове питання, чи можливо контролювати доступ користувачам у яких IP назначений статично, тобто прописаний вручну? Наприклад при зміні статусу не активний - пхати до Firewall Mikrotik правила заборони доступу з IP адреси визначеної вручну, навіть якщо вона не отримана по DHCP.
       
      UPD: з першою частиною знайшов: IP_CUSTOM=1 в alter.ini 
    • Від ppv
      Потрібно було витерти одну мережу, всі абоненти з неї були перенесені в іншу. Але світить що 6 IP зайняті, хоча вона повністю вільна.
       
      ID    Мережа/CID           RВсього IP        Використано IP ▾           Вільно IPСервіс
      6      172.16.70.0/23        506                    6                                       500
       
      Підкажіть як правильно це підчистити щоб видалити мережу.
    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

×
×
  • Створити нове...