Documentazione BQN
Icona di chiusura

Problemi di installazione

Controllare quanto segue:

  • La ISO deve essere copiata su un'unità USB con partizioni MBR e modalità DD.
  • Il BIOS del server deve avere la modalità di avvio predefinita (ad esempio, DUAL).
  • Se è presente un controller RAID, un'unità logica deve essere configurata e contrassegnata come avviabile.
  • Verificare se il server utilizzato per l'installazione soddisfa i requisiti hardware di BQN.
  • Verificare che l'installazione sia stata eseguita sul disco rigido e non abbia sovrascritto l'unità USB.

Nessun accesso all'indirizzo IP di gestione

Il BQN utilizza un'interfaccia di rete dedicata per la gestione. L'interfaccia di gestione supporta i servizi SSH e WEB (HTTP). In caso di problemi di accesso all'IP di gestione configurato, verificare quanto segue:

  • Assicurarsi che la porta dell'interfaccia di rete di gestione sia collegata alla rete appropriata.
  • Verificare che lo stato del collegamento dell'interfaccia di rete di gestione sia attivo. Se l'interfaccia di gestione è collegata a uno switch di rete, verificare che la porta nello switch sia attiva e che i suoi attributi corrispondano alle proprietà mostrate dal comando show interface.
  • Se si accede all'indirizzo IP di gestione da una rete diversa, assicurarsi che il routing statico sia configurato verso la rete di accesso, come spiegato nella sezione Interfaccia di rete della Guida dell'utente.
  • Se nella rete di gestione sono presenti firewall, consentire l'accesso alla porta TCP 22 per il servizio SSH e alla porta TCP 443 per il servizio WEB.
  • Verificare con la console di sistema che l'indirizzo IP di gestione e il prefisso di rete siano corretti. Collegare un monitor e una tastiera al server ed eseguire il login come root:
 
bqn0:˜# bqnsh
root@bqn0# show interface management detail
Interface: en0o1
IP address: 192.168.0.121/24 
Default gateway: 192.168.0.1
Nameserver: n/a
  • Se si sospetta che le impostazioni IP OAM siano errate o sconosciute, collegare un monitor e una tastiera al server e accedere come root per modificarle utilizzando la procedura guidata bta in modalità interattiva. Ad esempio, per cambiare l'interfaccia di gestione in en0o1 con l'indirizzo IP 10.10.10.12/24 (premere invio per accettare la risposta suggerita):
 
bqn0:˜# bqnsh
root@bqn0# wizard bta interactive
Available network interfaces:
  en0o1
  en0p0s0
  en0p0s1
Enter management interface [en0p0s0]: en0o1
Enable VLAN on management interface? (yes/no) [no]:
Enter management IP address and prefix [192.168.0.120/24]: 10.10.10.12/24
Enter default gateway IP address [192.168.0.1]: 10.10.10.1
Configure a nameserver? (yes/no) [no]:

Available network interfaces:
  en0p0s0
  en0p0s1
Select access-side interface for wire:  en0p0s0
Select internet-side interface for wire: en0p0s1
Enable SDR generation? (yes/no) [yes]:
Enter random optimization percentage [99]:
Enter random udr generation percentage [2]:
System vendor: Dell
System name: bqn
System serial: 0
System supported: yes
CPU model: 12th Gen Intel(R) Core(TM) i7-12700H
CPU cores: 4

Management interface:  en0o1
Management IP:         10.10.10.12/24
Management gateway:    10.10.10.1

Wire 1: en0p0s0(access)-en0p0s1(internet)

SDR generation: enabled

BTA random optimization: 99%
UDR random generation:   2%

If the proposed configuration is not valid execute the command
     wizard bta interactive
to manually enter the configuration.

Proceed with configuration? (yes/no) [yes]: yes


root@bqn0# show interface management detail
Interface: en0o1
IP address: 10.10.10.12/24
Default gateway: 10.10.10.1
Nameserver: n/a

root@bqn0# show interface management detail
Interface: en0o1
IP address: 10.10.10.12/24
Default gateway: 10.10.10.1
Nameserver: n/a

Se l'interfaccia non è disponibile al momento della modifica (ad esempio, ha partecipato a un wire), un messaggio richiederà un riavvio. Dopo il riavvio, il BQN dovrebbe avere il nuovo IP e la nuova interfaccia di rete di gestione.

 
Management interface en0o1 seems not to be set. A process reboot may fix the problem. 
Proceeed with the process reboot? (yes/now) [yes]: yes
  • L'interfaccia di gestione del BQN potrebbe essere protetta da un proprio firewall. Il problema potrebbe essere che l'indirizzo IP di origine non è incluso nella lista bianca del firewall. Questo potrebbe accadere anche per gli indirizzi della stessa subnet dell'IP di gestione del BQN, se la subnet non fa parte delle regole del firewall. È possibile disattivare temporaneamente il firewall finché non viene ripristinata la connessione alla porta di gestione. Collegare un monitor e una tastiera al server e accedere come root:
bqn0:˜# bqnsh
root@bqn0# show interface firewall 
IFACE CHAIN RANGE
en0o1 input 10.0.0.0/8
en0o1 input 172.16.0.0/12
en0o1 input 192.168.0.0/16 
root@bqn0# clear interface en0o1 firewall input 
root@bqn0# show interface firewall 
IFACE CHAIN RANGE 
root@bqn0#

