====== Network Monitoring ======
Lze provádět pomocí:
* Syslog zpráv
* SNMP
* IP SLA
===== Syslog =====
Formát zprávy (logu):
{{:wiki:site:cisco:b-1.png|}}
* **Timestamp** - datum a čas dle interních hodin stroje, defaultně se však jedná o uptime!
* **Facility code** - systémová identifikace funkce nebo modulu
* **Severity** - důležitost (0-7), čím nižší-tím větší průšvih
* **Mnemonic** - kategorizace události v rámci funkce nebo modulu
* **Message Text** - popis události
{{:wiki:site:cisco:b-2.png|}}
* na switchi lze nakonfigurovat jaký typ událostí má logovat (nastavením severenity 2 se budou logovat jen události 2,1 a 0)
* na zkoušku je třeba znát zpaměti pořadí typů událostí a jejich čísla !!!
* Pozor - "greater severity" = nižší číslo!!
Logy se mohou:
* Zobrazovat v konzoli
* Ukládat ve vnitřní paměti (bufferu)
* Posílat na syslog server
==== Logování do konzole ====
* defaultně Debugging level (severity 7)
* logy se zobrazují jen při **přímém** připojení PC ke konzoli
>Switch(config)# **logging console** //severity(číslo 0-7 nebo slovo)//
Zobrazování logů v terminálu připojeném Telnetem / SSH:
>Switch# **terminal monitor**
==== Logování do interního bufferu ====
* defaultně je buffer vypnutý
* buffer je omezen svou velikostí (def. 4096bytů=cca 50 řádků), nejstarší zprávy přepisuje novými
* velikost bufferu lze změnit
>Switch(config)# **logging buffered** //severity (0-7 nebo slovo)//
>Switch(config)# **logging buffered** //size (4096 - 2147483647)//
>Switch# **show logging**
==== Logování na vzdálený syslog server ====
* UDP 514
* server může sbírat logy z mnoha zařízení najednou a uchovávat je po dlouhou dobu
>Switch(config)# **logging** //host//
>Switch(config)# **logging trap** //severity(0-7)//
Na access portech je dobré vypnout logování up/down stavu portů (nezajímá nás každé vypnutí/zapnutí PC). Každá změna stavu linky totiž vyvolá Error 3 a každá změna stavu line protocolu vyvolá Notification 5.
>Switch(config-if)# **no logging event link-status**
==== Timestamps ====
Defaultně switche používají jako timestamp **uptime**, což je nepřehledné. Viz. příklad:
20w2d: %LINK-3-UPDOWN: Interface FastEthernet1/0/27, changed state to down
21w3d: %SYS-5-CONFIG_I: Configured from console by vty0 (172.25.15.246)
>Switch# **show clock**
Switch# show clock
*00:54:09.691 UTC Mon Mar 1 1993
Switch#
Nastavení časové zóny a času:
>Switch(config)# **clock timezone** //name offset-hours// [//offset-minutes//]
>Switch(config)# **clock summer-time** //name// **date** //start-month day year hh:mm end-month day year hh:mm// [//offset-minutes//]
NEBO:
>Switch(config)# **clock summer-time** //name// **recurring** [//start-week day month hh:mm end-week day month hh:mm// [//offset-minutes//]]
>Switch(config)# **exit**
>Switch# **clock set** //hh:mm:ss//
Nastavení NTP serveru:
>Switch(config)# **ntp server** //server-ip//
>Switch# **show ntp status**
Požití času jako timestamp v syslog zprávách:
>Switch(config)# **service timestamps log datetime** [**localtime**] [**show-timezone**] [**msec**] [**year**]
* **localtime** - použití místního času namísto UTC
* **show-timezone** - zobrazování názvu časové zóny v logu
* **msec** - zobrazování msec v logu
* **year** - zobrazování roku v logu
Switch(config)# service timestamps log datetime localtime show-timezone msec
Switch(config)# exit
Switch# show logging
*May 2 02:39:23.871 EDT: %DIAG-SP-6-DIAG_OK: Module 1: Passed Online Diagnostics
*May 2 02:39:27.827 EDT: %HSRP-5-STATECHANGE: Vlan62 Grp 1 state Standby -> Active
*May 2 02:41:40.431 EDT: %OIR-SP-6-INSCARD: Card inserted in slot 9, interfaces are now online
*May 3 08:24:13.944 EDT: %IP-4-DUPADDR: Duplicate address 10.1.2.1 on Vlan5, sourced by 0025.64eb.216f
*May 13 09:55:57.139 EDT: %SYS-5-CONFIG_I: Configured from console by herring on vty0 (10.1.1.7)
===== SNMP =====
* **SNMP Manager** - aplikace v dohledovém centru, která rozesílá požadavky a přijímá informace
* **SNMP Agent** - služba běžící na sledovaném zařízení, odpovídá na požadavky managera, popř. zasílá "trapy" událostí. Shromažďuje data o zařízení do interní databáze MIB (Management Information Base)
=== MIB ===
* hierarchická-stromová struktura
* proměnné jsou uchovávány v jednotlivých MIB, které jsou větví jiných MIB
* každá proměnná je jednoznačně učena tzv. OID, což je řetězec čísel popisující umístění proměné ve stromě MIB od kořene
=== Typy požadavků ===
* UDP 161
* **Get Request** - dotaz na konkrétní proměnou
* **Get Next Request** - dotaz na další proměnou v pořadí
* **Get Bulk Request** - dotaz na celo tabulku proměných dané MIB
* **Set Request** - nastavení proměnné na požadovanou hodnotu
* tyto požadavky bývají zasílány managerem v periodických intervalech, nedokáží tedy odhalit "problém" okamžitě
=== Trapy ===
* UDP 162
* **SNMP Trap** - okamžité odeslání informace o změně hodnoty proměnné do manageru
* **Inform Request** - to samé jako trap, jen vyžaduje potvrzení přijetí
==== Verze SNMP ====
=== SNMPv1 ===
* RFC1157
* pouze **Get** a **Set** requesty
* přístup k informacím je daný jen názvem "community", kdokoliv ho zná má přístup => velké bezpečnostní riziko
* doporučuje se tedy v nejhorším případě používat jen Read Only režim
=== SNMPv2C ===
* RFC1901
* proměnné mohou mít až 64bitů (SNMPv1 jen 32bitů)
* umí navíc **Bulk** request a **Inform** request
=== SNMPv3 ===
* RFC3410 - RFC 3415
* Přidává navíc authentikaci managerů (pomocí username) a širování přenášených dat
* manažeři mohou být tříděni do skupin s různými úrovněmi zabezpečení dle username
* **noAuthNoPriv** - SNMP pakety nejsou authentikovány ani šifrovány
* **authNoPriv** - SNMP pakety jsou authentikovány, ale nejsou šifrovány
* **authPriv** - SNMP pakety jsou authentikovány a šifrovány
=== Bezpečnost ===
* Doporučuje se používat SNMPv3 z důvodu bezpečnosti
* V případě nutnosti použití SNMPv1 SNMPv2C se doporučuje používat je Read Only režim
* V každém případě se doporučuje použít ACL k omezení přístupu
==== Konfigurace SNMP ====
=== SNMPv1 ===
>Switch(config)# **access-list** //acl-number// **permit** //ip-addr//
>Switch(config)# **snmp-server community** //string// [**ro** | **rw**] [//acl-number//]
>Switch(config)# **snmp-server host** //host-address community-string// [//trap type//]
=== SNMPv2C ===
>Switch(config)# **access-list** //acl-number// **permit** //ip-addr//
>Switch(config)# **snmp-server community** //string// [**ro** | **rw**] [//acl-number//]
>Switch(config)# **snmp-server host** //host-address// [**informs**] **version 2c** //community-string//
=== SNMPv3 ===
>Switch(config)# **access-list** //acl-number// **permit** //ip-addr//
>Switch(config)# **snmp-server group** //group-name// **v3** {**noauth** | **auth** | **priv**}
>Switch(config)# **snmp-server user** //user-name group-name// **v3 auth** {**md5** | **sha**} //auth-password// **priv** {**des** | **3des** | **aes** {**128** | **192** | **256**}} //priv-password// [//acl-number//]
>Switch(config)# **snmp-server host** //host-address// [**informs**] **version 3** {**noauth** | **auth** | **priv**} //username// [//trap-type//]
* **noauth** - bez autentizace, bez šifrování
* **auth** - s autentizací, bez šifrování
* **priv** - autentizace + šifrování (jen na crypto IOS)
* **snmp-server user** - účet pro SNMP managera
* **auth** - nastavení typu šifrování při autentizaci
* **auth-password** - šifrovací klíč pro data při autentizaci
* **priv** - určuje šifrovací metodu pro data
* **priv-password** - klíč k šifrování dat
===== IP SLA =====
* Service Level Agreement
* Slouží k měření parametrů konkrétního typu provozu end-to-end napříč sítí
* Lze nakonfigurovat různé typy testů
* Na zařízení může běžet několik testů nezávisle na sobě
==== ICMP test ====
{{:wiki:site:cisco:b-3.png|}}
Switch# show ip sla statistics aggregated
Round Trip Time (RTT) for Index 1
Type of operation: icmp-echo
Start Time Index: 15:10:17.665 EDT Fri May 21 2010
RTT Values
Number Of RTT: 24
RTT Min/Avg/Max: 1/1/4 ms
Number of successes: 24
Number of failures: 0
==== Typy testů ====
^Test Type ^Description^IP SLA Required on Target?^
|icmp-echo |ICMP Echo response time|No|
|path-echo |Hop-by-hop and end-to-end response times over path discovered from ICMP Echo|No|
|path-jitter|Hop-by-hop jitter over ICMP Echo path|Yes|
|dns |DNS query response time|No|
|dhcp |DHCP IP address request response time|No|
|ftp |FTP file retrieval response time|No|
|http |Web page retrieval response time|No|
|udp-echo |End-to-end response time of UDP echo|No|
|udp-jitter |Round trip delay, one way delay, one way jitter, one way packet loss, and connectivity using UDP packets|Yes|
|tcp-connect|Response time to build a TCP connection with a host|No|
==== Pokročilé testy ====
* vyžadují konfiguraci SLA na obou koncích testované sítě
* je nutné aby oba konce měli synchonizovaný čas - NTP
* UDP 1967 (IP SLA control protocol)
{{:wiki:site:cisco:b-4.png|}}
IP SLA umí navíc:
* Vygenerovat SNMP trap když test překročí určitou hodnotu
* Naplánovat automaticky další testy, při překročení hodnoty
* Spouštět překlopení protokolů typu HSRP
* Měřit kvalitu přenosu hlasu
==== Konfigurace IP SLA ====
>Switch(config)# **ip sla responder**
>Switch(config)# **ip sla** //operation-number//
>>(Switch(config)# **ip sla monitor** //operation-number// ---OLD Syntax)
>Switch(config-ip-sla)# //test-type parameters ...//
>>(Switch(config-ip-sla)# **test** //test-type// --- OLD Synatx)
>Switch(config-ip-sla)# **icmp echo** //dest-ip// [//src-ip//]
>Switch(config-ip-sla)# **udp-jitter** //destination-ip-addr dest-udp-port// [**source-ip** //source-ip-addr//] [**source-port** //source-udp-port//] [**num-packets** //number-of-packets (def.10)//] [**interval** //packet-interval(def.20ms)//]
>Switch(config-ip-sla)# **udp-jitter** //destination-ip-addr dest-udp-port// **codec** {**g711alaw** | **g711ulaw** | **g729a**} (def.1000 paketů / 20ms )
>Switch(config)# **ip sla schedule** //operation-number// [**life** {**forever** | //seconds(def.3600)//}] [**start-time** {//hh:mm//[://ss//] [//month day// | //day month//] | **pending** | **now** | **after** //hh:mm:ss//}] [**ageout** //seconds//] [**recurring**]
>>(Switch(config)# **ip sla monitor schedule** //operation-number ...// --- OLD Syntax)
>Switch# **show ip sla configuration**
Switch# show ip sla configuration
IP SLAs, Infrastructure Engine-II
Entry number: 100
Owner:
Tag:
Type of operation to perform: echo
Target address: 172.25.226.1
Source address: 0.0.0.0
Request size (ARR data portion): 28
Operation timeout (milliseconds): 5000
Type Of Service parameters: 0x0
Verify data: No
Vrf Name:
Schedule:
Operation frequency (seconds): 5
Next Scheduled Start Time: Start Time already passed
Group Scheduled : FALSE
Randomly Scheduled : FALSE
Life (seconds): Forever
Entry Ageout (seconds): never
Recurring (Starting Everyday): FALSE
Status of entry (SNMP RowStatus): Active
Threshold (milliseconds): 5000
Distribution Statistics:
Number of statistic hours kept: 2
Number of statistic distribution buckets kept: 1
Statistic distribution interval (milliseconds): 20
History Statistics:
Number of history Lives kept: 0
Number of history Buckets kept: 15
History Filter Type: None
Enhanced History:
>Switch# **show ip sla statistics 100**
Switch# show ip sla statistics 100
Round Trip Time (RTT) for Index 100
Latest RTT: 1 ms
Latest operation start time: 15:52:00.834 EDT Fri May 28 2010
Latest operation return code: OK
Number of successes: 117
Number of failures: 0
Operation time to live: Forever
>Switch# **show ip sla statistics aggregated 100**
Switch# show ip sla statistics aggregated 100
Round Trip Time (RTT) for Index 100
Type of operation: icmp-echo
Start Time Index: 15:43:55.842 EDT Fri May 28 2010
RTT Values
Number Of RTT: 121
RTT Min/Avg/Max: 1/1/4 ms
Number of successes: 121
Number of failures: 0
==== HSRP tracking SLA ====
>Switch(config)# **track** //object-number// **ip sla** //operation-number// {**state** | **reachability**}
>Switch(config-if)# **standby** //group// **track** //object-number// **decrement** //decrement-value//