Πίσω στο blog

English  ·  Ελληνικά

Cisco / IOS  ·  Tutorial  ·  Αυγουστος 2026

Cisco IOS
Observability

Το λιγότερο εντυπωσιακό config στη συσκευή, και αυτό για το οποίο θα είσαι πιο ευγνώμων στις 3 το πρωί. Συγχρονισμένος χρόνος ώστε τα logs να ταιριάζουν, κεντρικό syslog ώστε τα στοιχεία να επιβιώνουν ένα reboot, SNMPv3 ώστε να παρακολουθείσαι, και NetFlow ώστε να απαντάς στο «τι έτρωγε όλη τη bandwidth;» — αφού έχει ήδη συμβεί.

Cisco IOS NTP Syslog SNMP NetFlow Monitoring Ops

Cisco device 4 ροές τηλεμετρίας NTP ← χρόνος Syslog → γεγονότα SNMP ⇄ υγεία NetFlow → ποιος το χρησιμοποίησε Ο χρόνος κάνει αξιόπιστα τα άλλα τρία. Ρύθμισε το NTP πρώτο, πάντα.

Όταν κάτι σπάει σε ένα site πελάτη, η διαφορά ανάμεσα σε μια διάγνωση πέντε λεπτών και μια εικασία πέντε ωρών είναι αν το δίκτυο κατέγραφε. Τέσσερις υπηρεσίες κάνουν αυτή την καταγραφή, και είναι το πρώτο πράγμα που ρυθμίζουμε σε κάθε συσκευή που αναλαμβάνουμε — πριν τα VLAN, πριν τη δρομολόγηση. Το NTP δίνει σε κάθε συσκευή το ίδιο ρολόι, ώστε μια γραμμή log εδώ και μια γραμμή log εκεί να μπορούν να συσχετιστούν. Το Syslog στέλνει γεγονότα εκτός συσκευής σε έναν server που επιβιώνει το reboot της συσκευής (ή το σβήσιμό της). Το SNMP αφήνει ένα σύστημα monitoring να ρωτάει για υγεία και να λαμβάνει alerts. Το NetFlow καταγράφει ποιος μίλησε με ποιον, ώστε το «το internet ήταν αργό στις 2μμ» να γίνεται απαντήσιμη ερώτηση.

Τίποτα από αυτά δεν είναι δύσκολο, και όλα είναι αόρατα μέχρι τη μέρα που τα χρειαστείς — οπότε η απουσία τους είναι καταστροφική. Αυτό το post είναι η λίστα ελέγχου «κάνε τη συσκευή να σου λέει τι κάνει», και συνδυάζεται κατευθείαν με την πειθαρχία ανάκτησης από το post Backup & Restore: τα backups σε αφήνουν να ξαναχτίσεις, η τηλεμετρία σου λέει γιατί χρειάστηκε.

Προαπαιτουμενα

01

NTP — Βαλε Πρωτα το Ρολοι Σωστα

Κάθε timestamp log, κάθε έλεγχος πιστοποιητικού, κάθε συσχέτιση εξαρτάται από ακριβή χρόνο. Μια συσκευή με λάθος ρολόι παράγει logs που δεν εμπιστεύεσαι. Ρύθμισε το NTP πριν από οτιδήποτε άλλο καταγράφει.

IOS — sync στο NTP, timestamp σε ολα
# Όρισε τη ζώνη ώστε ο τοπικός χρόνος να διαβάζεται σωστά (Ελλάδα = EET, +2, DST +1)
R1(config)# clock timezone EET 2 0
R1(config)# clock summer-time EEST recurring last Sun Mar 3:00 last Sun Oct 4:00

# Δείξε σε upstream NTP servers (pool servers, ή δικούς σου)
R1(config)# ntp server 0.gr.pool.ntp.org
R1(config)# ntp server 1.gr.pool.ntp.org

# ΚΡΙΣΙΜΟ: βάλε στα logs και τα debugs την πραγματική ημερομηνία+ώρα, όχι το "uptime"
R1(config)# service timestamps log datetime msec localtime show-timezone
R1(config)# service timestamps debug datetime msec localtime show-timezone
R1(config)# end