Una volta che l'IP di gestione è raggiungibile, è possibile definire la nuova lista bianca degli intervalli IP di origine consentiti.

  • If the command <span class="character-highlight">wizard bta interactive</span> fails,  connect with a console and a keyboard and try changing the configuration directly. In the following example, the management interface is in en0o2 and we will move it to interface en0o1 and from IP address 192.168.0.121 to IP address 10.0.0.121, with default gateway 10.0.0.1:
bqn0:˜# bqnsh
root@bqn0# show interface management detail
Interface: en0o2
IP address: 192.168.0.121/24
Default gateway: 192.168.0.1
Nameserver: 8.8.8.8
root@bqn0# show interface
IFACE                TYPE       MAC                STATE LINK
lo0                  loopback   00:00:00:00:00:00  up    yes
en0o1                ethernet   ff:2f:6b:72:12:01  up    no
en0o2                ethernet   ff:2f:6b:72:12:02  up    yes
en0o3                ethernet   ff:2f:6b:72:12:03  up    no
en0o4                ethernet   ff:2f:6b:72:12:04  up    no
root@bqn0# configure
root@bqn0(config)# interface en0o2
root@bqn0(config-iface)# no ip address 192.168.0.121/24
root@bqn0(config-iface)# no management
root@bqn0(config-iface)# root
root@bqn0(config)# interface en0o1
root@bqn0(config-iface)# ip address 10.0.0.121/24
root@bqn0(config-iface)# management
root@bqn0(config-iface)# root
root@bqn0(config)# router static
root@bqn0(config-static)# route 0.0.0.0/0 via 10.0.0.1
root@bqn0(config-static)# root
root@bqn0(config)# commit
root@bqn0(config)# end
root@bqn0# exit
bqn0:˜#

Web non accessibile

  • Verificare che l'indirizzo IP di gestione sia accessibile tramite SSH,
  • Verificare che l'accesso avvenga tramite HTTPS (HTTP non è supportato). Esempio di URL: https://192.168.0.121
  • Verificare che si stia utilizzando l'utente bqnadm (root non può essere utilizzato nell'accesso alla GUI).
  • Quando si installa da zero, assicurarsi che sia stato eseguito il comando guidato bta (altrimenti il servizio web dell'interfaccia grafica non sarà attivo e non verrà creato un utente bqnadm).
  • Verificare che la porta SSH del server BQN non sia stata modificata. Per accedere al BQN utilizzando una porta diversa dalla 22, è possibile definire regole di port forwarding nel router del percorso di accesso, ma la porta SSH del BQN non può essere modificata. Accedendo al server come root, è possibile verificare che la porta SSH sia la 22 come segue:


bqn:~ # grep Port/etc/ssh/sshd_config
#Port 22
#GatewayPorts no

Se necessario, commentare la riga che specifica una porta diversa da 22.

  • Verificare che il proprio browser sia supportato (Edge, Firefox, Chrome). MS Explorer, ad esempio, non è supportato.

Interfaccia di rete disattivata

Se l'icona Interfacce di rete nella Dashboard non è verde.

Andare a Configurazione->Interfacce->Dati Wires

In rosso (critico)

  • Se non è stato configurato wire , crearne uno.
  • Se wires è configurato ma le sue interfacce non sono in stato di UP, ciò indica molto probabilmente che le interfacce non sono compatibili con Intel. Andare a Configurazione->Interfacce->Dati Wires e fare clic sull'interfaccia in basso per vedere il modello(PCI vendor ID) e confermare che non è Intel. Rimuovere il sito wire e crearne uno nuovo con entrambe le interfacce in modalità pcap. Questo dovrebbe portare le interfacce in stato UP, ma con una capacità di throughput molto inferiore (meno di 1Gbps).
  • Se è configurato wires , con le interfacce in stato UP ma con LINK down, c'è un problema di connessione con l'altra apparecchiatura. Collegare entrambe le porte di interfaccia tra loro in un loop utilizzando un cavo/fibra adeguato. Se entrambe le interfacce sono attive, il problema è dell'altra apparecchiatura.

Se il collegamento è ancora interrotto e si utilizzano porte ottiche, verificare che i ricetrasmettitori:

  • sono compatibili con Intel
  • sono supportate (per un elenco, vedere Schede di rete supportate).
  • del tipo richiesto dall'installazione (ad esempio, SFP+-LR in un'installazione con fibra monomodale e SFP+-LR sull'altro lato).

In giallo (Avviso)

  • Se il sito wires che appare come non funzionante si suppone che abbia traffico, seguire i passi della sezione precedente (Critico)
  • Se i wires che appaiono inattivi non sono in uso e si vuole rimuovere il segnale di avviso, si può cancellare il wires inutilizzato. Considerate che le modifiche alla configurazione di wire interromperanno il traffico per alcuni secondi.

Traffico invertito

Se l'icona Traffico invertito nel Dashboard è di colore arancione (Attenzione), indica che il traffico in direzione uplink è maggiore di quello in direzione downlink. Questo può essere normale in piccole distribuzioni (meno di un centinaio di abbonati, come in un BQN in laboratorio), ma in una distribuzione di rete molto probabilmente indica che alcuni wires sono stati collegati in modo errato, con la porta di accesso collegata al lato Internet e viceversa.

Per verificare che sia così, andare su Statistiche->Throughput->Interfacce e selezionare l'interfaccia wire configurata nel lato di accesso. Se il throughput ricevuto è maggiore di quello inviato, significa che l'interfaccia wire è invertita. Questo può essere confermato selezionando il throughput dell'interfaccia lato Internet per vedere che il suo traffico inviato è maggiore di quello ricevuto.

Per risolvere il problema, accedere a Configurazione->Interfacce->Dati Wires e, nel riquadro wire, premere l'icona Scambia interfacce.

Traffico ridotto

Se l'icona Basso traffico nel Dashboard non è verde.

In giallo (Avviso)

Passare il mouse sull'icona per confermare che viene visualizzato l'avviso di traffico ridotto. Indica che il traffico che attraversa il server BQN è molto ridotto. Questo è normale se il sistema sta ancora aspettando che il traffico venga instradato attraverso di esso. Tuttavia, in un sistema in produzione può essere un'indicazione che qualche guasto in un altro punto della rete impedisce al traffico di raggiungere il server BQN.

In arancione (Attenzione)

Passare il mouse sull'icona. Il Traffic-uplink o il Traffic-downlink dovrebbero essere segnalati. Questo perché non c'è traffico che attraversa il BQN in quella direzione e quindi il traffico è asimmetrico. Andare in Configurazione->Impostazioni TCP/ACM e impostare l'Ottimizzazione generale TCP su Off mentre si risolve il problema.

Sistemare l'instradamento del traffico in modo che il BQN veda entrambe le direzioni (uplink e downlink). Al termine e dopo che l'icona è tornata verde, andare a Configurazione->Impostazioni TCP/ACM per abilitare l'ottimizzazione TCP complessiva.

Gestore delle licenze

Se l'icona License Manager nella dashboard è in giallo e il testo dice "license-mgr-connection:notice", è perché il server BQN non riesce a raggiungere il license manager. Il gestore delle licenze è responsabile della convalida delle licenze SW BQN e aiuta Bequant a fornire un supporto più proattivo segnalando i problemi del server.

Assicurarsi che il server BQN sia in grado di avviare connessioni in uscita verso l'IP di License Manager (per maggiori dettagli, contattare l'assistenza di Bequant ).

