Skip to content

Implementacja IP SLA

Przygotowanie, scenariusz

Info

Do realizacji tego zadania wymagany będzie dowolnie wybrany emulator np. Cisco Modeling Labs, GNS3, EVE-NG oraz dostęp do obrazów Cisco IOS.

Lab polega na implementacji IP SLA (Service Level Agreement) – czyli mechanizmu monitorowania sieci i reakcji na awarie wraz z integracją IP SLA z HSRP (redundancją bramy domyślnej).

Topologia

Screenshot

Adresacja

  • R1 e0/0 - 172.16.12.1/24
  • R1 e0/2 - 172.16.1.1/24

  • R2 e0/0 - 172.16.12.2/24
  • R2 e0/1 - 172.16.23.2/24
  • R2 lop0 - 192.168.1.1/24

  • R3 e0/0 - 172.16.3.1/24
  • R3 e0/1 - 172.16.23.3/24

  • S1 e0/2 - 172.16.1.2/24
  • S1 vlan2 - 10.0.2.1/24
  • S1 vlan3 - 10.0.3.1/24

  • S2 e0/0 - 172.16.3.2/24
  • S2 vlan2 - 10.0.2.2/24
  • S2 vlan3 - 10.0.3.2/24

  • S3 vlan2 - 10.0.2.3/24

Konfiguracja R1

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname R1

Adresujemy interfejsy.

R1(config)#interface ethernet 0/0
R1(config-if)#ip address 172.16.12.1 255.255.255.0
R1(config-if)#no shutdown

R1(config)#interface ethernet 0/2
R1(config-if)#ip address 172.16.1.1 255.255.255.0
R1(config-if)#no shutdown

Konfigurujemy routing OSPF.

R1(config)#router ospf 100
R1(config-router)#router-id 1.1.1.1
R1(config-router)#network 172.16.0.0 0.0.255.255 area 0

Konfiguracja R2

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname R2

Adresujemy interfejsy.

R2(config)#interface ethernet 0/0
R2(config-if)#ip address 172.16.12.2 255.255.255.0
R2(config-if)#no shutdown

R2(config)#interface ethernet 0/1
R2(config-if)#ip address 172.16.23.2 255.255.255.0
R2(config-if)#no shutdown

R2(config)#interface loopback 0
R2(config-if)#ip address 192.168.1.1 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#ip ospf network point-to-point

Konfigurujemy routing OSPF.

R2(config)#router ospf 100
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 172.16.0.0 0.0.255.255 area 0
R2(config-router)#network 192.168.1.0 0.0.0.255 area 0

Konfiguracja R3

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname R3

Adresujemy interfejsy.

R3(config)#interface ethernet 0/1
R3(config-if)#ip address 172.16.23.3 255.255.255.0
R3(config-if)#no shutdown

R3(config)#interface ethernet 0/0
R3(config-if)#ip address 172.16.3.1 255.255.255.0
R3(config-if)#no shutdown

Konfigurujemy routing OSPF.

R3(config)#router ospf 100
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 172.16.0.0 0.0.255.255 area 0

Konfiguracja S1

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname S1

Włączamy routing ponieważ jest to przełącznik warstwy 3.

S1(config)#ip routing

Agregujemy łącza tworząc EtherChannel na interfejsach skierowanych do przełączników.

S1(config)#interface range ethernet 1/0-3
S1(config-if-range)#switchport trunk encapsulation dot1q
S1(config-if-range)#switchport mode trunk
S1(config-if-range)#channel-group 12 mode active

S1(config)#interface range ethernet 0/0-1
S1(config-if-range)#switchport trunk encapsulation dot1q
S1(config-if-range)#switchport mode trunk
S1(config-if-range)#channel-group 1 mode active

Adresujemy interfejsy, tworzymy VLAN-y i poprawiamy STP.

S1(config)#interface ethernet 0/2
S1(config-if)#no switchport
S1(config-if)#ip address 172.16.1.2 255.255.255.0
S1(config-if)#no shutdown

S1(config)#vlan 2
S1(config)#vlan 3

S1(config)#spanning-tree vlan 2 root primary
S1(config)#spanning-tree vlan 3 root secondary