# Επιβεβαίωσε ότι κλείδωσε (μπορεί να πάρει λίγα λεπτά να κάνει sync)
R1# show ntp status
Clock is synchronized, stratum 3, reference is 203.0.113.9
⚠ Παγιδα — Τα Logs Λενε "*Mar 1 00:04:12" — Δεν Εβαλες Ποτε Timestamps

Από το κουτί, το IOS βάζει στα μηνύματα log χρόνο από την εκκίνηση και μια ψεύτικη ημερομηνία "March 1" (το epoch του), και το μπροστινό * σημαίνει ότι το ρολόι δεν έχει συγχρονιστεί. Το να συσχετίσεις αυτά ανάμεσα σε συσκευές είναι αδύνατο. Η εντολή service timestamps log datetime είναι η πιο πολύτιμη γραμμή σε όλο αυτό το post — χωρίς αυτήν, το NTP διορθώνει το ρολόι αλλά τα logs σου ακόμα δεν το δείχνουν. Βάλε timestamps και για log και για debug, και επιβεβαίωσε ότι το * εξαφανίζεται από το show logging μόλις κάνει sync το NTP.

02

Syslog — Στειλε τα Γεγονοτα Εκτος Συσκευης

Το τοπικό buffer log της συσκευής καθαρίζει στο reboot και κρατάει μόνο μερικές εκατοντάδες γραμμές. Στείλε τα πάντα σε κεντρικό syslog server ώστε τα γεγονότα να επιβιώνουν, να συγκεντρώνονται από πολλές συσκευές, και να γίνονται αναζητήσιμα και να ενεργοποιούν alerts.

IOS — τοπικο buffer + απομακρυσμενο syslog
# Κράτα κι ένα αξιοπρεπές τοπικό buffer (επιβιώνει μέχρι το reboot)
R1(config)# logging buffered 64000 informational
R1(config)# service sequence-numbers       # αρίθμησε τις γραμμές ώστε τα κενά να φαίνονται

# Στείλε στον κεντρικό συλλέκτη, σε severity "informational" (6) και πάνω
R1(config)# logging host 192.168.1.50
R1(config)# logging trap informational
R1(config)# logging source-interface Loopback0  # σταθερό source IP
R1(config)# end

# Επαλήθευσε ότι ο συλλέκτης λαμβάνει και δες το buffer
R1# show logging
    Trap logging: level informational, 842 message lines logged
        Logging to 192.168.1.50 (udp port 514, audit disabled)
💡 Pro Tip — Επιπεδα Severity και μια Πηγη Loopback

Τα severity του syslog πάνε από 0 (emergencies) ως 7 (debugging)· το logging trap informational (6) είναι το γλυκό σημείο — παίρνεις link flaps, αλλαγές config, και γεγονότα ασφάλειας χωρίς να πνίγεσαι σε θόρυβο debug. Δύο βελτιώσεις το κάνουν production-grade: κάνε log από ένα Loopback interface ώστε κάθε μήνυμα να κουβαλάει το ίδιο source IP ανεξάρτητα από ποιο φυσικό interface έφυγε (ο συλλέκτης σου ομαδοποιεί καθαρά ανά συσκευή), και θυμήσου ότι το logging trap debugging (7) μπορεί να πλημμυρίσει ένα αργό link — ανέβασέ το μόνο όσο κάνεις ενεργά troubleshooting. Ένα log αλλαγών config (archive / log config) συν το syslog σου δίνει audit trail του ποιος άλλαξε τι, πότε.

03

SNMPv3 — Monitoring Χωρις Καθαρο Κειμενο

Το SNMP αφήνει την πλατφόρμα monitoring σου να ρωτάει μετρητές interface, CPU, και μνήμη, και να λαμβάνει traps. Χρησιμοποίησε v3 — με authentication και κρυπτογράφηση — ποτέ v1/v2c, του οποίου το "community string" είναι κωδικός σε καθαρό κείμενο πάνω στο καλώδιο.