Per verificare che sia possibile una connessione in uscita, accedere come root e fare un telnet all'IP e alla porta forniti:


bqn0:˜# telnet ip port
Trying ip...
Connected to ip.
Escape character is '^]'.

Licenza non OK

Se l'icona della licenza nella Dashboard è rossa e il testo dice "license-available:critical" o"license-expiration: critical", non c'è una licenza valida. Ciò potrebbe essere dovuto a diversi motivi:

  • Non esiste una licenza definita nel nodo
  • La licenza non è valida
  • La licenza non è più valida (la data finale è scaduta).

Contattare il distributore per ottenere una licenza valida.

È possibile controllare lo stato della licenza in Amministrazione->Licenza.

Quando non c'è una licenza valida, il BQN inoltrerà tutto il traffico in modo trasparente: il servizio non sarà influenzato, ma nessuna delle elaborazioni avanzate del BQN sarà applicata al traffico.

Limite di licenza superato

Se l'icona della licenza nella Dashboard è arancione e il testo dice "license-use: warning", la capacità massima della licenza è stata superata (il traffico nel server BQN è superiore al limite della licenza).

Contattare il distributore per un aggiornamento della licenza.

È possibile controllare la capacità della licenza in Amministrazione->Licenza.

In Statistiche->Throughput->Overview, una linea rossa mostra il limite della licenza e i livelli di throughput recenti.

Il superamento del limite della licenza deve essere temporaneo, mentre la licenza viene aggiornata alla giusta capacità.

Quando il limite della licenza viene superato, il QoE non fa cadere i pacchetti, ma li fa semplicemente passare in ponte.

L'effetto sul traffico è diverso a livello di flusso e di sessione dell'abbonato.

Effetti a livello di flusso:

  • Mentre il limite di licenza viene superato, i nuovi flussi non avranno alcuna licenza.
  • I flussi esistenti prima del superamento della licenza sono inalterati: se erano in fase di ottimizzazione rimangono tali e allo stesso modo se senza licenza.
  • Quando il traffico ottimizzato scende al di sotto del limite, i nuovi flussi vengono nuovamente ottimizzati.
  • I flussi esistenti prima della licenza che scendono al di sotto del limite non sono influenzati: se non avevano la licenza rimangono tali e allo stesso modo se erano in fase di ottimizzazione.
  • Un flusso senza licenza non ha TCPO, non ha shaping e non genera metriche (ritrasmissioni, latenze, DPI, ecc.).