S1(config)#interface vlan 2
S1(config-if)#ip address 10.0.2.1 255.255.255.0
S1(config-if)#no shutdown

S1(config)#interface vlan 3
S1(config-if)#ip address 10.0.3.1 255.255.255.0
S1(config-if)#no shutdown

Czas na HSRP.

S1(config)#interface vlan 2
S1(config-if)#standby version 2
S1(config-if)#standby 2 ip 10.0.2.254
S1(config-if)#standby 2 priority 150
S1(config-if)#standby 2 preempt

S1(config)#interface vlan 3
S1(config-if)#standby version 2
S1(config-if)#standby 3 ip 10.0.3.254
S1(config-if)#standby 3 preempt

Konfigurujemy routing OSPF.

S1(config)#router ospf 100
S1(config-router)#router-id 1.1.1.2
S1(config-router)#network 172.16.1.0 0.0.0.255 area 0
S1(config-router)#network 10.0.0.0 0.0.255.255 area 0
S1(config-router)#passive-interface vlan 2
S1(config-router)#passive-interface vlan 3

Konfigurujemy serwer DHCP.

S1(config)#ip dhcp excluded-address 10.0.2.1 10.0.2.5
S1(config)#ip dhcp excluded-address 10.0.2.128 10.0.2.254
S1(config)#ip dhcp pool VLAN2
S1(dhcp-config)#network 10.0.2.0 255.255.255.0
S1(dhcp-config)#default-router 10.0.2.254

S1(config)#ip dhcp excluded-address 10.0.3.1 10.0.3.128
S1(config)#ip dhcp excluded-address 10.0.3.254
S1(config)#ip dhcp pool VLAN3
S1(dhcp-config)#network 10.0.3.0 255.255.255.0
S1(dhcp-config)#default-router 10.0.3.254

Konfiguracja S2

Analogicznie przystępujemy do konfiguracji przełącznika S2.

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname S2
S2(config)#ip routing

Agregujemy łącza tworząc EtherChannel na interfejsach skierowanych do przełączników.

S2(config)#interface range ethernet 1/0-3
S2(config-if-range)#switchport trunk encapsulation dot1q
S2(config-if-range)#switchport mode trunk
S2(config-if-range)#channel-group 12 mode active

S2(config)#interface range ethernet 0/2-3
S2(config-if-range)#switchport trunk encapsulation dot1q
S2(config-if-range)#switchport mode trunk
S2(config-if-range)#channel-group 2 mode active

Adresujemy interfejsy, tworzymy VLAN-y i poprawiamy STP.

S2(config)#interface ethernet 0/0
S2(config-if)#no switchport
S2(config-if)#ip address 172.16.3.2 255.255.255.0
S2(config-if)#no shutdown

S2(config)#vlan 2
S2(config)#vlan 3

S2(config)#spanning-tree vlan 2 root secondary
S2(config)#spanning-tree vlan 3 root primary

S2(config)#interface vlan 2
S2(config-if)#ip address 10.0.2.2 255.255.255.0
S2(config-if)#no shutdown

S2(config)#interface vlan 3
S2(config-if)#ip address 10.0.3.2 255.255.255.0
S2(config-if)#no shutdown

Czas na HSRP.

S2(config)#interface vlan 2
S2(config-if)#standby version 2
S2(config-if)#standby 2 ip 10.0.2.254
S2(config-if)#standby 2 preempt

S2(config)#interface vlan 3
S2(config-if)#standby version 2
S2(config-if)#standby 3 ip 10.0.3.254
S2(config-if)#standby 3 priority 150
S2(config-if)#standby 3 preempt

Konfigurujemy routing OSPF.

S2(config)#router ospf 100
S2(config-router)#router-id 3.3.3.2
S2(config-router)#network 10.0.0.0 0.0.255.255 area 0
S2(config-router)#passive-interface vlan 2
S2(config-router)#passive-interface vlan 3

Konfigurujemy serwer DHCP.

S2(config)#ip dhcp excluded-address 10.0.3.1 10.0.3.5
S2(config)#ip dhcp excluded-address 10.0.3.128 10.0.3.254
S2(config)#ip dhcp pool VLAN3
S2(dhcp-config)#network 10.0.3.0 255.255.255.0
S2(dhcp-config)#default-router 10.0.3.254

