Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
Наблюдение на WiFi
потребителите с
DUDE и GRAFANA
За мен
Мрежа в Булгартрансгаз
Мрежа за гости
Наблюдение на WiFi потребителите с инструментите на Mikrotik
Grafana
Съдържание
За мен
Петър Цонев
Занимавам се с мрежи и комуникации от 2006
В отбора на Mikrotik от 2014
CCNA, CCNP, CCNA SECURITY, MTCNA, MTCWE, MTCRE, MTCTCE,
MTCUME, MTCIPv6E, MTCINE
Булгартрансгаз ЕАД
WAN мрежа до 2015
Mikrotik ера
376
Мрежа за гости
4 CAPsMAN
113 AP
УВЦ Република
УВЦ Република
Up
Администрация Фитнес
Етаж 1 Ресторант
Етаж 2 Зала
Етаж 3
Етаж 4
РецепцияЛоби Бар
WiFi покритие
24 cAP ac
CCR1009Ver 6.47
Конфигурация на CAPsMAN
Конфигурация на CAPsMAN
Конфигурация на CAPsMANЦялата конфигурация се извършва в CAPsMAN
Цялата информация е в CAPsMAN
Конфигурация в DUDE
Конфигурация в DUDE
Конфигурация на cAP
Конфигурация на cAP
Конфигурация на cAP
[root@localhost ~]# snmpwalk -v2c -c ******** 192.168.52.70 .1.3.6.1.4.1.14988.1.1.1
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.2.1 = Gauge32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.2.2 = Gauge32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.3.1 = Gauge32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.3.2 = Gauge32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.4.1 = INTEGER: 1
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.4.2 = INTEGER: 1
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.5.1 = STRING: "MikroTik"
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.5.2 = STRING: "MikroTik"
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.6.1 = ""
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.6.2 = ""
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.7.1 = INTEGER: 2412
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.7.2 = INTEGER: 5180
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.8.1 = STRING: "2412/20/gn(30dBm)"
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.8.2 = STRING: "5180/20-Ce/ac/P(23dBm)"
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.9.1 = Counter32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.9.2 = Counter32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.10.1 = Counter32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.1.1.10.2 = Counter32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.4.0 = Gauge32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.6.0 = Gauge32: 0
SNMPv2-SMI::enterprises.14988.1.1.1.10.0 = Gauge32: 0
Конфигурация в DUDE
2G freq:
[oid("iso.org.dod.internet.private.enterprises.mikrotik.mikrotikExperimentalM
odule.mtXRouterOs.mtxrWireless.mtxrWlStatTable.mtxrWlStatEntry.mtxrWlStatFreq
.1")]
5G freq:
[oid("iso.org.dod.internet.private.enterprises.mikrotik.mikrotikExperimentalM
odule.mtXRouterOs.mtxrWireless.mtxrWlStatTable.mtxrWlStatEntry.mtxrWlStatFreq
.2")]
Конфигурация в DUDE
Каква информация може
да извлечем от
CAPsMAN?
Колко AP има?
Колко потребителя има?[admin@Republika] > caps-man remote-cap print count-only
24
[admin@Republika] > caps-man registration-table print count-only
3
Kъде са потребителите?1. От TAB Radio се виждат безжичните интерфейси, които се управляват от CAPsMAN
:foreach i in=[/caps-man radio find] do={
:set $strCapInterface ([/caps-man radio get $i interface])
:set $strCapID ([/caps-man radio get $i remote-cap-identity])
Kъде са потребителите?1. От TAB Radio се виждат безжичните интерфейси, които се управляват от CAPsMAN
2. От TAB Remote CAP за всеки AP се определя IP:
:foreach i in=[/caps-man radio find] do={
:set $strCapInterface ([/caps-man radio get $i interface])
:set $strCapID ([/caps-man radio get $i remote-cap-identity])
:set $strCapIP ([/caps-man remote-cap get [find identity=$strCapID] address])
:set $strCapIP ([:pick $strCapIP 0 [:find $strCapIP "/"]])
Kъде са потребителите?1. От TAB Radio се виждат безжичните интерфейси, които се управляват от CAPsMAN
2. От TAB Remote CAP за всеки AP се определя IP.
3. От TAB Registration Table определяме броят на клиентите към всеки интерфейс:
:foreach i in=[/caps-man radio find] do={
:set $strCapInterface ([/caps-man radio get $i interface])
:set $strCapID ([/caps-man radio get $i remote-cap-identity])
:set $strCapIP ([:pick $strCapIP 0 [:find $strCapIP "/"]])
:set $strClients ([:len [/caps-man registration-table find \
interface=$strCapInterface]] )
Kъде са потребителите?1. От TAB Radio се виждат безжичните интерфейси, които се управляват от CAPsMAN
2. От TAB Remote CAP за всеки AP се определя IP.
3. От TAB Registration Table определяме броят на клиентите към всеки интерфейс.
4. Определяне на клиентите, към кой под интерфейс принадлежат (2.4G или 5G)
:foreach i in=[/caps-man radio find] do={
:set $strCapInterface ([/caps-man radio get $i interface])
:set $strCapID ([/caps-man radio get $i remote-cap-identity])
:set $strCapIP ([:pick $strCapIP 0 [:find $strCapIP "/"]])
:set $strClients ([:len [/caps-man registration-table find \
interface=$strCapInterface]] )
:set $strSubInterface ([:pick $strCapInterface \
([:len $strCapInterface]-1)])
:put ($strCapInterface . " " . $strClients . " ". $strCapIP)
:log info ($strCapInterface . " ". $strSubInterface ." " . $strCapID . " " .\
$strCapIP . " " . $strClients)
Как да прехвърлим информацията в AP?
:set $intPingSize ($strSubInterface * 100 + $strClients)
/ping $strCapIP size=$intPingSize count=1
SSH?
PING
Скрипт за CAPsMAN
:global strCapID
:global strCapIP
:global strCapInterface
:global strSubInterface
:global strClients
:global intPingSize
:foreach i in=[/caps-man radio find] do={
:set $strCapInterface ([/caps-man radio get $i interface])
:set $strCapID ([/caps-man radio get $i remote-cap-identity])
:set $strCapIP ([:pick $strCapIP 0 [:find $strCapIP "/"]])
:set $strClients ([:len [/caps-man registration-table find \
interface=$strCapInterface]] )
:set $strSubInterface ([:pick $strCapInterface ([:len $strCapInterface]-1)])
:set $intPingSize ($strSubInterface * 100 + $strClients)
/ping $strCapIP size=$intPingSize count=1
:log info ($strCapInterface . " ". $strSubInterface ." " . $strCapID . " " . \
$strCapIP . " " . $strClients)
Как AP интерпретира информацията?
[admin@UVC_Reception] > ip firewall filter print
Flags: X - disabled, I - invalid, D - dynamic
1 chain=input action=log protocol=icmp src-address=192.168.52.11 log-prefix="CAPSMAN"
10:43:39 firewall,info CAPSMAN input: in:bridge1 out:(unknown 0), src-mac
6c:3b:6b:ed:8f:97, proto ICMP (type 8, code 0), 192.168.52.11->192.16
8.52.90, len 101
10:43:39 firewall,info CAPSMAN input: in:bridge1 out:(unknown 0), src-mac
6c:3b:6b:ed:8f:97, proto ICMP (type 8, code 0), 192.168.52.11->192.16
8.52.90, len 200
10:48:40 firewall,info CAPSMAN input: in:bridge1 out:(unknown 0), src-mac
6c:3b:6b:ed:8f:97, proto ICMP (type 8, code 0), 192.168.52.11->192.16
8.52.90, len 101
10:48:40 firewall,info CAPSMAN input: in:bridge1 out:(unknown 0), src-mac
6c:3b:6b:ed:8f:97, proto ICMP (type 8, code 0), 192.168.52.11->192.16
8.52.90, len 200
Как AP интерпретира информацията?
:global intWiFi1
:global intWiFi2
:global intWiFi
:global strLog
:global startBuf [:toarray [/log find message~"CAPSMAN"]]
:foreach i in=$startBuf do={
:set $strLog [/log get $i message]
:set $intWiFi [:pick $strLog ([:find $strLog "len"] +4) [:len $strLog]]
:if ($intWiFi < 199) do={
:set $intWiFi1 ($intWiFi-100)
}
:if ($intWiFi > 199) do={
:set $intWiFi2 ($intWiFi-200)
}
}
Изпълненение на скриптовете:
[admin@Republika] > system scheduler print
Flags: X - disabled
# NAME START-DATE START-TIME INTERVAL ON-EVENT RUN-COUNT
1 scheduleSendWifiClients may/19/2019 18:23:39 5m /system script run... 13674
[admin@UVC_Reception] > system scheduler print
Flags: X - disabled
# NAME START-DATE START-TIME INTERVAL ON-EVENT RUN-COUNT
0 scheduleWiFiClients may/19/2019 18:06:32 5m /system script run... 13639
Показване в DUDE
Показване в DUDE
WiFi1-[capsman_wifi1()]WiFi2-[capsman_wifi2()]
Показване в DUDE
Проблемът с TSDB
Mikrotik + GRAFANA
Mikrotik API
Mikrotik API
Конфигурация в CAPsMAN
Python
from routeros_api_v2 import Api
GRAFANA
GRAFANA
GRAFANA
GRAFANA
GRAFANA
GRAFANA
GRAFANA
GRAFANA
GRAFANA
ВЪПРОСИ ?
RB1100AHx4
DUDE EDITION
Благодаря за вниманието