1/1
</> Retelistica

Retelistica

Lecția 1 ⏱ 90 min

Curs Avansat de Retelistica

Nivel CCNA / CCNP — Switching, Routing, Securitate și Automatizare


Cuprins

  1. Modelul OSI și stiva TCP/IP
  2. Ethernet, cadre și adresare MAC
  3. Switching — fundamente și VLAN-uri
  4. Spanning Tree Protocol (STP) și evoluții
  5. EtherChannel și agregarea legăturilor
  6. Inter-VLAN Routing
  7. Adresare IPv4 — subnetting avansat
  8. IPv6 — adresare și tranziție
  9. Protocoale de rutare — concepte și clasificare
  10. Rutare statică și rutare implicită
  11. OSPF (Open Shortest Path First)
  12. EIGRP (Enhanced Interior Gateway Routing Protocol)
  13. BGP (Border Gateway Protocol)
  14. Redundanță la nivel gateway — HSRP, VRRP, GLBP
  15. ACL-uri (Access Control Lists)
  16. NAT și PAT
  17. DHCP și DNS
  18. Securitatea porturilor și 802.1X
  19. VPN-uri — IPsec, GRE, DMVPN
  20. Wireless LAN (WLAN) — 802.11
  21. QoS (Quality of Service)
  22. Managementul și monitorizarea rețelei
  23. Automatizare și programabilitate (NetDevOps)
  24. Troubleshooting sistematic

1. Modelul OSI și stiva TCP/IP

1.1 Cele 7 nivele OSI corelate cu TCP/IP

OSI Model              TCP/IP Model         Protocoale / Exemple         PDU
─────────────────────────────────────────────────────────────────────────────
7. Application    ┐                         HTTP, HTTPS, FTP, SSH,
6. Presentation   ├─► Application           DNS, DHCP, SNMP, SMTP,      Date
5. Session        ┘                         TLS/SSL, NTP, TFTP

4. Transport      ──► Transport             TCP, UDP, SCTP               Segment/
                                                                         Datagramă

3. Network        ──► Internet              IPv4, IPv6, ICMP, ICMPv6,   Pachet
                                            ARP, OSPF, EIGRP, BGP

2. Data Link      ──► Network Access        Ethernet (802.3), Wi-Fi     Cadru
                                            (802.11), PPP, HDLC,        (Frame)
                                            Frame Relay, 802.1Q

1. Physical       ──► (inclus în            Cabluri (UTP, fibră),       Biți
                       Network Access)       Conectori (RJ-45, SFP),
                                            Semnale electrice/optice

1.2 Încapsularea datelor

Aplicație generează DATE
         │
    ┌────▼──────────────────────────┐
    │ Transport: + header TCP/UDP   │  → Segment
    │ (port sursă, port dest,      │
    │  seq nr, ack nr, flags)      │
    ├───────────────────────────────┤
    │ Network: + header IP          │  → Pachet
    │ (IP sursă, IP dest, TTL,    │
    │  protocol, checksum)         │
    ├───────────────────────────────┤
    │ Data Link: + header + trailer │  → Cadru (Frame)
    │ (MAC sursă, MAC dest,        │
    │  Type/Length, FCS)           │
    ├───────────────────────────────┤
    │ Physical: conversie în biți   │  → Biți pe mediu
    └───────────────────────────────┘

Decapsularea: procesul invers la destinație.

1.3 TCP vs. UDP

Caracteristică TCP UDP
Conexiune Orientat pe conexiune (3-way HS) Fără conexiune
Fiabilitate Garantată (ACK, retransmisie) Best-effort
Ordine Garantată (sequence numbers) Nu garantată
Control flux Da (sliding window) Nu
Control congestie Da (slow start, AIMD) Nu
Header 20–60 bytes 8 bytes
Utilizare HTTP, SSH, FTP, SMTP, BGP DNS, DHCP, VoIP, video, NTP

TCP Three-Way Handshake:

Client                    Server
  │── SYN (seq=100) ──────►│
  │◄── SYN-ACK (seq=300,   │
  │    ack=101) ───────────│
  │── ACK (seq=101,        │
  │    ack=301) ──────────►│
  │    Conexiune stabilită  │

TCP Four-Way Teardown:

Client                    Server
  │── FIN ────────────────►│
  │◄── ACK ────────────────│
  │◄── FIN ────────────────│
  │── ACK ────────────────►│
  │    Conexiune închisă    │

2. Ethernet, cadre și adresare MAC

2.1 Formatul cadrului Ethernet II (DIX)

┌──────────┬──────────┬──────────┬──────────────────┬─────┐
│ Preamble │ Dest MAC │ Src MAC  │ EtherType        │ FCS │
│ 8 bytes  │ 6 bytes  │ 6 bytes  │ 2 bytes          │4 B  │
│          │          │          │                   │     │
│ 10101011 │ FF:FF:FF:│ AA:BB:CC:│ 0x0800 = IPv4    │CRC32│
│ (sync)   │ FF:FF:FF │ DD:EE:FF │ 0x0806 = ARP     │     │
│          │(broadcast│          │ 0x86DD = IPv6     │     │
│          │ sau      │          │ 0x8100 = 802.1Q   │     │
│          │ unicast) │          │                   │     │
└──────────┴──────────┴──────────┴──────────────────┴─────┘
                                   │  Payload         │
                                   │  46–1500 bytes   │
                                   │  (MTU standard)  │

2.2 Adrese MAC

Format: XX:XX:XX:YY:YY:YY (48 biți = 6 octeți)
        ────────── ──────────
        OUI        NIC
        (vendor)   (unic per dispozitiv)

Tipuri:
  Unicast:    bitul LSB al primului octet = 0
              Ex: 00:1A:2B:3C:4D:5E

  Multicast:  bitul LSB al primului octet = 1
              Ex: 01:00:5E:xx:xx:xx (IPv4 multicast)

  Broadcast:  FF:FF:FF:FF:FF:FF
              Ajunge la TOATE dispozitivele din LAN

2.3 ARP (Address Resolution Protocol)

Problema: știm IP-ul destinației, dar avem nevoie de MAC-ul ei.

1. Host A vrea să trimită la 192.168.1.10
2. A verifică ARP cache (arp -a). Nu găsește.
3. A trimite ARP Request (broadcast FF:FF:FF:FF:FF:FF):
   "Cine are IP 192.168.1.10? Răspundeți la MAC AA:BB:CC:DD:EE:FF"
4. Host B (192.168.1.10) răspunde cu ARP Reply (unicast):
   "192.168.1.10 este la MAC 11:22:33:44:55:66"
5. A memorează asocierea în ARP cache (TTL tipic: 120-300 sec)
6. A trimite cadrul cu MAC destinație 11:22:33:44:55:66
! Verificare ARP pe router Cisco:
show arp
show ip arp

! Pe Linux:
ip neigh show
arp -a

3. Switching — fundamente și VLAN-uri

3.1 Funcționarea switch-ului Layer 2