Effetti a livello di sessione abbonati:

  • Mentre il limite di licenze viene superato, le nuove sessioni di abbonati non avranno alcuna licenza.
  • Le sessioni di abbonati esistenti prima del superamento della licenza rimangono inizialmente nel loro stato attuale: se erano in fase di ottimizzazione rimangono tali e allo stesso modo se sono prive di licenza.
  • Se la licenza rimane al di sopra del limite, le sessioni di abbonati ottimizzate possono passare a nessuna licenza se accumulano un numero elevato di flussi non ottimizzati.
  • Quando il traffico ottimizzato scende al di sotto del limite, le nuove sessioni degli abbonati vengono nuovamente ottimizzate.
  • Le sessioni degli abbonati che escono prima che la licenza scenda al di sotto del limite rimangono inizialmente nel loro stato attuale: se non avevano licenza rimangono tali e allo stesso modo se erano in fase di ottimizzazione.
  • Se la licenza rimane al di sotto del limite, le sessioni degli abbonati senza licenza possono passare a essere ottimizzate se accumulano un piccolo numero di flussi ottimizzati.
  • Una sessione di abbonati senza licenza non ha ACM, non ha limitazione di velocità e continua a generare i totali del volume di traffico. La segnalazione del volume della quota è sospesa. Il blocco all'esaurimento della quota non avrà luogo. Le altre metriche, come le ritrasmissioni, le latenze, ecc. saranno ridotte a quelle dei flussi ottimizzati.
  • Una sessione di abbonato in fase di ottimizzazione sarà influenzata dal fatto che alcuni dei suoi flussi potrebbero non avere una licenza e quindi l'abbonato potrebbe avere un set di misure ridotto rispetto al funzionamento normale. Ciò influisce sull'ACM e anche sulle metriche generate per quell'abbonato.

L'effetto del superamento del limite della licenza è che sempre più traffico non otterrà più la funzionalità QoE e, viceversa, la quantità di traffico che ottiene la funzionalità QoE si riduce. Una volta che la quantità di traffico che ottiene la funzionalità QoE è inferiore al limite della licenza, i nuovi flussi e le sessioni degli abbonati riacquistano la funzionalità QoE. Ciò continua fino al superamento del limite di licenza, dopodiché l'effetto si ripete nuovamente. Con questo comportamento oscillante, il QoE continua a fornire funzionalità al traffico fino al limite della licenza. Il BQN controlla continuamente il livello di throughput rispetto ai limiti di licenza (ogni minuto o meno), quindi l'adattamento è piuttosto rapido.

Elevato carico della CPU

Se l'icona della CPU nella Dashboard non è verde, alcune CPU stanno funzionando a livelli anormalmente alti. Ciò è normalmente dovuto a un traffico sbilanciato (concentrato in alcuni IP di abbonati) o a un traffico eccessivo da parte del server BQN.

Il BQN dispone di meccanismi interni per mitigare questa situazione, cercando di prevenire le perdite di traffico riducendo la quantità di traffico ottimizzato.

Il livello di throughput può essere verificato in Statistiche->Throughput->Overview e i livelli di CPU in Statistiche->Sistema->CPU.

