====== 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//