Switch-ul menține o tabelă MAC (CAM Table):
┌───────────────┬───────────┬──────────┐
│ MAC Address   │ Interface │ VLAN     │
├───────────────┼───────────┼──────────┤
│ AA:BB:CC:11.. │ Gi0/1     │ 10       │
│ AA:BB:CC:22.. │ Gi0/2     │ 10       │
│ DD:EE:FF:33.. │ Gi0/3     │ 20       │
└───────────────┴───────────┴──────────┘

Procesul de forwarding:
1. Cadrul ajunge pe portul X
2. Switch-ul ÎNVAȚĂ MAC-ul sursă → asociază cu portul X
3. Verifică MAC destinație în tabelă:
   a) Găsit (known unicast) → FORWARD doar pe portul asociat
   b) Negăsit (unknown unicast) → FLOOD pe toate porturile din același VLAN
   c) Broadcast (FF:FF:FF:FF:FF:FF) → FLOOD pe toate porturile din VLAN
   d) Multicast → FLOOD sau conform tabelei IGMP snooping

3.2 VLAN-uri (Virtual LANs)

VLAN-urile segmentează logic o rețea fizică în mai multe domenii de broadcast separate.

Fără VLAN-uri:                    Cu VLAN-uri:
┌──────────────────┐              ┌──────────────────┐
│  Un singur        │              │  VLAN 10 (Sales) │
│  domeniu de       │              │  PC1──┐          │
│  broadcast        │              │  PC2──┤          │
│  TOȚI văd TOTUL   │              │       │          │
│  PC1 PC2 PC3 PC4  │              │  VLAN 20 (Eng)  │
│  (security risk,  │              │  PC3──┤          │
│   broadcast storm)│              │  PC4──┘          │
└──────────────────┘              └──────────────────┘
                                    Broadcast VLAN 10
                                    NU ajunge la VLAN 20

3.3 Configurare VLAN pe Cisco IOS

! Creare VLAN-uri
Switch(config)# vlan 10
Switch(config-vlan)# name Sales
Switch(config-vlan)# exit
Switch(config)# vlan 20
Switch(config-vlan)# name Engineering
Switch(config-vlan)# exit
Switch(config)# vlan 99
Switch(config-vlan)# name Management

! Asignare port la VLAN (access port)
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# no shutdown

! Configurare trunk (legătură inter-switch care transportă mai multe VLAN-uri)
Switch(config)# interface GigabitEthernet0/24
Switch(config-if)# switchport trunk encapsulation dot1q
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 10,20,99
Switch(config-if)# switchport trunk native vlan 99

! Verificare
Switch# show vlan brief
Switch# show interfaces trunk
Switch# show mac address-table
Switch# show interfaces GigabitEthernet0/1 switchport

3.4 802.1Q Trunking

Cadru 802.1Q (VLAN Tagged):
┌──────────┬──────────┬───────────────┬──────────┬─────────┬─────┐
│ Dest MAC │ Src MAC  │ 802.1Q Tag    │EtherType │ Payload │ FCS │
│ 6 bytes  │ 6 bytes  │ 4 bytes       │ 2 bytes  │         │4 B  │
└──────────┴──────────┴───────┬───────┴──────────┴─────────┴─────┘
                              │
                    ┌─────────┴─────────┐
                    │ TPID   │PRI│CFI│VID │
                    │0x8100  │3b │1b │12b │
                    │        │   │   │    │
                    │(marker │QoS│   │VLAN│
                    │ 802.1Q)│   │   │ID  │
                    │        │   │   │0-  │
                    │        │   │   │4095│
                    └────────┴───┴───┴────┘

Native VLAN: cadre netag-uite pe trunk (implicit VLAN 1).
Recomandare securitate: schimbă native VLAN la altceva decât VLAN 1.

4. Spanning Tree Protocol (STP) și evoluții

4.1 Problema buclelor la Layer 2

Fără STP, topologiile redundante creează:

  • Broadcast storm: cadre broadcast circulă la infinit, saturând rețeaua
  • Instabilitate MAC table: switch-urile văd același MAC pe porturi diferite
  • Cadre duplicate: aplicațiile primesc date duplicate

4.2 Funcționarea STP (802.1D)

1. Alege Root Bridge (switch-ul cu cel mai mic Bridge ID)
   Bridge ID = Priority (4 biți) + VLAN ID (12 biți) + MAC Address
   Default priority = 32768

2. Fiecare non-root switch alege Root Port
   (portul cu costul cel mai mic până la Root Bridge)

3. Pe fiecare segment, se alege Designated Port
   (portul care oferă cea mai bună cale spre Root)

4. Toate celelalte porturi → Blocked (nu forwardează)

Costul căii (Path Cost):
  10 Gbps  → cost   2
  1 Gbps   → cost   4
  100 Mbps → cost  19
  10 Mbps  → cost 100

Stări porturi STP (802.1D):
  Blocking → Listening → Learning → Forwarding
  (20s)      (15s)       (15s)
  Total convergență: ~30-50 secunde!

BPDU (Bridge Protocol Data Unit):
  - Trimise la fiecare 2 secunde (Hello Timer)
  - Max Age: 20 secunde
  - Forward Delay: 15 secunde (Listening + Learning)

4.3 Rapid Spanning Tree (RSTP — 802.1w)

! RSTP converge în 1-3 secunde (vs. 30-50s STP)
! Stări simplificate: Discarding, Learning, Forwarding

! Tipuri de porturi RSTP:
! Root Port      — calea cea mai bună spre root (ca STP)
! Designated Port — portul forward pe segment
! Alternate Port  — backup pentru Root Port (era Blocked în STP)
! Backup Port     — backup pentru Designated Port pe același segment

! Configurare RSTP pe Cisco:
Switch(config)# spanning-tree mode rapid-pvst

! Setare prioritate Root Bridge (valoarea cea mai mică devine root):
Switch(config)# spanning-tree vlan 10 root primary
! sau explicit:
Switch(config)# spanning-tree vlan 10 priority 4096

! Portfast (trece direct în Forwarding — DOAR pe porturi de acces!):
Switch(config)# interface range Gi0/1 - 24
Switch(config-if-range)# spanning-tree portfast
Switch(config-if-range)# spanning-tree bpduguard enable

! BPDU Guard la nivel global:
Switch(config)# spanning-tree portfast bpduguard default

4.4 MST (Multiple Spanning Tree — 802.1s)

MST permite gruparea mai multor VLAN-uri într-o singură instanță STP, reducând numărul de calcule:

! Exemplu: 100 de VLAN-uri, 2 instanțe MST
! Instanța 1: VLAN 1-50 → Root Bridge = SW1
! Instanța 2: VLAN 51-100 → Root Bridge = SW2
! → Load balancing între switch-uri

Switch(config)# spanning-tree mode mst
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# name CAMPUS
Switch(config-mst)# revision 1
Switch(config-mst)# instance 1 vlan 1-50
Switch(config-mst)# instance 2 vlan 51-100
Switch(config-mst)# exit
Switch(config)# spanning-tree mst 1 root primary

5. EtherChannel și agregarea legăturilor

5.1 Concept

EtherChannel combină 2–8 legături fizice într-o singură legătură logică, oferind redundanță și bandwidth agregat.

              Fără EtherChannel:              Cu EtherChannel:
Switch A ════╗                    Switch A ════╗
             ║ 1 Gbps (STP                    ╠══ Port-Channel1
Switch B ════╝ blochează restul)  Switch B ════╝   4 × 1 Gbps = 4 Gbps
                                                    (load balanced, fault tolerant)

5.2 Protocoale de negociere

Protocol Standard Moduri Observații
LACP 802.3ad Active / Passive Standard deschis, recomandat
PAgP Cisco Desirable / Auto Proprietar Cisco
Static On / On Fără negociere, riscant

5.3 Configurare EtherChannel LACP

! Switch A:
Switch-A(config)# interface range GigabitEthernet0/1 - 4
Switch-A(config-if-range)# channel-group 1 mode active
Switch-A(config-if-range)# exit

Switch-A(config)# interface Port-channel1
Switch-A(config-if)# switchport trunk encapsulation dot1q
Switch-A(config-if)# switchport mode trunk
Switch-A(config-if)# switchport trunk allowed vlan 10,20,99

! Switch B:
Switch-B(config)# interface range GigabitEthernet0/1 - 4
Switch-B(config-if-range)# channel-group 1 mode passive   ! (sau active)
! ...

! Load balancing method:
Switch(config)# port-channel load-balance src-dst-ip

! Verificare:
Switch# show etherchannel summary
Switch# show etherchannel port-channel
Switch# show lacp neighbor

6. Inter-VLAN Routing

6.1 Router-on-a-Stick

Un singur port fizic al router-ului transportă mai multe VLAN-uri pe un trunk, cu subinterfețe:

             Trunk 802.1Q
Switch ══════════════════ Router
  │                         │
  │ Gi0/1 (trunk)          Gi0/0 (trunk)
  │ VLAN 10,20             │
                            ├─ Gi0/0.10 → 192.168.10.1/24 (VLAN 10)
                            └─ Gi0/0.20 → 192.168.20.1/24 (VLAN 20)
! Configurare router:
Router(config)# interface GigabitEthernet0/0
Router(config-if)# no shutdown

Router(config)# interface GigabitEthernet0/0.10
Router(config-subif)# encapsulation dot1Q 10
Router(config-subif)# ip address 192.168.10.1 255.255.255.0

Router(config)# interface GigabitEthernet0/0.20
Router(config-subif)# encapsulation dot1Q 20
Router(config-subif)# ip address 192.168.20.1 255.255.255.0

6.2 Layer 3 Switch (SVI — Switch Virtual Interface)

! Pe un switch Layer 3 (ex: Catalyst 3650/3850/9000):
Switch(config)# ip routing                          ! Activează rutarea

Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1 255.255.255.0
Switch(config-if)# no shutdown

Switch(config)# interface vlan 20
Switch(config-if)# ip address 192.168.20.1 255.255.255.0
Switch(config-if)# no shutdown

! Avantaj: rutarea se face în hardware (ASIC), mult mai rapid
! decât router-on-a-stick (care rutează în software pe CPU)

7. Adresare IPv4 — subnetting avansat

7.1 Structura adresei IPv4

Adresă IPv4: 32 biți = 4 octeți
192.168.10.50 = 11000000.10101000.00001010.00110010

Notație CIDR: 192.168.10.0/24
Mască:        255.255.255.0 = 11111111.11111111.11111111.00000000
                               ├── Network (24 biți) ──┤├ Host ┤

7.2 Subnetting — metodă rapidă

/24 → 256 adrese, 254 hosturi utilizabili (-.0 network, -.255 broadcast)
/25 → 128 adrese, 126 hosturi  | 2 subrețele din /24
/26 →  64 adrese,  62 hosturi  | 4 subrețele din /24
/27 →  32 adrese,  30 hosturi  | 8 subrețele din /24
/28 →  16 adrese,  14 hosturi  | 16 subrețele din /24
/29 →   8 adrese,   6 hosturi  | 32 subrețele (link-uri router-to-router)
/30 →   4 adrese,   2 hosturi  | 64 subrețele (point-to-point links)
/31 →   2 adrese,   2 hosturi  | RFC 3021 (point-to-point, fără broadcast)
/32 →   1 adresă,   0 hosturi  | Loopback, host route

Formula: hosturi_utilizabili = 2^(32-prefix) - 2

Exemplu: subnetare 10.1.0.0/16 în subrețele /22
  Pas = 2^(32-22) = 1024 adrese per subrețea = 1022 hosturi
  10.1.0.0/22    (10.1.0.1 – 10.1.3.254)
  10.1.4.0/22    (10.1.4.1 – 10.1.7.254)
  10.1.8.0/22    (10.1.8.1 – 10.1.11.254)
  ...

VLSM (Variable Length Subnet Masking):
  Subrețele de dimensiuni diferite din același bloc.
  Exemplu: /24 pentru LAN, /30 pentru WAN, /32 pentru loopback.

7.3 Adrese private (RFC 1918) și speciale

10.0.0.0/8        (10.0.0.0 – 10.255.255.255)       Clasa A privată
172.16.0.0/12     (172.16.0.0 – 172.31.255.255)      Clasa B privată
192.168.0.0/16    (192.168.0.0 – 192.168.255.255)    Clasa C privată

127.0.0.0/8       Loopback
169.254.0.0/16    Link-local (APIPA — auto-configurare fără DHCP)
0.0.0.0/0         Default route (orice destinație)
255.255.255.255   Limited broadcast

8. IPv6 — adresare și tranziție

8.1 Formatul adresei IPv6

128 biți = 8 grupuri de 4 cifre hexazecimale

Complet:    2001:0db8:0000:0000:0000:0000:0000:0001
Scurt:      2001:db8::1  (:: înlocuiește secvențe de zerouri)

Prefix tipic: /64 (primii 64 biți = network, ultimii 64 = interface ID)

Tipuri de adrese:
  Global Unicast:   2000::/3  (echivalent adresă publică IPv4)
  Link-Local:       fe80::/10 (autoconfigurare, obligatoriu pe fiecare interfață)
  Unique Local:     fc00::/7  (echivalent RFC 1918, privat)
  Multicast:        ff00::/8  (înlocuiește broadcast-ul)
    ff02::1         All-nodes (echivalent broadcast)
    ff02::2         All-routers
    ff02::5         OSPF routers
    ff02::a         EIGRP routers
  Loopback:         ::1/128
  Unspecified:      ::/128

8.2 Configurare IPv6

! Activare IPv6 routing:
Router(config)# ipv6 unicast-routing

! Configurare interfață:
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 address 2001:db8:1::1/64
Router(config-if)# ipv6 address fe80::1 link-local
Router(config-if)# no shutdown

! Verificare:
Router# show ipv6 interface brief
Router# show ipv6 route
Router# show ipv6 neighbors      ! Echivalent ARP → NDP (Neighbor Discovery)

9. Protocoale de rutare — concepte și clasificare

9.1 Clasificare

Protocoale de rutare
├── IGP (Interior Gateway Protocol) — într-un singur AS
│   ├── Distance Vector
│   │   ├── RIP (v1, v2) — metric: hop count (max 15), lent
│   │   └── EIGRP — metric compus (bandwidth, delay), rapid
│   │
│   └── Link State
│       ├── OSPF — metric: cost (bazat pe bandwidth), standard
│       └── IS-IS — metric: cost configurabil, folosit în ISP-uri
│
└── EGP (Exterior Gateway Protocol) — între AS-uri
    └── BGP — Path Vector, metric: atribute multiple, Internet backbone