Esistono due tipi di allarme, a seconda dei livelli di carico della CPU:

  • Arancione se alcuni core della CPU sono ad alto carico (oltre l'80% di utilizzo).  
  • Rosso se alcuni core della CPU hanno un carico molto elevato (oltre il 90% di utilizzo).  

Procedere come segue:

  • Se si utilizza il NAT tra il BQN e gli abbonati finali, aumentare il numero di IP utilizzati dal NAT, in modo che il BQN possa distribuire il traffico tra più indirizzi. Si può vedere come il traffico è distribuito tra gli IP in Statistiche->Sottoscrittori->Top per tempo.
  • Abilitare il percorso di bypass o, se non è possibile, ridurre la quantità di traffico instradato attraverso il BQN.
  • Disattivare l'ottimizzazione TCP in Configurazione->Impostazioni TCP/ACM.
  • Potrebbe essere necessario un aggiornamento dell'hardware. Contattare l'assistenza Bequant .

Se il server BQN viene utilizzato solo per il TCPO e/o per i limiti di velocità per flusso, è possibile migliorare la distribuzione del carico della CPU abilitando lo steeting per flusso. La gestione per flusso distribuisce il carico di traffico tra i core della CPU per ogni singolo flusso, invece della distribuzione predefinita del traffico per abbonato. Questo migliora il bilanciamento del carico della CPU, ma poiché il controllo per abbonato viene effettuato per core, non consente il controllo a livello di abbonato, come ACM, tassi di policy o limiti di flusso per abbonato.

Elevato carico di memoria

Se l'icona Memoria nel Dashboard non è verde, alcuni processi stanno esaurendo la memoria. Ciò è normalmente dovuto a un traffico sbilanciato (traffico concentrato in alcuni IP di abbonati) o a un traffico eccessivo elaborato dal server BQN.

Il BQN dispone di meccanismi interni per mitigare questa situazione, cercando di prevenire le perdite di traffico riducendo la quantità di traffico ottimizzato.

Il livello di throughput può essere verificato in Statistiche->Throughput->Overview e i livelli di memoria in Statistiche->Sistema->Memoria.

Esistono due tipi di allarme, a seconda dei livelli di carico della memoria:

  • Arancione se alcuni processi raggiungono un utilizzo elevato (oltre il 90%).  
  • Rosso se alcuni processi raggiungono un utilizzo molto elevato (oltre il 95%).  

Procedere come segue:

  • Se si utilizza il NAT tra il BQN e gli abbonati finali, aumentare il numero di IP utilizzati dal NAT, in modo che il BQN possa distribuire il traffico tra più indirizzi. Si può vedere come il traffico è distribuito tra gli IP in Statistiche->Sottoscrittori->Top per tempo.
  • Abilitare il percorso di bypass o, se non è possibile, ridurre la quantità di traffico instradato attraverso il BQN.
  • Disattivare l'ottimizzazione TCP in Configurazione->Impostazioni TCP/ACM.
  • Potrebbe essere necessario un aggiornamento dell'hardware. Contattare l'assistenza Bequant .

Non vengono ricevuti messaggi RADIUS

Se nella GUI di BQN non vengono visualizzate informazioni RADIUS, per verificare se sono in arrivo messaggi RADIUS, accedere alla shell di BQN ed eseguire il seguente comando:


$ ssh bqnadm@192.168.0.121
bqnadm@bqn# system interface en0o1 capture filter 'udp and port 1813'
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes


In questo esempio, l'interfaccia di gestione è eno1. Controllare quella del proprio server BQN in Configurazione->Interfacce->Gestione (lo 0 aggiunto dalla configurazione BQN deve essere rimosso, ad esempio, en0s1f0 nella GUI BQN è ens1f0 in Linux).

Se il firewall BQN è configurato(Configurazione->Interfacce->Firewall di gestione), è necessario aggiungere tutti gli IP dei client RADIUS (in questo esempio, 10.10.10.10 e 10.10.10.11).

Ora i messaggi RADIUS dovrebbero essere ricevuti:


bqnadm@bqn# system interface en0o1 capture filter 'udp and port 1813'
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes
14:21:20.177347 IP 10.10.10.10.60072 > 192.168.0.121.radius-acct: RADIUS, Accounting Request (4), id: 0xf0 length: 222
14:21:20.177424 IP 192.168.0.121.radius-acct > 10.10.10.10.60072: RADIUS, Accounting Response (5), id: 0xf0 length: 20
. . .

Se i messaggi RADIUS non vengono ancora ricevuti, è necessario verificare il resto del traffico. Nel nostro esempio, i client RADIUS si trovano nella sottorete 10.10.10.0/24 e il BQN nella sottorete 192.168.0.0/24. Occorre verificare se esistono percorsi validi tra le due sottoreti e se nessun firewall intermedio blocca la porta UDP 1813 (RADIUS Accounting). È possibile iniziare la verifica dal client RADIUS; ad esempio, se si tratta di un Mikrotik, utilizzare Strumenti->Tourch con la porta radius-acct.

Se i messaggi RADIUS vengono ricevuti, ma le informazioni non si riflettono come previsto, attivare il registro eventi entrando nella shell del server BQN tramite ssh:

bqnadm@bqn# configure
bqnadm@bqn(config)# api common
bqnadm@bqn(config-api)# event level general
bqnadm@bqn(config-api)# event level radius
bqnadm@bqn(config-api)# event level policy
bqnadm@bqn(config-api)# event level subscriber
bqnadm@bqn(config-api)# root
bqnadm@bqn(config)# commit
bqnadm@bqn(config)# end
bqnadm@bqn#

L'acquisizione del traffico è possibile anche dalla GUI, in Stato->Interfacce->Stato del collegamento, selezionando l'interfaccia di gestione e utilizzando "udp 1812 e udp 1813" come filtro:

Ora è possibile vedere il registro degli eventi delle richieste RADIUS ricevute:

bqnadm@bqn# show api event log
2023-05-24T18:16:32.138 [radius] Sent Accounting-Response message to 172.27.1.194:42043: id(134)
2023-05-24T18:16:32.138 [radius] Received Accounting-Request message from 172.27.1.194:42043: id(134) statusType(start) framedIpAddress(10.0.0.11) mikrotikAddressList() mikrotikRateLimit(45M/90M 90M/100M 45M/90M 5/5)
2023-05-24T18:16:32.138 [policy] Created "RA-45M/90M-90M/100M-45M/90M-5" policy: rate(45000/90000) burstRate(90000/100000) burstDurationMs(5000/5000) burstThreshold(45000/90000) burstThresholdWindow(-1/-1) burstTransitionDurationMs(-1/-1) autoCongestionManagement(yes/yes)
2023-05-24T18:16:32.138 [subscriber] Updated "10.0.0.11" subscriber: policy(RA-45M/90M-90M/100M-45M/90M-5) sessionId(1234) userName(Sub-102) callingStationId(+34100100102) nasId() nasPort(4294967295)
2023-05-24T18:16:32.157 [radius] Sent Accounting-Response message to 172.27.1.194:22090: id(75)
2023-05-24T18:16:32.157 [radius] Received Accounting-Request message from 172.27.1.194:22090: id(75) statusType(start) framedIpAddress(10.0.0.12) mikrotikAddressList() mikrotikRateLimit(10M/20M 0K/0K 0K/0K 0/0)
2023-05-24T18:16:32.157 [subscriber] Updated "10.0.0.12" subscriber: policy(RA-10M/20M-0K-0K-0) sessionId(1234) userName(Sub-103) callingStationId(+34100100103) nasId() nasPort(4294967295)
. . .

Non vengono ricevuti messaggi REST

Se le informazioni REST non vengono visualizzate nella GUI, è possibile verificare la ricezione dei messaggi REST nel BQN accedendo alla shell BQN ed eseguendo il seguente comando:


$ ssh bqnadm@192.168.0.121
bqnadm@bqn# system interface en0o1 capture filter ‘tcp and port 3443’
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes


In questo esempio, eno1 è l'interfaccia di gestione.

Controllare quella del server andando in Configurazione->Interfacce->Gestione (rimuovere lo 0 aggiunto dalla configurazione BQN, ad esempio, en0s1f0 nella GUI BQN è ens1f0 in UNIX).

Se il firewall BQN è configurato(Configurazione->Interfacce->Management Firewall), è necessario aggiungere gli IP di tutti i client REST (nel nostro esempio, 10.10.10.10 e 10.10.10.11).

Ora i messaggi dovrebbero essere ricevuti:

bqnadm@bqn# system interface en0o1 capture filter ‘tcp and port 3443’
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes
17:30:30.767149 IP 192.168.88.12.48316 > 192.168.88.13.ov-nnm-websrv: Flags [S], seq 639501187, win 64240, options [mss 1460,sackOK,TS val 3813494325 ecr 0,nop,wscale 7], length 0
17:30:30.767163 IP 192.168.88.13.ov-nnm-websrv > 192.168.88.12.48316: Flags [S.], seq 2135448282, ack 639501188, win 28960, options [mss 1460,sackOK,TS val 607264358 ecr 3813494325,nop,wscale 5], length 0
17:30:30.767260 IP 192.168.88.12.48316 > 192.168.88.13.ov-nnm-websrv: Flags [.], ack 1, win 502, options [nop,nop,TS val 3813494325 ecr 607264358], length 0
. . .

Se i messaggi REST non vengono ancora ricevuti, verificare le altre fasi del traffico. In questo esempio, i client REST si trovano in 10.10.10.0/24 e il BQN in 192.168.0.0/24. Verificare che esistano percorsi validi tra le due sottoreti e che nessun firewall intermedio stia bloccando la porta TCP 3443.

Se i messaggi REST vengono ricevuti, ma le informazioni non si riflettono come previsto, attivare il registro eventi e le tracce entrando nella shell del server BQN tramite ssh:

bqnadm@bqn# configure
bqnadm@bqn(config)# api common
bqnadm@bqn(config-api)# event level general
bqnadm@bqn(config-api)# event level rest
bqnadm@bqn(config-api)# event level policy
bqnadm@bqn(config-api)# event level subscriber
bqnadm@bqn(config-api)# root
bqnadm@bqn(config)# api rest
bqnadm@bqn(config-rest)# trace request 5
bqnadm@bqn(config-rest)# trace response 5
bqnadm@bqn(config-rest)# root
bqnadm@bqn(config)# commit
bqnadm@bqn(config)# end
bqnadm@bqn#

Ora è possibile vedere il registro degli eventi delle richieste REST ricevute. Nell'esempio seguente, il BQN riceve alcuni POST che assegnano gli abbonati alle politiche tariffarie:

bqnadm@bqn# show api event log
2023-05-24T17:41:40.268 [subscriber] [10.0.0.3] Updated subscriber: policy(rest-static-3) sessionId() subscriberId(n/a) customerId(1) name() mac() nasId() nasPort(4294967295) change(0x71)
2023-05-24T17:41:40.268 [rest] [172.27.1.194:49428] Send HTTP response: code(200) httpLength(70) contentLength(0) hdrExt(0)
2023-05-24T17:41:40.296 [rest] [172.27.1.194:49434] Received HTTP request: method(POST) hdr(44/248) uri(/api/v1/subscribers/10.0.0.4) authorization(Basic) contentLength(56) connection(0) transferEncoding(0x0)
2023-05-24T17:41:40.296 [subscriber] [10.0.0.4] Created subscriber: policy(rest-static-1) sessionId() subscriberId(sub-4) customerId() name() mac() nasId() nasPort(4294967295) change(0x7fff)
2023-05-24T17:41:40.296 [rest] [172.27.1.194:49434] Send HTTP response: code(201) httpLength(75) contentLength(0) hdrExt(0)
. . .

Le tracce delle ultime richieste e risposte si trovano nella directory /opt/bqn/var/trace:

bqn0:~ # ls -al /opt/bqn/var/trace/rest*
-rw-r--r-- 1 root root 318 May 24 15:14 rest-req-0000
-rw-r--r-- 1 root root 364 May 24 11:30 rest-req-0001
-rw-r--r-- 1 root root 358 May 24 11:30 rest-req-0002
. . .

I messaggi REST vengono rifiutati

Se una richiesta API REST riceve un errore relativo alla certificazione, ad esempio:


curl -i -m 20 -u myuser:mypassword -X GET https://192.168.0.120:3443/api/v1/subscribers -H "Content-Type: application/json"
curl: (60) SSL certificate problem: self-signed certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the webpage mentioned above.

Il motivo è che il certificato BQN è autofirmato e il client deve disabilitare la convalida del certificato. Ad esempio, utilizzando curl:


curl -i -k -m 20 -u myuser:mypassword -X GET https://192.168.0.120:3443/api/v1/subscribers -H "Content-Type: application/json"

E utilizzando python:


import requests
import base64
 
 
credentials = "myuser:mypassword"
encoded_credentials = base64.b64encode(credentials.encode()).decode()
URL = https://192.168.0.120:3443/api/v1/subscribers
headers = {
    "accept": "application/json",
    "authorization": f"Basic {encoded_credentials}"
}
 
response = requests.get(URL, headers=headers, verify=False)

BQN utilizza il protocollo TLS 1.2. Alcune nuove versioni di python rifiutano TLS 1.2 per impostazione predefinita. Per farlo accettare, utilizzare il seguente codice:


import requests
from requests.adapters import HTTPAdapter
PY_VERSION = platform.python_version().split('.')
if int(PY_VERSION[1]) >= 7:  # 3.7 or more
  from requests.packages.urllib3.util.ssl_ import create_urllib3_context

class BqnRestAdapter(HTTPAdapter):
    """
    Adapter to control the level of security of SSL sessions of HTTPS requests.
    Needed to avoid issues depending on the python/requests/openssl versions.
    """
    # We use python 3.7 defaults
    CIPHERS = ('DEFAULT:!aNULL:!eNULL:!MD5:!3DES:!DES:!RC4:!IDEA:!SEED:!aDSS:!SRP:!PSK')

    def init_poolmanager(self, connections, maxsize, block=False):
      context = create_urllib3_context(ciphers=BqnRestAdapter.CIPHERS)
      context.check_hostname = False
      pool = super(BqnRestAdapter, self)
      pool.init_poolmanager(connections=connections,
              maxsize=maxsize,
              block=block,
              ssl_context=context)
      return pool

    def proxy_manager_for(self, connections, maxsize, block=False):
      context = create_urllib3_context(ciphers=BqnRestAdapter.CIPHERS)
      context.check_hostname = False
      pool = super(BqnRestAdapter, self)
      pool.proxy_manager_for(connections=connections,
              maxsize=maxsize,
              block=block,
              ssl_context=context)
      return pool
      
  ...
      
  uriRoot = "https://192.168.0.120:3443/api/v1"
  session = requests.Session()
  session.verify = False
  session.auth = ("myuser", "mypassword")
  session.headers =  {
      "Content-Type": "application/json; charset=utf-8",
      "Accept-Charset": "utf-8"
  }
  session.mount(uriRoot, BqnRestAdapter())
   
  response = session.get(uriRoot + "/policies/rate?policyId=1")

 Un esempio completo è disponibile qui.

Non vengono ricevuti messaggi di fatturazione

Se il sistema di fatturazione è configurato e l'icona Fatturazione nella Dashboard è rossa, l'accesso al sistema di fatturazione non è possibile.

Cliccare sull'icona della fatturazione per accedere alla pagina dello stato di fatturazione:

In questo esempio, la sincronizzazione è avvenuta con successo alle 12:13:52, recuperando 1000 abbonati, ma successivamente c'è stato un tentativo fallito. È possibile forzare un tentativo di sincronizzazione premendo il pulsante Sincronizza ora.

Se il guasto persiste, procedere come segue:

  • Verificare che la configurazione della fatturazione sia corretta (direzione e credenziali).
  • Verificare che l'indirizzo IP di fatturazione sia raggiungibile dal server BQN:
bqnadm@bqn# net ping 192.168.0.122
PING 192.168.0.122 (192.168.0.122) 56(84) bytes of data.
64 bytes from 172.27.1.194: icmp_seq=1 ttl=64 time=0.169 ms
64 bytes from 172.27.1.194: icmp_seq=2 ttl=64 time=0.180 ms
64 bytes from 172.27.1.194: icmp_seq=3 ttl=64 time=0.152 ms
^C
bqnadm@bqn#
  • Abilitare i registri API entrando nella shell del server BQN tramite ssh:

bqnadm@bqn# configure
bqnadm@bqn(config)# api common
bqnadm@bqn(config-api)# event level general
bqnadm@bqn(config-api)# event level billing
bqnadm@bqn(config-api)# event level policy
bqnadm@bqn(config-api)# event level subscriber
bqnadm@bqn(config-api)# commit
bqnadm@bqn(config-api)# end
bqnadm@bqn#

Ora è possibile vedere il registro degli eventi tra il BQN e il sistema di fatturazione. Nell'esempio seguente, il BQN si collega a un sistema di fatturazione Azotel e recupera tre politiche associate a dieci abbonati:


bqnadm@bqn# show api event log
2022-12-09T10:43:54.480 [billing] Sent HTTP POST request: uri(/restapi/listCustomerBucketData) host(172.27.1.194:443)
2022-12-09T10:43:54.482 [policy] Updated "AZ-1000-500" policy: rate(500/1000)
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.1 subscriber: policy(AZ-1000-500) block(no) customerId(10) name(Subscriber_number_10) nickname()
2022-12-09T10:43:54.482 [policy] Updated "AZ-2000-1000" policy: rate(1000/2000)
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.2 subscriber: policy(AZ-2000-1000) block(no) customerId(11) name(Subscriber_number_11) nickname()
2022-12-09T10:43:54.482 [policy] Updated "AZ-3000-1500" policy: rate(1500/3000)
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.3 subscriber: policy(AZ-3000-1500) block(no) customerId(12) name(Subscriber_number_12) nickname()
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.4 subscriber: policy(AZ-1000-500) block(no) customerId(13) name(Subscriber_number_13) nickname()
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.5 subscriber: policy(AZ-2000-1000) block(no) customerId(14) name(Subscriber_number_14) nickname()
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.6 subscriber: policy(AZ-3000-1500) block(no) customerId(15) name(Subscriber_number_15) nickname()
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.7 subscriber: policy(AZ-1000-500) block(no) customerId(16) name(Subscriber_number_16) nickname()
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.8 subscriber: policy(AZ-2000-1000) block(no) customerId(17) name(Subscriber_number_17) nickname()
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.9 subscriber: policy(AZ-3000-1500) block(no) customerId(18) name(Subscriber_number_18) nickname()
2022-12-09T10:43:54.482 [subscriber] Created 10.0.0.10 subscriber: policy(AZ-1000-500) block(no) customerId(19) name(Subscriber_number_19) nickname()
2022-12-09T10:43:54.482 [billing] Updated 10/10 billing subscribers
bqnadm@bqn#

Se si verifica un errore, il log dovrebbe fornire qualche indicazione su ciò che sta accadendo.

  • È anche possibile estendere la registrazione a tracce dettagliate delle richieste e delle risposte scambiate tra il BQN e il sistema di fatturazione:

bqnadm@bqn# configure
bqnadm@bqn(config)# api billing
bqnadm@bqn(config-api)# trace request 5
bqnadm@bqn(config-api)# trace response 5
bqnadm@bqn(config-api)# commit
bqnadm@bqn(config-api)# end
bqnadm@bqn#

BQN genererà le tracce delle ultime 5 richieste e risposte tra BQN e il sistema di fatturazione. Le tracce si trovano nella directory /opt/bqn/var/trace:


bqn0:~ # ls -al /opt/bqn/var/trace/billing*
-rw-r--r-- 1 root root  224 Apr 13 18:43 /opt/bqn/var/trace/billing-req-0000
-rw-r--r-- 1 root root  224 Apr 13 18:43 /opt/bqn/var/trace/billing-req-0001
-rw-r--r-- 1 root root 1955 Apr 13 18:43 /opt/bqn/var/trace/billing-rsp-0000
-rw-r--r-- 1 root root 1955 Apr 13 18:43 /opt/bqn/var/trace/billing-rsp-0001
. . .
  • Come ultima risorsa, è possibile inviare una richiesta direttamente dal BQN al sistema di fatturazione utilizzando il comando UNIX curl, seguendo le convenzioni API del sistema di fatturazione. Ad esempio, per inviare una richiesta a un sistema di fatturazione Azotel:

PS C:\Users\myuser>ssh root@bqn
bqn:~ # curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X POST -d  '{"api_username": "myuser", "api_password": "mypassword", "allcustomers": "1"}' https://demo.azotel.com/restapi/listCustomerBucketData
{"ip":"10.10.0.12","result":0}
bqn:~ #

Nessun server NTP sincronizzato

Se l'icona NTP è gialla, l'NTP non è configurato. Fare clic sull'icona per accedere alla pagina di configurazione.

Se i server NTP sono configurati ma il BQN non può sincronizzarsi con nessuno di essi, l'icona NTP nel dash sarà arancione:

Una variazione improvvisa dell'ora del sistema, dovuta alla mancanza di sincronizzazione NTP, può comportare brevi perdite di servizio mentre il sistema si adatta. Per evitare che ciò accada, è necessario che almeno un server NTP sia sempre sincronizzato.

È possibile controllare l'elenco dei server NTP configurati in Amministrazione->Data del sistema->Server NTP.

È necessario sincronizzare almeno un server NTP. Nell'esempio precedente, il server NTP 145.238.203.14 è stato scelto per la sincronizzazione dell'orologio (indicato dal simbolo * accanto all'indirizzo IP del server) ed è stato contattato 36 secondi fa (colonna WHEN).

Se non è disponibile un server NTP, il BQN mostrerà il messaggio di avviso NTP non sincronizzato, come nella finestra seguente:

To solve the issue, if you have a local NTP server, add it to the list clicking the <i class="fa-solid fa-ellipsis-vertical"></i> menu icon and selecting Add Server…

Se non si dispone di server NTP locali, assicurarsi che la porta UDP 123 sia aperta dall'IP di gestione del BQN verso Internet, anche nel firewall del BQN, se attivato.

Problemi del disco

Per controllare lo stato del disco di sistema, fare clic sull'icona DISK del dashboard:

L'icona del disco è arancione (stato di avviso) quando è libero meno del 15% della memoria del disco.

Tag di stile dei documenti
[.p-highlight] Lorem ipsum... [.p-highlight]

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

[.p-highlight-blue] Lorem ipsum... [.p-highlight-blue]

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

[.p-highlight-red] Lorem ipsum... [.p-highlight-red]

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Anteprima per la parola singola [.c-highlight]mono-spazio[.c-highlight].
Anteprima del singolo word mono-spaced stile.
precedente
AVANTI