IOS — read-only SNMPv3 με auth + κρυπτογραφηση
# Ένα view που περιορίζει τι μπορεί να διαβαστεί, μια group που το χρησιμοποιεί, και ένας κρυπτογραφημένος χρήστης
R1(config)# snmp-server view MON iso included
R1(config)# snmp-server group MONITORING v3 priv read MON
R1(config)# snmp-server user nms MONITORING v3 auth sha AuthPass123 priv aes 128 PrivPass123

# Στείλε traps στον host monitoring (link up/down, αλλαγές config, κλπ.)
R1(config)# snmp-server enable traps
R1(config)# snmp-server host 192.168.1.50 version 3 priv nms
R1(config)# snmp-server location Heraklion-Rack-1
R1(config)# snmp-server contact noc@example.com
R1(config)# end
⚠ Παγιδα — Το snmp-server community public RO Ειναι Κλασικο σε Αναφορες Ευρηματων

Τα SNMPv1/v2c κάνουν authenticate με ένα "community string" σε καθαρό κείμενο που διασχίζει το δίκτυο ακάλυπτο — και οι default κοινότητες public/private είναι το πρώτο πράγμα που δοκιμάζει κάθε scanner (και κάθε pentester). Μια αναγνώσιμη κοινότητα v2c διαρρέει όλη την τοπολογία config σου· μια εγγράψιμη (private RW) μπορεί να επαναρυθμίσει τη συσκευή. Σε engagement αυτό είναι ρουτίνα finding. Χρησιμοποίησε v3 με priv (auth + κρυπτογράφηση), περιόρισε ποιοι hosts μπορούν να ρωτούν με ένα ACL (snmp-server community … `<acl>` αν είσαι πραγματικά κολλημένος στο v2c), και ποτέ μην αφήνεις μια default κοινότητα στη θέση της. Αυτό είναι το μισό SNMP της θωράκισης management-plane που θα ενοποιήσουμε αργότερα στη σειρά.

04

Flexible NetFlow — Ποιος Χρησιμοποιησε τη Bandwidth;

Οι μετρητές interface σου λένε ότι ένα link ήταν γεμάτο· το NetFlow σου λέει ποιες συνομιλίες το γέμισαν. Τρία αντικείμενα — ένα record (τι να συλλέξεις), ένας exporter (πού να το στείλεις), και ένας monitor (που τα δένει μαζί) — εφαρμοσμένα σε ένα interface.

IOS — Flexible NetFlow, exported σε συλλεκτη
# 1. RECORD — τα πεδία που ορίζουν μια ροή και τα στατιστικά που κρατάς
R1(config)# flow record RECORD-1
R1(config-flow-record)# match ipv4 source address
R1(config-flow-record)# match ipv4 destination address
R1(config-flow-record)# match transport source-port
R1(config-flow-record)# match transport destination-port
R1(config-flow-record)# match ipv4 protocol
R1(config-flow-record)# collect counter bytes
R1(config-flow-record)# collect counter packets
R1(config-flow-record)# exit

# 2. EXPORTER — πού να στείλεις τα δεδομένα ροής
R1(config)# flow exporter EXPORT-1
R1(config-flow-exporter)# destination 192.168.1.50
R1(config-flow-exporter)# transport udp 2055
R1(config-flow-exporter)# exit

# 3. MONITOR — δέσε record + exporter, μετά εφάρμοσε στο interface
R1(config)# flow monitor MONITOR-1
R1(config-flow-monitor)# record RECORD-1
R1(config-flow-monitor)# exporter EXPORT-1
R1(config-flow-monitor)# exit
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip flow monitor MONITOR-1 input
R1(config-if)# ip flow monitor MONITOR-1 output
R1(config-if)# end
IOS — διαβασε ροες κατευθειαν στη συσκευη (χωρις συλλεκτη)
R1# show flow monitor MONITOR-1 cache sort highest counter bytes top 5
SRC ADDR        DST ADDR        PROT  SRC  DST    BYTES
192.168.1.30    93.184.216.34   6     5512 443    248 M   ← ο φαγάς της bandwidth
192.168.1.44    140.82.121.4    6     6001 443     31 M
...
# «Τι έφαγε το internet στις 2μμ» — απαντήθηκε από την ίδια τη συσκευή.

05