9.2 Distanța administrativă (AD)

Când mai multe surse oferă rute către aceeași destinație, routerul preferă sursa cu AD cel mai mic:

Sursă AD
Connected 0
Static 1
EIGRP Summary 5
eBGP 20
EIGRP (internal) 90
OSPF 110
IS-IS 115
RIP 120
EIGRP (external) 170
iBGP 200

10. Rutare statică și rutare implicită

! Rută statică:
Router(config)# ip route 192.168.20.0 255.255.255.0 10.0.0.2
!                        [destinație]   [mască]       [next-hop]
! sau:
Router(config)# ip route 192.168.20.0 255.255.255.0 GigabitEthernet0/1
!                                                     [interfață de ieșire]

! Default route (gateway of last resort):
Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1

! Rută statică floating (backup — AD mai mare decât protocolul principal):
Router(config)# ip route 192.168.20.0 255.255.255.0 10.0.0.6 200
!                                                             ^AD=200

! IPv6 static:
Router(config)# ipv6 route 2001:db8:2::/64 2001:db8:1::2
Router(config)# ipv6 route ::/0 2001:db8:1::1            ! Default IPv6

! Verificare:
Router# show ip route
Router# show ip route static
Router# show ipv6 route

11. OSPF (Open Shortest Path First)

11.1 Caracteristici OSPF

Tip:            Link-State IGP
Standard:       RFC 2328 (OSPFv2 pentru IPv4), RFC 5340 (OSPFv3 pentru IPv6)
Metric:         Cost = Reference BW / Interface BW
                (default ref BW = 100 Mbps → 10G și 1G au cost 1 ambele!)
Algoritm:       Dijkstra (Shortest Path First)
Multicast:      224.0.0.5 (All OSPF Routers), 224.0.0.6 (DR/BDR)
Protocol:       IP 89
AD:             110
Convergență:    Rapidă (secunde)
Scalabilitate:  Foarte bună (cu design corect al ariilor)

11.2 Arhitectura ierarhică OSPF (arii)

                    Area 0 (Backbone)
                 ┌────────────────────┐
                 │  ABR1        ABR2  │
                 │  ┌──┐        ┌──┐ │
              ┌──┤  │R1│────────│R2│ ├──┐
              │  │  └──┘        └──┘ │  │
              │  └────────────────────┘  │
              │                          │
         ┌────┴─────┐            ┌──────┴────┐
         │  Area 1  │            │  Area 2   │
         │          │            │           │
         │ R3──R4   │            │ R5──R6    │
         │ (intern) │            │ (intern)  │
         └──────────┘            └───────────┘

ABR = Area Border Router (conectează 2 arii, una obligatoriu Area 0)
ASBR = Autonomous System Boundary Router (redistribuie rute externe)

Tipuri arii:
  Normal:      Primește toate tipurile de LSA
  Stub:        Nu primește rute externe (Type 5) → default route de la ABR
  Totally Stub: Nu primește nici rute inter-area (Type 3) → doar default
  NSSA:        Stub dar permite redistribuire locală (Type 7 LSA)

11.3 Tipuri de rețele OSPF și alegerea DR/BDR

Broadcast (Ethernet):
  - Alege DR (Designated Router) și BDR (Backup DR)
  - Restul routerelor: DROTHER
  - DR-ul reduce numărul de adiacențe: full mesh → hub-spoke
  - Alegere: cel mai mare priority (default 1), apoi cel mai mare Router ID

Point-to-Point (serial, tunnel):
  - Nu alege DR/BDR (doar 2 routere)
  - Adiacență directă

Configurare OSPF network type:
Router(config-if)# ip ospf network point-to-point
Router(config-if)# ip ospf network broadcast

11.4 Configurare OSPF completă

! === Single-Area OSPF ===
Router(config)# router ospf 1                    ! Process ID (local)
Router(config-router)# router-id 1.1.1.1         ! Router ID explicit
Router(config-router)# auto-cost reference-bandwidth 10000  ! 10 Gbps ref
Router(config-router)# passive-interface default  ! Toate pasive implicit
Router(config-router)# no passive-interface Gi0/0 ! Activează OSPF pe trunk
Router(config-router)# no passive-interface Gi0/1

! Activare OSPF pe interfețe (metodă nouă, pe interfață):
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip ospf 1 area 0

Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip ospf 1 area 0

Router(config)# interface Loopback0
Router(config-if)# ip address 1.1.1.1 255.255.255.255
Router(config-if)# ip ospf 1 area 0

! === Multi-Area OSPF ===
! ABR (Area Border Router):
ABR(config)# interface Gi0/0
ABR(config-if)# ip ospf 1 area 0              ! Backbone

ABR(config)# interface Gi0/1
ABR(config-if)# ip ospf 1 area 1              ! Area internă

! Area stub:
ABR(config-router)# area 1 stub
! Pe TOATE routerele din Area 1:
R3(config-router)# area 1 stub

! Sumarizare inter-area (pe ABR):
ABR(config-router)# area 1 range 10.1.0.0 255.255.252.0

! === Verificare ===
Router# show ip ospf neighbor
Router# show ip ospf interface brief
Router# show ip ospf database
Router# show ip route ospf
Router# show ip ospf border-routers

11.5 Stările vecin OSPF (Neighbor States)

Down → Init → 2-Way → ExStart → Exchange → Loading → Full

Down:     Niciun OSPF Hello primit
Init:     Hello primit, dar nu ne-am văzut în lista de vecini
2-Way:    Ambii se văd reciproc (pe broadcast: aici se alege DR/BDR)
ExStart:  Se negociază master/slave pentru exchange-ul de DB
Exchange: Se trimit Database Description (DBD) packets
Loading:  Se cer LSA-uri lipsă (LSR) și se primesc (LSU)
Full:     Bazele de date sunt sincronizate → adiacență completă

Debugging:
Router# debug ip ospf adj
Router# show ip ospf neighbor detail

12. EIGRP (Enhanced Interior Gateway Routing Protocol)

12.1 Caracteristici

Tip:          Advanced Distance Vector (hibrid)
Proprietar:   Cisco (dar publicat ca RFC informativ)
Algoritm:     DUAL (Diffusing Update Algorithm) — convergență rapidă
Metric:       Compus din Bandwidth + Delay (default)
              K1*BW + (K2*BW)/(256-load) + K3*Delay + K5/(reliability+K4)
              Default: K1=1, K2=0, K3=1, K4=0, K5=0
              → Metric = BW_minim + Delay_cumulat
Multicast:    224.0.0.10
Protocol:     IP 88
AD:           90 (internal), 170 (external), 5 (summary)
Convergență:  Foarte rapidă (sub-secundă cu feasible successors)

12.2 Concepte DUAL

Successor:          Cea mai bună rută (costul cel mai mic)
Feasible Distance:  Distanța de la local la destinație prin successor
Feasible Successor: Rută de backup PRECOMPUTATĂ (gata de activare instant)
Reported Distance:  Distanța anunțată de vecin la destinație