S2(config)#ip dhcp excluded-address 10.0.2.1 10.0.2.128
S2(config)#ip dhcp excluded-address 10.0.2.254
S2(config)#ip dhcp pool VLAN2
S2(dhcp-config)#network 10.0.2.0 255.255.255.0
S2(dhcp-config)#default-router 10.0.2.254

Konfiguracja S3

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname S3

Agregujemy łącza tworząc EtherChannel na interfejsach skierowanych do przełączników.

S3(config)#interface range ethernet 0/0-1
S3(config-if-range)#switchport trunk encapsulation dot1q
S3(config-if-range)#switchport mode trunk
S3(config-if-range)#channel-group 1 mode active

S3(config)#interface range ethernet 0/2-3
S3(config-if-range)#switchport trunk encapsulation dot1q
S3(config-if-range)#switchport mode trunk
S3(config-if-range)#channel-group 2 mode active

Ustawiamy port dostępowy dla komputera VPC.

S3(config)#interface ethernet 1/0
S3(config-if)#switchport mode access
S3(config-if)#switchport access vlan 2
S3(config-if)#spanning-tree portfast

Adresujemy interfejs VLAN2.

S3(config)#interface vlan 2
S3(config-if)#ip address 10.0.2.3 255.255.255.0
S3(config-if)#no shutdown

Wskazujemy bramę domyślną dla przełącznika.

S3(config)#ip default-gateway 10.0.2.254

Weryfikacja konfiguracji

Na przełączniku S3 poleceniem show etherchannel summary sprawdzam jak wygląda agragacja połączeń między przełącznikami.

Screenshot

Na routerze R2 weryfikuje sąsiadów w kontekście routingu OSPF poleceniem show ip ospf neighbor.

Screenshot

Na przełączniku S2 poleceniem show ip route zweryfikowałem poprawność tras routingu.

Screenshot

Na przełączniku S1 poleceniem show standby brief sprawdzam status HSRP.

Screenshot

Na koniec zostawiłem VPC na którym pobrałem adres IP z serwera DHCP i poleceniem ping przetestowałem połączenie z adresem 172.16.3.1.

Screenshot

Implementacja SLA - ping

Przełącznik S1 będzie automatycznie co 15 sekund sprawdzał, czy adres 192.168.1.1 jest osiągalny.

S1(config)#ip sla 1
S1(config-ip-sla)#icmp-echo 192.168.1.1
S1(config-ip-sla-echo)#frequency 15

Uruchamiamy naszą przygotowaną operacje.

S1(config)#ip sla schedule 1 life forever start-time now

Poleceniem show ip sla summary podglądam jak wygląda status SLA.

Screenshot

Dla testu wyłączyłem interfjes loopback 0 na routerze R2 i ponownie sprawdziłem status SLA. Efekty widać poniżej.

Screenshot

Implementacja SLA - HSRP

Kiedy IP SLA wykryje brak odpowiedzi (np. ping timeout), to po 45 sekundach priorytet HSRP na S1 spada o 60, co pozwala innemu urządzeniu automatycznie przejąć rolę aktywnej bramy domyślnej. Po 20 sekundach od przywrócenia dostępności sytuacja wraca do normy.

Zaczynamy od przełącznika S1.

S1(config)#track 10 ip sla 1
S1(config-track)#delay down 45 up 20

S1(config)#interface vlan 2
S1(config-if)#standby 2 track 10 decrement 60

S1(config)#interface vlan 3
S1(config-if)#standby 3 track 10 decrement 60

Analogicznie przechodzimy do S2.

S2(config)#track 10 ip sla 1
S2(config-track)#delay down 45 up 20

S2(config)#interface vlan 2
S2(config-if)#standby 2 track 10 decrement 60

S2(config)#interface vlan 3
S2(config-if)#standby 3 track 10 decrement 60

Podczas próby wylączenia interfejsu ethernet 0/0 przełącznik S1 zakomunikował nam o zmianach.

Screenshot

Success

Wszystkie przykłady są tylko formą zainteresowania danym zagadnieniem. Zachęcam do zapoznania się ze szczegółami zawartymi w dokumentacji autora lub producenta 😄


🕞 Ostatnia aktualizacja 14.06.2025