Η Λιστα Επαληθευσης Ασφαλες να το Τρεξεις

Επιβεβαίωσε ότι το καθένα από τα τέσσερα δουλεύει πραγματικά — μια σιωπηλά σπασμένη γραμμή τηλεμετρίας είναι χειρότερη από καμία, γιατί θα εμπιστευτείς δεδομένα που δεν φτάνουν.

ΕντοληΕπιβεβαιωνει
show ntp status / associationsΡολόι συγχρονισμένο, ποιος server, stratum.
show loggingHost syslog, επίπεδο trap, και το τοπικό buffer.
show snmp / show snmp userΜηχανή SNMP up, χρήστες v3 και το auth/priv τους.
show flow monitor MONITOR-1 cacheΟι ροές καταγράφονται.
show flow exporter statisticsΠακέτα ροής πραγματικά στέλνονται στον συλλέκτη.
show clock detailΠηγή χρόνου — "NTP" (καλό) vs "user configuration" (παρασύρεται).

06

MikroTik ↔ Cisco — Ιδια Τηλεμετρια

Το RouterOS προσφέρει το καθένα από αυτά· η αντιστοίχιση είναι απευθείας.

MikroTik / RouterOSCisco IOS
/system ntp clientntp server
/system logging action remote + rulelogging host + logging trap
/snmp community (v3 user)snmp-server user … v3 auth … priv …
/ip traffic-flow (+ target)Flexible NetFlow record/exporter/monitor
/tool sniffer, /tool torchshow flow monitor cache

Βασικα Συμπερασματα

  1. Ρύθμισε πρώτα το NTP. Κάθε άλλη καταγραφή είναι αξιόπιστη όσο το ρολόι. Και το service timestamps log datetime είναι η γραμμή που πραγματικά βάζει πραγματικό χρόνο στα logs σου — χωρίς αυτήν, το NTP μόνο του δεν βοηθάει.
  2. Στείλε τα logs εκτός συσκευής. Το τοπικό buffer πεθαίνει στο reboot· ένας κεντρικός syslog server κρατάει τα στοιχεία και τα συγκεντρώνει από πολλές συσκευές. Το logging trap informational είναι το γλυκό σημείο θορύβου/σήματος.
  3. SNMPv3 ή τίποτα. Τα community strings v1/v2c είναι κωδικοί σε καθαρό κείμενο και μόνιμο finding. Χρησιμοποίησε v3 με auth+priv και περιόρισε ποιος μπορεί να ρωτάει.
  4. Το NetFlow απαντάει «ποιος χρησιμοποίησε τη bandwidth». Record + exporter + monitor σε ένα interface μετατρέπει το «το link ήταν γεμάτο» σε μια επώνυμη συνομιλία — αναγνώσιμη στη συσκευή ή σε έναν συλλέκτη.
  5. Κάνε log από ένα loopback. Ένα σταθερό source IP κάνει τον συλλέκτη σου να ομαδοποιεί μηνύματα ανά συσκευή αντί ανά interface από το οποίο έφυγαν.
  6. Επαλήθευσε τη γραμμή, μην την υποθέτεις. Μια ροή τηλεμετρίας που σταμάτησε σιωπηλά είναι χειρότερη από καμία — έλεγξε ότι οι μετρητές του exporter/syslog αυξάνονται πραγματικά.
  7. Αυτό συνδυάζεται με τα backups. Τα backups σε αφήνουν να ξαναχτίσεις τη συσκευή· η τηλεμετρία σου λέει γιατί χρειάστηκε. Και τα δύο μπαίνουν πριν το δίκτυο κουβαλήσει οτιδήποτε σημαντικό.

Πετας στα τυφλα στο δικτυο σου στην Κρητη;

Όταν κάτι σπάει στις 2π.μ., θέλω logs και δεδομένα ροής να με περιμένουν, όχι ένα κενό βλέμμα και ένα reboot. Οργανώνω κάθε δίκτυο που διαχειρίζομαι με συγχρονισμένο χρόνο, κεντρικό logging, SNMP, και NetFlow, ώστε μια διακοπή να έρχεται με στοιχεία επισυναπτόμενα.

Κλεισε μια Discovery Call →