Condiție de Feasibility:
  Un vecin este Feasible Successor dacă:
  RD (al vecinului) < FD (al successor-ului curent)
  → Garantează lipsa buclelor fără a recalcula!

Exemplu:
  R1 → R2 → Dest: cost 100 (Successor, FD=100)
  R1 → R3 → Dest: cost 120, R3 anunță RD=60
  60 < 100 → R3 este Feasible Successor!
  Dacă R2 cade, R1 comută INSTANT pe R3 (fără query)

12.3 Configurare EIGRP

! Configurare EIGRP clasic:
Router(config)# router eigrp 100               ! AS number (trebuie identic pe toți)
Router(config-router)# eigrp router-id 1.1.1.1
Router(config-router)# network 192.168.10.0 0.0.0.255   ! Wildcard mask!
Router(config-router)# network 10.0.0.0 0.0.0.3
Router(config-router)# passive-interface GigabitEthernet0/2
Router(config-router)# no auto-summary

! Configurare EIGRP Named Mode (modern, recomandat):
Router(config)# router eigrp CAMPUS
Router(config-router)# address-family ipv4 unicast autonomous-system 100
Router(config-router-af)# eigrp router-id 1.1.1.1
Router(config-router-af)# network 192.168.10.0 0.0.0.255
Router(config-router-af)# af-interface GigabitEthernet0/2
Router(config-router-af-if)# passive-interface
Router(config-router-af-if)# exit
Router(config-router-af)# topology base
Router(config-router-af-topology)# auto-summary
Router(config-router-af-topology)# exit

! Verificare:
Router# show ip eigrp neighbors
Router# show ip eigrp topology
Router# show ip eigrp topology all-links
Router# show ip route eigrp

13. BGP (Border Gateway Protocol)

13.1 Concepte fundamentale

BGP = protocolul care ține Internetul funcțional.
Rutează între Autonomous Systems (AS) — organizații independente.

eBGP: între AS-uri diferite (AD=20)
iBGP: în cadrul aceluiași AS (AD=200)

Caracteristici:
  - Path Vector protocol
  - Conexiuni TCP port 179
  - Convergență lentă (deliberat — stabilitate)
  - Nu optimizează pentru viteză, ci pentru POLITICĂ
  - Tabelă globală Internet: ~950,000+ prefixe IPv4 (2024)

AS Numbers:
  Public: 1–64511, 131072–4199999999 (32-bit ASN)
  Privat: 64512–65535, 4200000000–4294967294

13.2 Atributele BGP (ordinea de selecție)

Ordinea de selecție a celei mai bune rute BGP:

1. Weight (Cisco, local)           — mai mare = mai bun (default 0, max 65535)
2. Local Preference                — mai mare = mai bun (default 100)
3. Locally originated              — rute generate local > primite
4. AS-Path length                  — mai scurt = mai bun
5. Origin                          — IGP < EGP < Incomplete
6. MED (Multi-Exit Discriminator)  — mai mic = mai bun
7. eBGP > iBGP
8. IGP metric la next-hop          — cel mai mic cost intern
9. Oldest route
10. Lowest Router ID
11. Lowest neighbor IP

Mnemonic: "We Love Oranges AS Oranges Mean Pure Refreshment"
           (Weight, LP, Origin, AS-path, Origin, MED, Path, Router-ID)

13.3 Configurare BGP

! === eBGP peering ===
! Router R1 (AS 65001) conectat la ISP (AS 65002)
R1(config)# router bgp 65001
R1(config-router)# bgp router-id 1.1.1.1
R1(config-router)# neighbor 203.0.113.2 remote-as 65002     ! eBGP peer
R1(config-router)# network 198.51.100.0 mask 255.255.255.0  ! Anunță prefixul nostru
R1(config-router)# neighbor 203.0.113.2 description ISP-Uplink

! === iBGP peering ===
R1(config-router)# neighbor 10.0.0.2 remote-as 65001        ! iBGP (same AS)
R1(config-router)# neighbor 10.0.0.2 update-source Loopback0
R1(config-router)# neighbor 10.0.0.2 next-hop-self          ! Rescrie next-hop

! === Filtrare cu prefix-list ===
R1(config)# ip prefix-list ALLOW-DEFAULT permit 0.0.0.0/0
R1(config)# ip prefix-list ALLOW-SPECIFIC permit 198.51.100.0/24

R1(config-router)# neighbor 203.0.113.2 prefix-list ALLOW-DEFAULT in

! === Route-map pentru politici complexe ===
R1(config)# route-map SET-LP permit 10
R1(config-route-map)# match ip address prefix-list PREFERRED-ISP
R1(config-route-map)# set local-preference 200

R1(config)# route-map SET-LP permit 20
! (permite restul fără modificări)

R1(config-router)# neighbor 203.0.113.2 route-map SET-LP in

! === Verificare ===
Router# show bgp summary
Router# show bgp ipv4 unicast
Router# show bgp ipv4 unicast neighbors 203.0.113.2 advertised-routes
Router# show bgp ipv4 unicast neighbors 203.0.113.2 received-routes
Router# show ip bgp

14. Redundanță la nivel gateway — HSRP, VRRP, GLBP

! HSRP (Hot Standby Router Protocol) — Cisco
! Virtual IP partajat între 2+ routere. Unul activ, unul standby.

R1(config)# interface Gi0/0
R1(config-if)# ip address 192.168.10.2 255.255.255.0
R1(config-if)# standby 1 ip 192.168.10.1          ! Virtual IP (gateway clienți)
R1(config-if)# standby 1 priority 110             ! Mai mare = Active
R1(config-if)# standby 1 preempt                  ! Reia rolul Active la revenire
R1(config-if)# standby 1 track GigabitEthernet0/1 decrement 20  ! Track uplink

R2(config)# interface Gi0/0
R2(config-if)# ip address 192.168.10.3 255.255.255.0
R2(config-if)# standby 1 ip 192.168.10.1
R2(config-if)# standby 1 priority 100             ! Standby (default)
R2(config-if)# standby 1 preempt

! Verificare:
Router# show standby brief

! VRRP (Virtual Router Redundancy Protocol) — standard IEEE
! Configurare similară dar cu comanda "vrrp" în loc de "standby"

! GLBP (Gateway Load Balancing Protocol) — Cisco
! Avantaj: load balancing ACTIV (ambele routere forwardează simultan)

15. ACL-uri (Access Control Lists)

15.1 Tipuri de ACL

Standard ACL (1-99, 1300-1999):
  - Filtrează DOAR pe IP sursă
  - Plasare: cât mai APROAPE de destinație

Extended ACL (100-199, 2000-2699):
  - Filtrează pe: IP sursă, IP dest, protocol, port sursă, port dest
  - Plasare: cât mai APROAPE de sursă

Named ACL:
  - Identificate prin nume (recomandat)
  - Permit editare individuală a liniilor

15.2 Configurare ACL extended

! Named Extended ACL:
Router(config)# ip access-list extended INTERNET-FILTER

! Permite HTTP/HTTPS din LAN spre orice
Router(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 any eq 443
Router(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 any eq 80

! Permite DNS
Router(config-ext-nacl)# permit udp 192.168.10.0 0.0.0.255 any eq 53
Router(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 any eq 53

! Permite ICMP (ping, traceroute)
Router(config-ext-nacl)# permit icmp any any

! Permite SSH doar de la admin
Router(config-ext-nacl)# permit tcp host 192.168.10.100 any eq 22

! Blochează tot restul (implicit la finalul oricărei ACL)
Router(config-ext-nacl)# deny ip any any log

! Aplicare pe interfață:
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip access-group INTERNET-FILTER in

! Verificare:
Router# show access-lists
Router# show ip access-lists INTERNET-FILTER
Router# show ip interface Gi0/0 | include access

16. NAT și PAT

NAT (Network Address Translation): traduce adrese IP private ↔ publice

! Static NAT (1:1 mapping):
Router(config)# ip nat inside source static 192.168.10.100 203.0.113.10

! Dynamic NAT (pool de adrese publice):
Router(config)# ip nat pool PUBLIC 203.0.113.10 203.0.113.20 netmask 255.255.255.224
Router(config)# access-list 1 permit 192.168.10.0 0.0.0.255
Router(config)# ip nat inside source list 1 pool PUBLIC

! PAT — Port Address Translation (overload — cel mai folosit):
! Mapează TOATE adresele interne pe O SINGURĂ adresă publică + porturi
Router(config)# access-list 1 permit 192.168.0.0 0.0.255.255
Router(config)# ip nat inside source list 1 interface GigabitEthernet0/1 overload

! Marcare interfețe:
Router(config)# interface Gi0/0
Router(config-if)# ip nat inside
Router(config)# interface Gi0/1
Router(config-if)# ip nat outside

! Verificare:
Router# show ip nat translations
Router# show ip nat statistics
Router# clear ip nat translation *

17. DHCP și DNS

! === DHCP Server pe router Cisco ===
Router(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.10  ! Rezervat

Router(config)# ip dhcp pool LAN-POOL
Router(dhcp-config)# network 192.168.10.0 255.255.255.0
Router(dhcp-config)# default-router 192.168.10.1
Router(dhcp-config)# dns-server 8.8.8.8 8.8.4.4
Router(dhcp-config)# domain-name company.local
Router(dhcp-config)# lease 7                                         ! 7 zile

! DHCP Relay (când serverul DHCP e pe alt subnet):
Router(config)# interface Gi0/0
Router(config-if)# ip helper-address 10.0.0.50     ! IP-ul serverului DHCP

! Verificare:
Router# show ip dhcp binding
Router# show ip dhcp pool
Router# show ip dhcp conflict

! === DNS ===
Router(config)# ip domain-lookup
Router(config)# ip name-server 8.8.8.8
Router(config)# ip domain-name company.local

18. Securitatea porturilor și 802.1X

18.1 Port Security

! Limitează numărul de MAC-uri pe un port (previne MAC flooding):
Switch(config)# interface Gi0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 2
Switch(config-if)# switchport port-security violation restrict
!   Violation modes:
!     shutdown  — dezactivează portul (default)
!     restrict  — drop + log, portul rămâne activ
!     protect   — drop silențios
Switch(config-if)# switchport port-security mac-address sticky
!   sticky: învață automat MAC-urile și le salvează în running-config

Switch# show port-security interface Gi0/1
Switch# show port-security address

18.2 DHCP Snooping și DAI

! DHCP Snooping — previne rogue DHCP servers:
Switch(config)# ip dhcp snooping
Switch(config)# ip dhcp snooping vlan 10,20

! Porturile trunk și cel al serverului DHCP = trusted:
Switch(config)# interface Gi0/24
Switch(config-if)# ip dhcp snooping trust

! DAI (Dynamic ARP Inspection) — previne ARP spoofing:
Switch(config)# ip arp inspection vlan 10,20
Switch(config)# interface Gi0/24
Switch(config-if)# ip arp inspection trust

18.3 802.1X (autentificare per-port)

Componentele 802.1X:
  Supplicant:    Clientul (PC/laptop)
  Authenticator: Switch-ul (controlează accesul fizic)
  Auth. Server:  RADIUS server (verifică credențialele)

Flux:
  1. Client conectează cablul
  2. Switch-ul trimite EAP-Request/Identity
  3. Client răspunde cu credențiale
  4. Switch relayază la RADIUS
  5. RADIUS acceptă/refuză
  6. Switch deschide/blochează portul

! Configurare pe switch:
Switch(config)# aaa new-model
Switch(config)# radius server ISE
Switch(config-radius-server)# address ipv4 10.0.0.50 auth-port 1812
Switch(config-radius-server)# key MyRadiusSecret

Switch(config)# aaa authentication dot1x default group radius
Switch(config)# dot1x system-auth-control

Switch(config)# interface range Gi0/1 - 24
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# authentication port-control auto
Switch(config-if-range)# dot1x pae authenticator

19. VPN-uri — IPsec, GRE, DMVPN

19.1 IPsec Site-to-Site VPN

! Fazele IPsec:
! Faza 1 (IKE SA): autentificare reciprocă, negociere parametri
!   - Algoritm criptare: AES-256
!   - Hash: SHA-256
!   - Autentificare: Pre-shared key sau certificate
!   - DH Group: 14 sau 19 (ECDH)
!   - Lifetime: 86400 sec (24h)

! Faza 2 (IPsec SA): negociere parametri protecție date
!   - ESP (Encapsulating Security Payload) sau AH
!   - Criptare: AES-256
!   - Hash: SHA-256
!   - PFS: DH Group 14
!   - Lifetime: 3600 sec (1h)

! Configurare IKEv2 (modern):
R1(config)# crypto ikev2 proposal PROP1
R1(config-ikev2-proposal)# encryption aes-cbc-256
R1(config-ikev2-proposal)# integrity sha256
R1(config-ikev2-proposal)# group 14

R1(config)# crypto ikev2 policy POL1
R1(config-ikev2-policy)# proposal PROP1

R1(config)# crypto ikev2 keyring KR1
R1(config-ikev2-keyring)# peer SITE-B
R1(config-ikev2-keyring-peer)# address 203.0.113.2
R1(config-ikev2-keyring-peer)# pre-shared-key MySecretKey123

R1(config)# crypto ikev2 profile PROF1
R1(config-ikev2-profile)# match identity remote address 203.0.113.2
R1(config-ikev2-profile)# authentication remote pre-share
R1(config-ikev2-profile)# authentication local pre-share
R1(config-ikev2-profile)# keyring local KR1

! IPsec Transform Set:
R1(config)# crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
R1(cfg-crypto-trans)# mode tunnel

! Crypto Map:
R1(config)# access-list 100 permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255

R1(config)# crypto map CMAP 10 ipsec-isakmp
R1(config-crypto-map)# set peer 203.0.113.2
R1(config-crypto-map)# set transform-set TSET
R1(config-crypto-map)# set ikev2-profile PROF1
R1(config-crypto-map)# match address 100

R1(config)# interface GigabitEthernet0/1
R1(config-if)# crypto map CMAP

! Verificare:
Router# show crypto ikev2 sa
Router# show crypto ipsec sa
Router# show crypto session

19.2 GRE over IPsec

! GRE creează un tunel point-to-point (suportă multicast, routing protocols)
! IPsec criptează traficul GRE

R1(config)# interface Tunnel0
R1(config-if)# ip address 10.255.0.1 255.255.255.252
R1(config-if)# tunnel source GigabitEthernet0/1
R1(config-if)# tunnel destination 203.0.113.2
R1(config-if)# tunnel protection ipsec profile IPSEC-PROF

! Acum putem rula OSPF/EIGRP peste tunel:
R1(config-if)# ip ospf 1 area 0

20. Wireless LAN (WLAN) — 802.11

20.1 Standardele Wi-Fi

Standard Wi-Fi Bandă Lățime canal Viteză max Anul
802.11b 2.4 GHz 22 MHz 11 Mbps 1999
802.11a 5 GHz 20 MHz 54 Mbps 1999
802.11g 2.4 GHz 20 MHz 54 Mbps 2003
802.11n Wi-Fi 4 2.4/5 GHz 20/40 MHz 600 Mbps 2009
802.11ac Wi-Fi 5 5 GHz 20-160 MHz 6.9 Gbps 2013
802.11ax Wi-Fi 6/6E 2.4/5/6 GHz 20-160 MHz 9.6 Gbps 2020
802.11be Wi-Fi 7 2.4/5/6 GHz 20-320 MHz 46 Gbps 2024

20.2 Securitate WLAN

Evoluție securitate:
  WEP         → SPART (nu mai folosi niciodată)
  WPA (TKIP)  → Vulnerabil
  WPA2 (CCMP/AES) → Standard actual (personal=PSK, enterprise=802.1X)
  WPA3 (SAE)  → Cel mai sigur (Simultaneous Auth of Equals, forward secrecy)

Moduri:
  WPA2-Personal: Pre-shared Key (parolă partajată) — SOHO
  WPA2-Enterprise: 802.1X + RADIUS — corporații
  WPA3-Personal: SAE (mai rezistent la dictionary attack)
  WPA3-Enterprise: 192-bit security suite

20.3 Arhitecturi WLAN

Autonomous AP:    Fiecare AP configurat individual (SOHO, mic)
Controller-Based: WLC (Wireless LAN Controller) gestionează centralizat AP-urile
                  AP-urile devin „lightweight" (CAPWAP tunnel la controller)
Cloud-Managed:    Meraki, Aruba Central — management cloud, zero-touch deploy

21. QoS (Quality of Service)

21.1 Modelele QoS

Best Effort:      Fără QoS — all traffic equal (default)
IntServ (RSVP):   Rezervare de resurse per-flow — nu scalează
DiffServ:         Clasificare în clase, tratament per-hop — standard actual

Clasificare (Layer 2 + Layer 3):
  802.1p (CoS):  3 biți în tag-ul 802.1Q (0-7)
  DSCP:          6 biți din câmpul ToS al IP header (0-63)

DSCP Values frecvente:
  EF (Expedited Forwarding) = 46  → VoIP (low latency, low loss)
  AF41 = 34                        → Video conferencing
  AF31 = 26                        → Mission-critical data
  AF21 = 18                        → Transactional data
  CS1 = 8                          → Scavenger/bulk
  DF (Default) = 0                 → Best effort

21.2 Configurare QoS Cisco (MQC)

! 1. Class-Map: clasificare trafic
Router(config)# class-map match-any VOIP
Router(config-cmap)# match dscp ef
Router(config-cmap)# match protocol rtp

Router(config)# class-map match-any VIDEO
Router(config-cmap)# match dscp af41

Router(config)# class-map match-any BUSINESS
Router(config-cmap)# match dscp af31 af21

! 2. Policy-Map: definire acțiuni per clasă
Router(config)# policy-map WAN-QOS
Router(config-pmap)# class VOIP
Router(config-pmap-c)# priority percent 20        ! LLQ (Low Latency Queue)
Router(config-pmap-c)# class VIDEO
Router(config-pmap-c)# bandwidth percent 30       ! CBWFQ
Router(config-pmap-c)# class BUSINESS
Router(config-pmap-c)# bandwidth percent 25
Router(config-pmap-c)# class class-default
Router(config-pmap-c)# fair-queue                 ! WFQ pentru restul

! 3. Aplicare pe interfață:
Router(config)# interface GigabitEthernet0/1
Router(config-if)# service-policy output WAN-QOS

! Verificare:
Router# show policy-map interface Gi0/1

22. Managementul și monitorizarea rețelei

22.1 SNMP (Simple Network Management Protocol)

! SNMPv3 (recomandat — criptat și autentificat):
Router(config)# snmp-server group MONITOR-GRP v3 priv
Router(config)# snmp-server user monitor-user MONITOR-GRP v3 \
                auth sha AuthPass123 priv aes 256 PrivPass456
Router(config)# snmp-server host 10.0.0.50 version 3 priv monitor-user

! SNMP traps:
Router(config)# snmp-server enable traps config
Router(config)# snmp-server enable traps ospf
Router(config)# snmp-server enable traps bgp

22.2 Syslog

! Nivele syslog (severity):
! 0 Emergency    — sistem inutilizabil
! 1 Alert        — acțiune imediată necesară
! 2 Critical     — condiții critice
! 3 Error        — erori
! 4 Warning      — avertismente
! 5 Notification — normal dar notabil
! 6 Informational — mesaje informative
! 7 Debug        — debug (foarte verbose)

Router(config)# logging host 10.0.0.50                ! Syslog server
Router(config)# logging trap informational            ! Nivelul minim trimis
Router(config)# logging buffered 16384 debugging      ! Local buffer
Router(config)# service timestamps log datetime msec localtime

22.3 NetFlow / IPFIX

! NetFlow v9 — colectare statistici de trafic per-flow:
Router(config)# flow exporter COLLECTOR
Router(config-flow-exporter)# destination 10.0.0.50
Router(config-flow-exporter)# transport udp 2055
Router(config-flow-exporter)# source Loopback0

Router(config)# flow monitor TRAFFIC-MONITOR
Router(config-flow-monitor)# exporter COLLECTOR
Router(config-flow-monitor)# record netflow ipv4 original-input

Router(config)# interface Gi0/0
Router(config-if)# ip flow monitor TRAFFIC-MONITOR input

Router# show flow monitor TRAFFIC-MONITOR cache

23. Automatizare și programabilitate (NetDevOps)

23.1 API-uri moderne de management

Evoluție management rețea:
  CLI (telnet/SSH)  → Screen scraping, fragil
  SNMP              → Limitări (mai ales la write)
  NETCONF (RFC 6241)→ XML over SSH, tranzacțional, yang models
  RESTCONF (RFC 8040)→ REST API (HTTP + JSON/XML), yang models
  gNMI / gRPC       → Streaming telemetry, modern, performant

23.2 Python + Netmiko — automatizare SSH

from netmiko import ConnectHandler

# Conectare la un switch Cisco:
device = {
    "device_type": "cisco_ios",
    "host": "192.168.1.1",
    "username": "admin",
    "password": "cisco123",
    "secret": "enable_password",
}

with ConnectHandler(**device) as conn:
    conn.enable()  # Intră în enable mode

    # Citire configurare:
    output = conn.send_command("show ip interface brief")
    print(output)

    # Configurare VLAN pe multiple switch-uri:
    config_commands = [
        "vlan 100",
        "name IoT-Devices",
        "exit",
        "interface range Gi0/10 - 15",
        "switchport mode access",
        "switchport access vlan 100",
        "no shutdown",
    ]
    output = conn.send_config_set(config_commands)
    print(output)

    # Salvare configurare:
    conn.save_config()

23.3 Python + NAPALM — management multi-vendor

from napalm import get_network_driver

# NAPALM abstractizează diferențele între vendori (Cisco, Juniper, Arista...)
driver = get_network_driver("ios")

with driver("192.168.1.1", "admin", "cisco123") as device:
    # Informații despre dispozitiv:
    facts = device.get_facts()
    print(f"Hostname: {facts['hostname']}, OS: {facts['os_version']}")

    # Interfețe:
    interfaces = device.get_interfaces()
    for name, data in interfaces.items():
        status = "UP" if data["is_up"] else "DOWN"
        print(f"  {name:20s} {status:5s} {data['description']}")

    # BGP neighbors:
    bgp = device.get_bgp_neighbors()

    # Aplicare configurare cu rollback:
    device.load_merge_candidate(filename="new_config.txt")
    diff = device.compare_config()
    print(f"Diff:\n{diff}")

    if diff:
        device.commit_config()     # Aplică
        # sau: device.discard_config()  # Anulează

23.4 Ansible pentru rețea

# playbook.yml — configurare OSPF pe mai multe routere
---
- name: Configure OSPF on all routers
  hosts: routers
  gather_facts: no

  vars:
    ospf_process_id: 1
    ospf_area: 0

  tasks:
    - name: Configure OSPF
      cisco.ios.ios_ospfv2:
        config:
          processes:
            - process_id: "{{ ospf_process_id }}"
              router_id: "{{ router_id }}"
              areas:
                - area_id: "{{ ospf_area }}"
                  ranges:
                    - address: "{{ network }}"
                      netmask: "{{ netmask }}"
              passive_interfaces:
                default: true
                interface:
                  set_interface: false
                  name:
                    - "{{ ospf_interface }}"
        state: merged

    - name: Save configuration
      cisco.ios.ios_command:
        commands:
          - write memory

24. Troubleshooting sistematic

24.1 Metodologia de troubleshooting

1. Definire problemă     — Ce simptome? Ce funcționa înainte? Ce s-a schimbat?
2. Colectare informații   — show commands, logs, ping, traceroute
3. Analiză              — Identifică stratul OSI afectat
4. Formulare ipoteză     — Ce ar putea cauza problema?
5. Testare ipoteză       — Aplică o schimbare / testează
6. Rezolvare sau repetare— Dacă nu funcționează, revino la pasul 3

Abordări:
  Top-Down:    Pornește de la Layer 7 (aplicație) și coboară
  Bottom-Up:   Pornește de la Layer 1 (fizic) și urcă
  Divide & Conquer: Pornește de la Layer 3 (ping) și mergi sus sau jos

24.2 Comenzi esențiale de troubleshooting

! === Layer 1 (Physical) ===
show interfaces status              ! Up/Down, Speed, Duplex
show interfaces Gi0/1               ! Erori CRC, collisions, input/output errors
show controllers                    ! Stare hardware
show power inline                   ! PoE status

! === Layer 2 (Data Link) ===
show mac address-table              ! MAC table
show vlan brief                     ! VLAN assignments
show interfaces trunk               ! Trunk status
show spanning-tree                  ! STP topology
show etherchannel summary           ! EtherChannel status
show cdp neighbors                  ! Vecini Cisco (Layer 2 discovery)
show lldp neighbors                 ! Vecini standard (Layer 2 discovery)

! === Layer 3 (Network) ===
ping 192.168.10.1                   ! Connectivity test
ping 192.168.10.1 source Loopback0  ! Ping de la o sursă specifică
traceroute 8.8.8.8                  ! Traseul pachetelor
show ip route                       ! Routing table
show ip ospf neighbor               ! OSPF adjacencies
show ip eigrp neighbors             ! EIGRP neighbors
show bgp summary                    ! BGP peering status
show ip interface brief             ! IP + status pe toate interfețele
show ip arp                         ! ARP table
show ip nat translations            ! NAT translations active

! === Layer 4+ ===
show ip access-lists                ! ACL hit counters
show policy-map interface           ! QoS statistics
show crypto session                 ! VPN status

! === General ===
show running-config | section ospf  ! Filtrare secțiune config
show logging                        ! Syslog mesaje locale
show clock                          ! Verificare ceas (NTP)
show ntp status                     ! Sincronizare NTP
show processes cpu sorted           ! CPU usage
show memory statistics              ! RAM usage

Anexe

A. Port-uri TCP/UDP de reținut

Port Protocol Serviciu
20/21 TCP FTP (data/control)
22 TCP SSH
23 TCP Telnet
25 TCP SMTP
53 TCP/UDP DNS
67/68 UDP DHCP (server/client)
69 UDP TFTP
80 TCP HTTP
110 TCP POP3
123 UDP NTP
143 TCP IMAP
161/162 UDP SNMP (query/trap)
179 TCP BGP
389 TCP LDAP
443 TCP HTTPS
500 UDP IKE (IPsec)
514 UDP Syslog
830 TCP NETCONF
3389 TCP RDP
4500 UDP IPsec NAT-T
8443 TCP HTTPS alternativ (management)
49 TCP TACACS+
1812 UDP RADIUS Authentication
1813 UDP RADIUS Accounting

B. Wildcard mask — referință rapidă

/32 → 0.0.0.0         (un singur host)
/30 → 0.0.0.3         (4 adrese)
/28 → 0.0.0.15        (16 adrese)
/24 → 0.0.0.255       (256 adrese)
/22 → 0.0.3.255       (1024 adrese)
/20 → 0.0.15.255      (4096 adrese)
/16 → 0.0.255.255     (65536 adrese)
/8  → 0.255.255.255   (16M adrese)
/0  → 255.255.255.255 (orice adresă = "any")

Calcul: wildcard = 255.255.255.255 - subnet_mask
Ex: /26 → mask 255.255.255.192 → wildcard = 0.0.0.63

C. Referință rapidă OSPF LSA Types

Tip Nume Generat de Scope Descriere
1 Router LSA Fiecare router Intra-area Rețelele și vecinii routerului
2 Network LSA DR Intra-area Rețelele broadcast multi-access
3 Summary LSA ABR Inter-area Rute sumarizate între arii
4 ASBR Summary ABR Inter-area Locația ASBR-ului
5 External LSA ASBR Global Rute externe redistribuite
7 NSSA External ASBR în NSSA NSSA Rute externe în arii NSSA

Curs realizat ca material de referință pentru ingineri de rețea, pregătire CCNA/CCNP și administrare infrastructură enterprise.

Pe această pagină