Wymagania formalne dla wszystkich referatów (ocena 5.0):
Te zadania musisz wykonać z realnym środowisku sprzętowym albo skorzystać z wirtualizacji (VirtualBox, GNS3, EVE-NG itp).
Zadania oznaczone (*) w spisie treści wymagają GNS3/EVE-NG (nie są obsługiwane przez Cisco Packet Tracer).

Objętość sprawozdania ok. 15-20 stron A4 (Times New Roman 12 pkt, odstęp 1,5 wiersza, marginesy 2,5 cm), strona tytułowa (autor, temat, cel, zakres), szczegółowy opis zagadnienia teoretycznego, dokumentacja techniczna: schematy logiczne i fizyczne, ilustracje (fotografie infrastruktury w przypadku realnego sprzętu, zrzuty ekranu w przypadku symulatorów czy VM), tabele adresacji i zestawienia urządzeń, dokładny opis i uzasadnienie konfiguracji każdego z urządzeń, napotkane problemy i sposoby ich rozwiązania, spis treści, spis tabel i ilustracji, bibliografia techniczna.

Jeśli dołączasz fotografie czy konfiguracje realnego sprzętu, środowiska pamiętaj o RODO - usuń dane identyfikacyjne czy podobne.

Wysyłaj w postaci opisu w PDF plus ewentualne załączniki (np. konfiguracje, listingi), całość możesz spakować do ZIP.

Spis zadań projektowych

  1. Nowoczesna architektura spine-leaf z wykorzystaniem VXLAN (*)
  2. Wdrażanie stosu Dual-Stack IPv4/IPv6 w infrastrukturze korporacyjnej
  3. Skalowalna sieć WAN z inteligentnym sterowaniem ruchem SD-WAN (*)
  4. Inżynieria ruchu BGP w scenariuszu wielodostępowym (Multihoming)
  5. Wirtualizacja funkcji sieciowych (NFV) w środowisku symulacyjnym (*)
  6. Zabezpieczanie systemów IoT/OT w oparciu o model Zero Trust
  7. Optymalizacja parametrów QoS dla krytycznego ruchu czasu rzeczywistego
  8. Zarządzanie bezpieczeństwem i monitoringiem (SNMPv3, Syslog, SIEM)
  9. Wielowarstwowa ochrona infrastruktury przed atakami L2/L3 (Defense in Depth)
  10. Zintegrowany projekt bezpiecznej łączności z chmurą hybrydową
01*
Nowoczesna architektura spine-leaf z wykorzystaniem technologii VXLAN
Podstawa wykładowa

W4 Architektura Spine-Leaf, sieci Overlay, protokół VXLAN.

Cel i zakres projektu

Głównym celem projektu jest zaprojektowanie i wdrożenie nowoczesnej architektury sieci wewnątrz centrum danych, która całkowicie eliminuje ograniczenia narzucone przez tradycyjny protokół Spanning Tree Protocol (STP). Tradycyjne podejście oparte na STP wymusza zablokowanie części portów przełącznika, co skutkuje nieefektywnym wykorzystaniem dostępnej przepustowości łączy oraz ogranicza skalowalność infrastruktury sieciowej. W ramach projektu należy zrealizować pełną implementację płaskiej topologii warstwy 2 (L2) nad szkieletem routowanym warstwy 3 (L3), co umożliwi bezproblemową migrację maszyn wirtualnych między fizycznymi hostami bez konieczności zmiany adresacji IP. Dodatkowo projekt zakłada wykorzystanie enkapsulacji VXLAN (Virtual Extensible LAN) w celu tworzenia wielu oddzielnych segmentów sieciowych na wspólnej infrastrukturze fizycznej, co znacząco poprawia elastyczność zarządzania zasobami centrum danych. Efektem końcowym powinna być w pełni funkcjonalna sieć zapewniająca wysoką przepustowość, automatyczną zbieżność oraz możliwość dalszej rozbudowy bez przestojów infrastrukturalnych.

Scenariusz problemowy

Centrum danych firmy przeznaczone do obsługi usług biznesowych dynamicznie się rozrasta, co wymaga częstej migracji maszyn wirtualnych między fizycznymi hostami hiperwizorami znajdującymi się w różnych segmentach sieci fizycznej. Tradycyjna architektura oparta na STP uniemożliwia elastyczną migrację, ponieważ maszyna wirtualna musiałaby zmienić adresację IP po przeniesieniu do innego VLAN, co powodowałoby przestoje w świadczeniu usług i wymagało rekonfiguracji wielu systemów. Dodatkowo dział IT potrzebuje izolowania ruchu różnych działów organizacji przy zachowaniu wspólnej infrastruktury fizycznej, co przy tradycyjnym podejściu wymagałoby rozbudowy przełączników warstwy dostępowej. W aktualnym rozwiązaniu pojawiają się również problemy z redundancją, ponieważ STP blokuje porty przełączające w celu zapobieżenia pętlom, co skutkuje marnowaniem połowicziny dostępnej przepustowości łączy. Należy więc wdrożyć dwuwarstwową architekturę sieci: sieć podkładową (Underlay) opartą na rutowaniu L3 zapewniającą osiągalność między wszystkimi węzłami oraz sieć nakładową (Overlay) wykorzystującą enkapsulację VXLAN do przesyłania ramek warstwy 2 w paczkach UDP przez sieć podkładową. Takie podejście umożliwia dowolną izolację segmentów przy zachowaniu pełnej przepustowości łączy oraz zapewnia mobilność maszyn wirtualnych bez zmiany adresacji IP.

Wymagania techniczne
  • Budowa topologii Spine-Leaf z minimum dwoma przełącznikami Spine i trzema Leaf.
  • Konfiguracja routingu Underlay (np. OSPF) zapewniającego pełną łączność dla interfejsów Loopback.
  • Implementacja VXLAN z wykorzystaniem punktów końcowych VTEP.
  • Weryfikacja przesyłania ruchu L2 między odległymi węzłami Leaf.
Wymagane dokumenty i schematy
Element Opis wymagań
Tablica VNI Mapowanie identyfikatorów VNI na konkretne segmenty logiczne.
Schemat logiczny Wizualizacja tuneli VXLAN ponad fizyczną strukturą Spine-Leaf.
Analiza PDU Zrzut z Wireshark pokazujący strukturę nagłówka VXLAN/UDP.
Szczegółowa instrukcja wykonania
  1. Utworzyć topologię fizyczną w GNS3/EVE-NG z dwoma przełącznikami Spine i trzema przełącznikami Leaf (polecenia VPCS lub VM do symulacji hostów).
  2. Połączyć każdy Leaf z każdym Spine krosowo (full mesh) - łącznie 6 połączeń.
  3. Skonfigurować adresy IP na interfejsach sieciowych między Spine a Leaf (np. 10.0.1.0/30, 10.0.2.0/30 itd.).
  4. Skonfigurować interfejsy Loopback0 na każdym urządzeniu (Spine: 10.255.1.x, Leaf: 10.255.2.x) - będą używane jako źródło VTEP.
  5. Skonfigurować OSPF Area 0 na wszystkich interfejsach Loopback i punkt-punkt między Spine-Leaf.
  6. Zweryfikować osiągalność wszystkich interfejsów Loopback pingiem przed przejściem do VXLAN.
  7. Na każdym Leaf skonfigurować funkcjonalność VTEP (interfejsy NVE - Network Virtualization Edge).
  8. Utworzyć sieci VLAN dla segmentów klienckich (VLAN 10 - Serwery, VLAN 20 - Użytkownicy, VLAN 30 - Goście).
  9. Przypisać identyfikatory VNI do każdego VLAN (VLAN 10 → VNI 10010, VLAN 20 → VNI 10020, VLAN 30 → VNI 10030).
  10. Skonfigurować rozgłaszanie (broadcast, unknown-unicast, multicast) dla każdego VNI.
  11. Zweryfikować sąsiedztwo VNI między Leafami (polecenie show nve vni).
  12. Podłączyć hosty do portów dostępu Leaf i sprawdzić przydział adresów IP.
  13. Wygenerować ruch L2 między hostami w różnych Leaf ale tym samym segmencie VLAN.
  14. Przechwycić ruch Wireshark na interfejsie fizycznym i zidentyfikować enkapsulację VXLAN (port UDP 4789).
  15. Zweryfikować tablice MAC i wpisy VNI na każdym Leaf (show mac address-table, show nve peers).
Wskazówki

Przed przystąpieniem do konfiguracji VXLAN należy dokładnie zaplanować schemat adresacji podsieci podkładowej, aby zapewnić unikalność adresów Loopback dla każdego urządzenia Spine i Leaf. Adresy te będą źródłem punktów końcowych VTEP, więc muszą być routowalne w całej sieci podkładowej. Podczas konfiguracji OSPF na interfejsach punkt-punkt należy pamiętać o jawnej konfiguracji typu sieci jako point-to-point, ponieważ domyślny tryb broadcast może powodować problemy z sąsiedztwem na łączach typu point-to-point. W trakcie weryfikacji zaleca się rozpocząć od testów ping między interfejsami Loopback przed włączeniem VXLAN, co pozwala wyizolować problemy warstwy podkładowej od warstwy nakładki. Przy konfiguracji multicast dla VNI należy używać adresów z zakresu administracyjnego 239.0.0.0/8, aby uniknąć kolizji z innymi mechanizmami multicast w sieci. Podczas testowania enkapsulacji VXLAN w Wireshark należy filtrować port UDP 4789 lub używać filtru vxlan, co ułatwia identyfikację przesyłanych ramek.

Przykładowa konfiguracja CLI - Cisco IOS-XE (Leaf-1)
!
! KONFIGURACJA INTERFEJSÓW SIEĆ PODSTAWOWA (UNDERLAY)
Leaf-1#configure terminal
Leaf-1(config)#interface Loopback0
Leaf-1(config-if)#ip address 10.255.2.1 255.255.255.255
Leaf-1(config-if)#ip ospf network point-to-point
Leaf-1(config-if)#exit
Leaf-1(config)#interface GigabitEthernet0/0
Leaf-1(config-if)#description Do_Spine-1
Leaf-1(config-if)#ip address 10.0.1.1 255.255.255.252
Leaf-1(config-if)#ip ospf network point-to-point
Leaf-1(config-if)#no shutdown
Leaf-1(config-if)#exit
Leaf-1(config)#interface GigabitEthernet0/1
Leaf-1(config-if)#description Do_Spine-2
Leaf-1(config-if)#ip address 10.0.2.1 255.255.255.252
Leaf-1(config-if)#ip ospf network point-to-point
Leaf-1(config-if)#no shutdown
Leaf-1(config-if)#exit

! KONFIGURACJA OSPF (ROUTING UNDERLAY)
Leaf-1(config)#router ospf 1
Leaf-1(config-router)#router-id 10.255.2.1
Leaf-1(config-router)#network 10.255.2.1 0.0.0.0 area 0
Leaf-1(config-router)#network 10.0.1.0 0.0.0.3 area 0
Leaf-1(config-router)#network 10.0.2.0 0.0.0.3 area 0
Leaf-1(config-router)#exit

! TWORZENIE VLAN DLA SEGMENTÓW
Leaf-1(config)#vlan 10
Leaf-1(config-vlan)#name SERWERY
Leaf-1(config-vlan)#exit
Leaf-1(config)#vlan 20
Leaf-1(config-vlan)#name UŻYTKOWNICY
Leaf-1(config-vlan)#exit
Leaf-1(config)#vlan 30
Leaf-1(config-vlan)#name GOSCIE
Leaf-1(config-vlan)#exit

! INTERFEJS NVE (VTEP) - NAKŁADKA VXLAN
Leaf-1(config)#interface nve1
Leaf-1(config-if)#no ip address
Leaf-1(config-if)#source-interface Loopback0
Leaf-1(config-if)#host-reachability protocol bgp
Leaf-1(config-if)#member vni 10010
Leaf-1(config-if-nve)#mcast-group 239.0.0.10
Leaf-1(config-if-nve)#exit
Leaf-1(config-if)#member vni 10020
Leaf-1(config-if-nve)#mcast-group 239.0.0.20
Leaf-1(config-if-nve)#exit
Leaf-1(config-if)#member vni 10030
Leaf-1(config-if-nve)#mcast-group 239.0.0.30
Leaf-1(config-if-nve)#exit
Leaf-1(config-if)#exit
Leaf-1(config)#exit

! WERYFIKACJA KONFIGURACJI
Leaf-1#show nve vni
Codes: CP - Control Plane, DP - Data Plane, UC - Unicast, UP - Unknown
Interface  VNI        Multicast      VNI State  Mode     Peer-IP    VC#  CP
nve1       10010      239.0.0.10     UP         L2CP     10.255.2.2  -   -
nve1       10020      239.0.0.20     UP         L2CP     10.255.2.2  -   -
nve1       10030      239.0.0.30     UP         L2CP     10.255.2.2  -   -

Leaf-1#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
10.255.1.1        1   FULL/DR         00:00:35    10.0.1.2       GigabitEthernet0/0
10.255.1.2        1   FULL/DR         00:00:38    10.0.2.2       GigabitEthernet0/1

Leaf-1#show mac address-table vlan 10
          Mac Address Table
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
 10     aaaa.bbbb.cccc    DYNAMIC     Gi0/2
 10     001d.46aa.1234    DYNAMIC     nve1    (VNI 10010)
 10     001d.46aa.5678    DYNAMIC     nve1    (VNI 10010)

Leaf-1#ping 10.255.2.2 source Loopback0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.255.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/5 ms
                    
Przykładowy schemat
02
Wdrażanie stosu Dual-Stack IPv4/IPv6 w infrastrukturze korporacyjnej
Podstawa wykładowa

W2 Routing IPv4/IPv6, mechanizmy przejścia, autokonfiguracja.

Cel i zakres projektu

Głównym celem projektu jest zapewnienie pełnej łączności sieciowej w standardzie IPv6 przy jednoczesnym zachowaniu kompatybilności wstecznej z istniejącą infrastrukturą opartą na IPv4. Firma prowadzi stopniową migrację swoich systemów i usług do nowszego standardu adresacji, co wymaga równoległego działania obu protokołów w tej samej infrastrukturze. Projekt obejmuje szczegółowe planowanie schematu adresacji IPv6 z podziałem na logiczne segments dla poszczególnych działów organizacji, a także konfigurację routingu dynamicznego dla obu rodzin protokołów z wykorzystaniem OSPFv2 dla IPv4 oraz OSPFv3 dla IPv6. Dodatkowo zadaniem jest wdrożenie automatycznego pobierania adresów IPv6 przez stacje robocze z wykorzystaniem mechanizmu SLAAC (Stateless Address Autoconfiguration) wspieranego przez serwer DHCPv6 w trybie Stateless, co zapewnia elastyczność w zarządzaniu adresacją. Końcowym efektem projektu ma być w pełni funkcjonalna sieć korporacyjna obsługująca jednocześnie hosty IPv4 i IPv6 bez konieczności utrzymywania oddzielnych fizycznych infrastruktur.

Scenariusz problemowy

Firma prowadzi intensywną modernizację swojej infrastruktury IT, której częścią jest stopniowa migracja do standardu IPv6 w celu zapewnienia dostępu do nowoczesnych usług internetowych oraz przygotowania na wyczerpanie puli adresów IPv4. Dział IT otrzymał od regionalnego dostawcy usług internetowych blok adresów IPv6 /48, który musi zostać właściwie podzielony na mniejsze podsieci dla poszczególnych departamentów. Część serwerów i stacji roboczych wspiera już adresację IPv6, jednak większość infrastruktury sieciowej nadal opiera się na IPv4. Należy więc wdrożyć mechanizm Dual-Stack na wszystkich routerach i przełącznikach warstwy L3, aby umożliwić jednoczesną komunikację w obu standardach. Dodatkowo hosty muszą mieć możliwość automatycznego pobierania adresów IPv6 bez ręcznej konfiguracji, co wymaga wdrożenia Router Advertisement (RA) z odpowiednimi flagami oraz opcjonalnego serwera DHCPv6 dostarczającego informacji uzupełniających takich jak serwery DNS.

Wymagania techniczne
  • Podział prefiksu IPv6 /48 na podsieci dla różnych departamentów.
  • Konfiguracja protokołu OSPFv3 z obsługą adresacji IPv4 i IPv6.
  • Wdrożenie autokonfiguracji SLAAC oraz serwera Stateless DHCPv6.
  • Implementacja list kontroli dostępu IPv6 ACL na brzegu sieci.
Wymagane dokumenty i schematy
Element Opis wymagań
Plan Adresacji Tabela z wyliczonymi podsieciami IPv6 (notacja hex).
Analiza ICMPv6 Opis działania Neighbor Discovery (NDP) na podstawie zrzutów ruchu.
Weryfikacja Zrzuty `show ipv6 route` oraz testy łączności ping6/traceroute6.
Szczegółowa instrukcja wykonania
  1. Zaplanować schemat adresacji IPv6: otrzymany prefiks /48 podzielić na /64 dla każdego działu (minimum 4 działy: IT, Księgowość, Zarząd, Goście).
  2. Utworzyć topologię w GNS3/EVE-NG: 2 routery rdzeniowe, 2 przełączniki L3, po jednym VLAN dla każdego działu.
  3. Skonfigurować adresy IPv4 na interfejsach routerów (sieć klasy B np. 172.16.0.0/22 lub prywatna 10.0.0.0/16).
  4. Skonfigurować adresy IPv6 na interfejsach (np. 2001:db8:abcd::/48, każdy dział = kolejne /64).
  5. Na routerach skonfigurować OSPFv2 dla IPv4 z area 0 na wszystkich łączach.
  6. Skonfigurować OSPFv3 dla IPv6 z area 0 (uwaga: OSPFv3 wymaga osobnej konfiguracji i router-id).
  7. Skonfigurować interfejsy VLAN na przełącznikach L3 z adresami IPv4 i IPv6 (SVI).
  8. Na routerze brzegowym skonfigurować router NDP (Router Advertisement) z flagami O (Other config) dla SLAAC+DHCPv6.
  9. Skonfigurować serwer DHCPv6 Stateless na routerze (informacje DNS, domain-name, bez adresów).
  10. Na hostach (VPCS lub maszyny wirtualne) zweryfikować otrzymanie adresu IPv6 metodą SLAAC (EUI-64).
  11. Skonfigurować listy ACL IPv6 na routerze brzegowym: blokowanie ruchu przychodzącego z zewnątrz, zezwolenie na established.
  12. Przetestować łączność IPv4: ping między działami, traceroute.
  13. Przetestować łączność IPv6: ping6, traceroute6.
  14. Przechwycić ruch ICMPv6 w Wireshark i zidentyfikować komunikaty RS/RA, NS/NA.
  15. Wygenerować ruch z jednego działu do drugiego i zweryfikować trasy w tablicy routowania IPv4 i IPv6.
Przykładowa konfiguracja CLI - Cisco IOS (Router brzegowy)
!
! KONFIGURACJA ADRESACJI IPv4 ORAZ IPv6
Router#configure terminal
Router(config)#interface GigabitEthernet0/0
Router(config-if)#description LAN_IT
Router(config-if)#ip address 172.16.10.1 255.255.255.0
Router(config-if)#ipv6 address 2001:db8:abcd:10::1/64
Router(config-if)#ipv6 enable
Router(config-if)#no shutdown
Router(config-if)#exit

Router(config)#interface GigabitEthernet0/1
Router(config-if)#description LAN_KSIEGOWOSC
Router(config-if)#ip address 172.16.20.1 255.255.255.0
Router(config-if)#ipv6 address 2001:db8:abcd:20::1/64
Router(config-if)#ipv6 enable
Router(config-if)#no shutdown
Router(config-if)#exit

Router(config)#interface GigabitEthernet0/2
Router(config-if)#description ŁĄCZE_DO_INTERNETU
Router(config-if)#ip address 203.0.113.1 255.255.255.252
Router(config-if)#ipv6 address 2001:db8:ffff::1/126
Router(config-if)#no shutdown
Router(config-if)#exit

! OSPFv2 DLA IPv4
Router(config)#router ospf 1
Router(config-router)#router-id 1.1.1.1
Router(config-router)#network 172.16.10.0 0.0.0.255 area 0
Router(config-router)#network 172.16.20.0 0.0.0.255 area 0
Router(config-router)#exit

! OSPFv3 DLA IPv6
Router(config)#ipv6 router ospf 1
Router(config-rtr)#router-id 1.1.1.1
Router(config-rtr)#exit

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

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

! KONFIGURACJA ROUTER ADVERTISEMENT (SLAAC + DHCPv6 STATELESS)
Router(config)#ipv6 dhcp pool IT-DHCPV6
Router(config-dhcp)#dns-server 2001:db8:ffff::53
Router(config-dhcp)#domain-name firma.local
Router(config-dhcp)#exit

Router(config)#interface GigabitEthernet0/0
Router(config-if)#ipv6 nd other-config-flag
Router(config-if)#ipv6 dhcp server IT-DHCPV6
Router(config-if)#exit

Router(config)#ipv6 dhcp pool KSIEGOWOSC-DHCPV6
Router(config-dhcp)#dns-server 2001:db8:ffff::53
Router(config-dhcp)#domain-name firma.local
Router(config-dhcp)#exit

Router(config)#interface GigabitEthernet0/1
Router(config-if)#ipv6 nd other-config-flag
Router(config-if)#ipv6 dhcp server KSIEGOWOSC-DHCPV6
Router(config-if)#exit

! LISTA KONTROLI DOSTĘPU IPv6 (ACL)
Router(config)#ipv6 access-list BLOCK-EXTERNAL
Router(config-ipv6-acl)#permit icmpv6 any any echo-reply
Router(config-ipv6-acl)#permit icmpv6 any any time-exceeded
Router(config-ipv6-acl)#permit icmpv6 any any parameter-problem
Router(config-ipv6-acl)#permit tcp any any established
Router(config-ipv6-acl)#deny ipv6 any any log
Router(config-ipv6-acl)#exit

Router(config)#interface GigabitEthernet0/2
Router(config-if)#ipv6 traffic-filter BLOCK-EXTERNAL in
Router(config-if)#exit
Router(config)#exit

! WERYFIKACJA KONFIGURACJI
Router#show ipv6 route
IPv6 Routing Table - default - 9 entries
Codes: C - Connected, L - Local, S - Static, O - OSPF, B - BGP
C   2001:db8:abcd:10::/64 [0/0]
     via GigabitEthernet0/0, directly connected
L   2001:db8:abcd:10::1/128 [0/0]
     via GigabitEthernet0/0, receive
C   2001:db8:abcd:20::/64 [0/0]
     via GigabitEthernet0/1, directly connected
L   2001:db8:abcd:20::1/128 [0/0]
     via GigabitEthernet0/1, receive
O   2001:db8:abcd:30::/64 [110/2]
     via FE80::2, GigabitEthernet0/2
S   ::/0 [1/0]
     via 2001:db8:ffff::2

Router#show ipv6 ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/DR         00:00:32    FE80::2         Gi0/2

Router#show ipv6 dhcp binding
Client: FE80::2AA:BBFF:FECC:DD
  DUID: 00030001002AABFFCCDD
  IA PD: IA ID 0x1234, T1 43200, T2 69120
    Prefix: 2001:db8:abcd:10:2AA:BBFF:FECC:DD/64
    preferred lifetime 86400, valid lifetime 86400

Router#ping ipv6 2001:db8:abcd:20::10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:ABCD:20::10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

Router#traceroute ipv6 2001:db8:abcd:30::1
Type escape sequence to abort.
Tracing the route to 2001:DB8:ABCD:30::1
  1 2001:db8:ffff::2 4 msec 2 msec 2 msec
  2 2001:db8:abcd:30::1 6 msec 4 msec 4 msec
                    
Przykładowy schemat
03*
Skalowalna sieć WAN z inteligentnym sterowaniem ruchem SD-WAN
Podstawa wykładowa

W2 Tunelowanie IP, W4 Koncepcja SD-WAN, hybrydowe łącza.

Cel i zakres projektu

Głównym celem projektu jest wdrożenie nowoczesnej architektury programowalnej sieci rozległej (SD-WAN), która dynamicznie i inteligentnie wybiera optymalną ścieżkę transmisji danych między oddziałami a centralą. Tradycyjne podejście oparte na statycznych trasach i jednym dostawcy usług nie zapewnia elastyczności ani odporności na awarie. W ramach projektu należy zaimplementować rozwiązanie pozwalające na jednoczesne wykorzystanie łączy MPLS o wysokiej jakości oraz tańszych łącz szerokopasmowych, z automatycznym sterowaniem ruchem w zależności od stanu aplikacji i parametrów łącza. System powinien monitorować jakość każdego łącza w czasie rzeczywistym i automatycznie przełączać ruch krytyczny (np. systemy ERP, bazy danych) na łącze o lepszych parametrach, kierując ruch o niższym priorytecie (np. przeglądanie WWW, strumieniowanie wideo) na tańsze łącza. Efektem projektu ma być w pełni automatyczny system zapewniający ciągłość działania usług przy minimalnych kosztach infrastruktury.

Scenariusz problemowy

Organizacja posiada trzy oddziały terenowe rozmieszczone geograficznie w różnych regionach, z których każdy jest połączony z centralą drogimi łączami MPLS zapewniającymi wysoką jakość transmisji, oraz dodatkowymi tańszymi łączami szerokopasmowymi (Internet) jako zapasowymi. Aktualnie ruch z każdego oddziału jest kierowany wyłącznie przez łącze MPLS, niezależnie od jego aktualnego obciążenia i jakości, co przy dużym ruchu powoduje opóźnienia i straty pakietów szczególnie dla aplikacji krytycznych. Dodatkowo awaria łącza MPLS skutkuje przestojem usług do czasu automatycznego lub ręcznego przełączenia na łącze zapasowe. Zarząd firmy oczekuje rozwiązania, które automatycznie będzie kierować ruch krytyczny (ERP, bazy danych) przez łącze MPLS, a ruch o mniejszym znaczeniu (WWW, strumienie wideo) przez tańsze łącze Internetowe, reagując na wzrost jittera powyżej określonego progu. Takie rozwiązanie pozwoli zmniejszyć koszty przy jednoczesnym zachowaniu wysokiej jakości usług krytycznych.

Wymagania techniczne
  • Konfiguracja bezpiecznych tuneli (np. IPsec) między oddziałami.
  • Implementacja mechanizmu monitorowania SLA (opóźnienie, straty pakietów).
  • Definicja polityk sterowania ruchem (Application-aware routing).
  • Symulacja awarii łącza głównego i weryfikacja czasu zbieżności.
Wymagane dokumenty i schematy
Element Opis wymagań
Macierz SLA Tabela z progami akceptowalności dla różnych klas ruchu.
Przebieg przełączenia Wykres lub tabela pokazująca zmianę ścieżki po wzroście opóźnienia.
Konfiguracja tuneli Szczegółowy opis parametrów krypto i enkapsulacji.
Szczegółowa instrukcja wykonania
  1. Utworzyć topologię w GNS3/EVE-NG: 2 routery w oddziale (Edge), 2 routery reprezentujące ISP, 1 serwer monitoringowy.
  2. Skonfigurować interfejsyWAN na routerach oddziałowych: łącze do ISP1 (MPLS) i ISP2 (Internet).
  3. Przydzielić numer AS dla firmy (np. AS 65001) i numery AS dla ISP (np. AS 65010 dla ISP1, AS 65020 dla ISP2).
  4. Skonfigurować sesje eBGP między routerami oddziałowymi a routerami ISP.
  5. Na routerze brzegowym skonfigurować statyczne trasy do sieci wewnętrznych i rozgłosić je przez BGP.
  6. Skonfigurować atrybut Local Preference dla tras przychodzących od ISP1 (wyższa wartość dla pobierania).
  7. Zastosować AS-Path Prepend na trasach wysyłanych do ISP2 (wydłużona ścieżka AS zachęca do wyjścia przez ISP1).
  8. Skonfigurować Route Map do manipulacji atrybutami BGP.
  9. Utworzyć Prefix List do filtrowania tras (zezwolić tylko na sieci należące do firmy).
  10. Skonfigurować i włączyć BFD (Bidirectional Forwarding Detection) dla szybkiego wykrywania awarii.
  11. Skonfigurować tunele IPsec przez łącze Internetowe (jako zapasowe).
  12. Przetestować łączność przez oba łącza (ping do adresów publicznych przez oba ISP).
  13. Wyłączyć fizycznie łącze do ISP1 i zweryfikować automatyczne przełączenie na ISP2.
  14. Sprawdzić tablicę BGP: show ip bgp, show ip bgp neighbor, show ip bgp path.
  15. Zweryfikować atrybuty tras w tabeli BGP (Local Preference, AS-Path, MED).
Wskazówki

Przed konfiguracją BGP należy upewnić się, że istnieje pełna łączność IP między wszystkimi interfejsami WAN, ponieważ sesje BGP wymagają działającej warstwy trzeciej. Podczas konfiguracji atrybutu Local Preference należy pamiętać, że wyższa wartość oznacza wyższy priorytet trasy przy podejmowaniu decyzji o routowaniu w obrębie AS, więc dla preferowanego ISP1 należy ustawić wyższą wartość (np. 200), a dla drugiego ISP niższą (np. 100). AS-Path Prepend działa w przeciwnym kierunku - wydłużając ścieżkę AS dla tras wysyłanych do ISP2, zachęcamy zewnętrznych BGP do kierowania ruchu przez ISP1 z mniejszą liczbą AS w ścieżce. BFD powinno być skonfigurowane na wszystkich sesjach BGP dla szybkiego wykrywania awarii, przy czym interwał powinien być dopasowany do charakterystyki łącza (np. 50ms dla MPLS). Podczas testowania przełączenia awaryjnego zaleca się fizyczne odłączenie łącza, a nie wyłączenie interfejsu komendą shutdown, co pozwala na weryfikację zachowania BFD w warunkach rzeczywistych.

!
! KONFIGURACJA PODSTAWOWA INTERFEJSÓW
Edge-Router#configure terminal
Edge-Router(config)#interface GigabitEthernet0/0
Edge-Router(config-if)#description ŁĄCZE_MPLS_DO_ISP1
Edge-Router(config-if)#ip address 203.0.113.1 255.255.255.252
Edge-Router(config-if)#no shutdown
Edge-Router(config-if)#exit

Edge-Router(config)#interface GigabitEthernet0/1
Edge-Router(config-if)#description ŁĄCZE_INTERNET_DO_ISP2
Edge-Router(config-if)#ip address 198.51.100.1 255.255.255.252
Edge-Router(config-if)#no shutdown
Edge-Router(config-if)#exit

Edge-Router(config)#interface GigabitEthernet0/2
Edge-Router(config-if)#description LAN
Edge-Router(config-if)#ip address 172.16.0.1 255.255.255.0
Edge-Router(config-if)#no shutdown
Edge-Router(config-if)#exit

! KONFIGURACJA PREFIX-LIST (FILTROWANIE TRAS)
Edge-Router(config)#ip prefix-list MOJE-SIECI seq 5 permit 172.16.0.0/16 le 24
Edge-Router(config)#ip prefix-list MOJE-SIECI seq 10 deny 0.0.0.0/0 le 32

! KONFIGURACJA ROUTE-MAP DLA MANIPULACJI ATRYBUTAMI
Edge-Router(config)#route-map PREFER-ISP1-IN permit 10
Edge-Router(config-route-map)#set local-preference 200
Edge-Router(config-route-map)#exit

Edge-Router(config)#route-map PREFER-ISP2-IN permit 10
Edge-Router(config-route-map)#set local-preference 100
Edge-Router(config-route-map)#exit

Edge-Router(config)#route-map OUT-TO-ISP1 permit 10
Edge-Router(config-route-map)#match ip address prefix-list MOJE-SIECI
Edge-Router(config-route-map)#exit

Edge-Router(config)#route-map OUT-TO-ISP2 permit 10
Edge-Router(config-route-map)#match ip address prefix-list MOJE-SIECI
Edge-Router(config-route-map)#set as-path prepend 65001 65001
Edge-Router(config-route-map)#exit

! KONFIGURACJA BGP
Edge-Router(config)#router bgp 65001
Edge-Router(config-router)#bgp router-id 1.1.1.1
Edge-Router(config-router)#network 172.16.0.0 mask 255.255.255.0
Edge-Router(config-router)#neighbor 203.0.113.2 remote-as 65010
Edge-Router(config-router)#neighbor 203.0.113.2 route-map PREFER-ISP1-IN in
Edge-Router(config-router)#neighbor 203.0.113.2 route-map OUT-TO-ISP1 out
Edge-Router(config-router)#neighbor 198.51.100.2 remote-as 65020
Edge-Router(config-router)#neighbor 198.51.100.2 route-map PREFER-ISP2-IN in
Edge-Router(config-router)#neighbor 198.51.100.2 route-map OUT-TO-ISP2 out
Edge-Router(config-router)#exit

! KONFIGURACJA BFD (SZYBKIE WYKRYWANIE AWARII)
Edge-Router(config)#bfd interval 50 min_rx 50 multiplier 3
Edge-Router(config)#interface GigabitEthernet0/0
Edge-Router(config-if)#bfd neighbor 203.0.113.2
Edge-Router(config-if)#exit
Edge-Router(config)#interface GigabitEthernet0/1
Edge-Router(config-if)#bfd neighbor 198.51.100.2
Edge-Router(config-if)#exit
Edge-Router(config)#exit

! WERYFIKACJA KONFIGURACJI
Edge-Router#show ip bgp summary
BGP table version is 3, main routing table version 3
2 network entries using 288 bytes of memory
3 path entries using 240 bytes of memory
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
203.0.113.2     4  65010    125     132        3    0    0 02:10:45        1
198.51.100.2    4  65020    118     125        3    0    0 02:08:32        2

Edge-Router#show ip bgp
BGP table version is 3, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*> 0.0.0.0          203.0.113.2             0    200      0 65010 i
*                   198.51.100.2            0    100      0 65020 i
*> 172.16.0.0/24    0.0.0.0                  0         32768 i

Edge-Router#show ip bgp 0.0.0.0
BGP routing table entry for 0.0.0.0/0, version 2
Paths: (2 available, best #1, table default-ip-routing-table)
  Advertised to update-groups:
     1          1
  65010, (path id 1)
    203.0.113.2 from 203.0.113.2 (10.0.0.1)
      Origin IGP, metric 0, localpref 200, valid, external, best
  65020, (path id 2)
    198.51.100.2 from 198.51.100.2 (20.0.0.1)
      Origin IGP, metric 0, localpref 100, valid, external

Edge-Router#show ip route
Codes: L - local, C - connected, S - static, O - OSPF, B - BGP
     Gateway of last resort is 203.0.113.2 to network 0.0.0.0
B    0.0.0.0/0 [20/0] via 203.0.113.2, 02:10:45
     172.16.0.0/24 is subnetted, 1 subnets
C       172.16.0.0 is directly connected, GigabitEthernet0/2
L       172.16.0.1 is directly connected, GigabitEthernet0/2
     203.0.113.0/30 is subnetted, 1 subnets
C       203.0.113.0 is directly connected, GigabitEthernet0/0
L       203.0.113.1 is directly connected, GigabitEthernet0/0

Edge-Router#traceroute 8.8.8.8
Type escape sequence to abort.
Tracing the route to 8.8.8.8
  1 203.0.113.2 4 msec 2 msec 2 msec
  2 10.0.0.1 6 msec 4 msec 4 msec
  3 8.8.8.8 8 msec 6 msec 6 msec
                    
Przykładowy schemat
04
Inżynieria ruchu BGP w scenariuszu wielodostępowym (Multihoming)
Podstawa wykładowa

W2 Protokół BGP, systemy autonomiczne (AS), atrybuty Path Vector.

Cel i zakres projektu

Głównym celem projektu jest zapewnienie pełnej redundancji i optymalizacja kosztów połączenia organizacji z Internetem poprzez wykorzystanie dwóch niezależnych dostawców usług (multihoming). Firma posiada własny publiczny blok adresów IP, który musi być dostępny przez oba łącza, zapewniając ciągłość działania nawet w przypadku awarii jednego z dostawców. Projekt obejmuje szczegółową konfigurację protokołu BGP z zaawansowaną manipulacją atrybutami w celu precyzyjnego sterowania ruchem wejściowym ( inbound) i wyjściowym (outbound). Należy skonfigurować atrybut Local Preference dla kontrolowania ruchu przychodzącego od dostawców, AS-Path Prepending dla optymalizacji kosztów ruchu wychodzącego oraz inne mechanizmy jak MED i BGP Community. Efektem projektu ma być w pełni redundantna infrastruktura zapewniająca ciągłość działania usług przy minimalnych kosztach połączeń.

Scenariusz problemowy

Firma posiada własny publiczny blok adresów IP (/24) wykorzystywany do świadczenia usług internetowych oraz dwa niezależne łącza do różnych dostawców ISP zapewniające dostęp do Internetu. Aktualnie cały ruch jest kierowany przez jednego dostawcę (ISP1), co przy awarii tego łącza powoduje całkowitą niedostępność usług. Dodatkowo zarząd firmy oczekuje optymalizacji kosztów, czyli wykorzystania tańszego łącza ISP2 dla ruchu wychodzącego, przy zachowaniu ISP1 jako głównego dla ruchu przychodzącego. Należy więc wdrożyć rozwiązanie oparte na protokole BGP z zaawansowaną inżynierią ruchu: atrybut Local Preference pozwoli preferować trasy od ISP1 dla ruchu przychodzącego, AS-Path Prepend wydłuży ścieżkę AS dla tras reklamowanych do ISP2, zachęcając zewnętrzny ruch do kierowania przez ISP1, a MED (Multi-Exit Discriminator) umożliwi finezyjną kontrolę nad tym, którym łączem ruch wychodzi do poszczególnych dostawców.

Wymagania techniczne
  • Konfiguracja sesji eBGP z dwoma różnymi numerami AS dostawców.
  • Zastosowanie list prefiksów do ograniczania rozgłaszanych tras.
  • Wykorzystanie Route-Maps do modyfikacji atrybutów wagowych.
  • Wdrożenie sesji iBGP między routerami brzegowymi organizacji.
Wymagane dokumenty i schematy
Element Opis wymagań
Logika wyboru tras Opis 13-stopniowego algorytmu BGP Best Path Selection.
Analiza sąsiedztwa Zrzuty `show ip bgp summary` i stan sesji TCP/179.
Ścieżki tras Analiza `show ip bgp` pokazująca wybrane atrybuty dla danej sieci.
Szczegółowa instrukcja wykonania
  1. Utworzyć topologię w GNS3/EVE-NG: 2 routery brzegowe (Edge), routery ISP1 i ISP2, serwery wewnętrzne.
  2. Skonfigurować interfejsy WAN z adresami publicznymi na obu routerach Edge.
  3. Przydzielić numer AS dla organizacji (np. AS 65001) oraz numery AS dla ISP (AS 65010 i AS 65020).
  4. Skonfigurować sesje eBGP z oboma dostawcami na obu routerach Edge.
  5. Skonfigurować sesję iBGP między routerami Edge (trasy wewnętrzne BGP).
  6. Skonfigurować Route Reflector na jednym z routerów Edge dla uproszczenia iBGP.
  7. Utworzyć Prefix Lists do filtrowania tras przychodzących i wychodzących.
  8. Skonfigurować Route Maps z atrybutem Local Preference dla sterowania ruchem przychodzącym.
  9. Zastosować AS-Path Prepend na trasach rozgłaszanych do mniej preferowanego ISP.
  10. Skonfigurować MED (Multi-Exit Discriminator) na trasach wysyłanych do ISP.
  11. Skonfigurować BGP Community dla dalszej manipulacji trasami.
  12. Zweryfikować tablicę BGP: show ip bgp, show ip bgp neighbors.
  13. Przetestować łączność przez oba łącza i wyśledzić trasę (traceroute).
  14. Symulować awarię jednego łącza i zweryfikować zbieżność (preemption).
  15. Dokumentować proces podejmowania decyzji BGP (BGP Best Path Selection).
Wskazówki

Przed konfiguracją BGP kluczowe jest zrozumienie 13-stopniowego algorytmu BGP Best Path Selection, który określa kolejność preferowania tras. Local Preference ma najwyższy priorytet (krok 7), więc jest jednym z pierwszych atrybutów branych pod uwagę przy wyborze najlepszej trasy. Przy konfiguracji route-map dla manipulacji atrybutami należy pamiętać o właściwej kolejności reguł (sequence numbers), ponieważ przetwarzanie odbywa się sekwencyjnie. Route Reflector znacząco upraszcza topologię iBGP, eliminując potrzebę pełnej siatki połączeń między routerami wewnętrznymi - wystarczy jeden router skonfigurowany jako Route Reflector z pozostałymi jako klientami. Podczas testowania symulacji awarii zaleca się użycie polecenia shutdown na interfejsie, co powoduje naturalne przełączenie tras w tabeli BGP zgodne z algorytmem wyboru najlepszej ścieżki.

!
! KONFIGURACJA INTERFEJSÓW
Edge-1#configure terminal
Edge-1(config)#interface GigabitEthernet0/0
Edge-1(config-if)#description Do_ISP1
Edge-1(config-if)#ip address 203.0.113.1 255.255.255.252
Edge-1(config-if)#no shutdown
Edge-1(config-if)#exit

Edge-1(config)#interface GigabitEthernet0/1
Edge-1(config-if)#description Do_ISP2
Edge-1(config-if)#ip address 198.51.100.1 255.255.255.252
Edge-1(config-if)#no shutdown
Edge-1(config-if)#exit

Edge-1(config)#interface GigabitEthernet0/2
Edge-1(config-if)#description ŁĄCZE_iBGP_Do_Edge-2
Edge-1(config-if)#ip address 10.0.0.1 255.255.255.252
Edge-1(config-if)#no shutdown
Edge-1(config-if)#exit

Edge-1(config)#interface GigabitEthernet0/3
Edge-1(config-if)#description LAN
Edge-1(config-if)#ip address 172.16.0.1 255.255.255.0
Edge-1(config-if)#no shutdown
Edge-1(config-if)#exit

! KONFIGURACJA PREFIX-LIST
Edge-1(config)#ip prefix-list FIRMA-OUT seq 5 permit 172.16.0.0/16 le 24
Edge-1(config)#ip prefix-list ISP1-IN seq 5 permit 0.0.0.0/0

! KONFIGURACJA ROUTE-MAP
Edge-1(config)#route-map SET-LOCAL-PREF-ISP1 permit 10
Edge-1(config-route-map)#set local-preference 200
Edge-1(config-route-map)#exit

Edge-1(config)#route-map SET-LOCAL-PREF-ISP2 permit 10
Edge-1(config-route-map)#set local-preference 100
Edge-1(config-route-map)#exit

Edge-1(config)#route-map PREPEND-TO-ISP2 permit 10
Edge-1(config-route-map)#match ip address prefix-list FIRMA-OUT
Edge-1(config-route-map)#set as-path prepend 65001 65001 65001
Edge-1(config-route-map)#exit

Edge-1(config)#route-map DEFAULT-ROUTE permit 10
Edge-1(config-route-map)#match ip address prefix-list ISP1-IN
Edge-1(config-route-map)#set community 65001:100
Edge-1(config-route-map)#exit

! KONFIGURACJA BGP
Edge-1(config)#router bgp 65001
Edge-1(config-router)#bgp router-id 1.1.1.1
Edge-1(config-router)#bgp cluster-id 1.1.1.1
Edge-1(config-router)#bgp log-neighbor-changes
Edge-1(config-router)#network 172.16.0.0 mask 255.255.255.0

! SESJA eBGP Z ISP1
Edge-1(config-router)#neighbor 203.0.113.2 remote-as 65010
Edge-1(config-router)#neighbor 203.0.113.2 description ISP1-MPLS
Edge-1(config-router)#neighbor 203.0.113.2 route-map SET-LOCAL-PREF-ISP1 in
Edge-1(config-router)#neighbor 203.0.113.2 route-map FIRMA-OUT out
Edge-1(config-router)#neighbor 203.0.113.2 soft-reconfiguration inbound

! SESJA eBGP Z ISP2
Edge-1(config-router)#neighbor 198.51.100.2 remote-as 65020
Edge-1(config-router)#neighbor 198.51.100.2 description ISP2-Internet
Edge-1(config-router)#neighbor 198.51.100.2 route-map SET-LOCAL-PREF-ISP2 in
Edge-1(config-router)#neighbor 198.51.100.2 route-map PREPEND-TO-ISP2 out
Edge-1(config-router)#neighbor 198.51.100.2 soft-reconfiguration inbound

! SESJA iBGP Z EDGE-2 (ROUTE REFLECTOR)
Edge-1(config-router)#neighbor 10.0.0.2 remote-as 65001
Edge-1(config-router)#neighbor 10.0.0.2 description iBGP-to-Edge-2
Edge-1(config-router)#neighbor 10.0.0.2 next-hop-self
Edge-1(config-router)#neighbor 10.0.0.2 route-reflector-client
Edge-1(config-router)#exit
Edge-1(config)#exit

! WERYFIKACJA
Edge-1#show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 65001
BGP table version is 7, main routing table version 7
3 network entries using 432 bytes of memory
4 path entries using 416 bytes of memory
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.2        4 65001     45     52        7    0    0 00:38:12 Active
203.0.113.2     4 65010    156    142        7    0    0 02:15:45 1
198.51.100.2    4 65020    148    138        7    0    0 02:12:33 1

Edge-1#show ip bgp
BGP table version is 7, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
   Network          Next Hop            Metric LocPrf Weight Path
*>i0.0.0.0          10.0.0.2               0    100      0 65020 i
* i                 10.0.0.2               0    100      0 65010 i
*> 172.16.0.0/24    0.0.0.0                0         32768 i
* i                 10.0.0.2               0    100      0 i

Edge-1#show ip bgp 0.0.0.0
BGP routing table entry for 0.0.0.0/0, version 5
Paths: (2 available, best #1, table default-ip-routing-table, not advertised to any peer)
  65020, (received & used)
    10.0.0.2 from 10.0.0.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal, best
  65010
    10.0.0.2 from 10.0.0.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal

Edge-1#show ip bgp neighbors 203.0.113.2 advertised-routes
BGP table version is 7, local router ID is 1.1.1.1
Network          Next Hop            Metric LocPrf Weight Path
*> 172.16.0.0/24    0.0.0.0                0         32768 i
Total number of prefixes 1

Edge-1#traceroute 8.8.8.8
Type escape sequence to abort.
Tracing route to 8.8.8.8, 64 hops max, 40 byte packets
  1  203.0.113.2 (ISP1)  4 ms  2 ms  2 ms
  2  10.10.0.1  6 ms  4 ms  4 ms
  3  8.8.8.8  8 ms  6 ms  6 ms
                    
Przykładowy schemat
05*
Wirtualizacja funkcji sieciowych (NFV) w środowisku symulacyjnym
Podstawa wykładowa

W4 Koncepcja NFV, wirtualizacja usług, load balancing.

Cel i zakres projektu

Głównym celem projektu jest zastąpienie tradycyjnych, dedykowanych urządzeń sieciowych (router, firewall, load balancer) ich wirtualnymi odpowiednikami działającymi na standardowej infrastrukturze serwerowej. Firma planuje otwarcie nowego oddziału, gdzie ze względów budżetowych nie przewidziano zakupu dedykowanego sprzętu sieciowego. Decyzją zarządu ma zostać wdrożone rozwiązanie NFV (Network Functions Virtualization) oparte na maszynach wirtualnych uruchomionych na standardowych serwerach. Projekt obejmuje konfigurację wirtualnego routera (vRouter), wirtualnego firewalla (vFirewall) oraz wirtualnego load balancera, które połączone w logiczny łańcuch usług (Service Chain) zapewnią pełną funkcjonalność sieciową. Dodatkowo należy oszacować wydajność i zużycie zasobów (CPU, RAM) przez poszczególne funkcje sieciowe, porównując je z parametrami tradycyjnych urządzeń. Efektem projektu ma być w pełni funkcjonalne rozwiązanie, które może stanowić alternatywę dla kosztownego sprzętu dedykowanego.

Scenariusz problemowy

Firma otwiera nowy oddział w innym mieście, którego budżet nie pozwala na zakup dedykowanych urządzeń sieciowych takich jak router brzegowy, firewall sprzętowy czy load balancer. Jednocześnie zarząd oczekuje pełnej funkcjonalności sieciowej porównywalnej z centralą: NAT, routing, filtrowanie ruchu, serwer DHCP, QoS oraz rozdzielanie obciążenia między serwerami WWW. Dział IT ma za zadanie wdrożyć rozwiązanie oparte na wirtualizacji funkcji sieciowych (NFV) przy wykorzystaniu dostępnych narzędzi jak MikroTik RouterOS (CHR) lub Cisco CSR1000v uruchomionych w środowisku VirtualBox lub GNS3. Wszystkie usługi muszą działać na standardowej infrastrukturze serwerowej z wystarczającymi zasobami. Należy skonfigurować vRouter realizujący NAT i routing, vFirewall zapewniający filtrowanie ruchu oraz vLoad Balancer rozdzielający ruch HTTP/HTTPS między dwoma serwerami WWW. Całość musi być udokumentowana od strony zużycia zasobów i wydajności.

Wymagania techniczne
  • Implementacja minimum trzech funkcjonalności sieciowych jako maszyn wirtualnych.
  • Konfiguracja wirtualnego Load Balancera rozdzielającego ruch do serwerów WWW.
  • Zarządzanie zasobami (CPU/RAM) przypisanymi do instancji sieciowych.
  • Weryfikacja wydajności (przepływność) wirtualnego stosu sieciowego.
Wymagane dokumenty i schematy
Element Opis wymagań
Diagram instancji Schemat pokazujący połączenie maszyn wirtualnych i wirtualnych switchy.
Analiza opóźnień Porównanie opóźnień między instancjami fizycznymi a wirtualnymi.
Plan vResources Tabela z przydziałem zasobów dla każdej funkcji sieciowej.
Szczegółowa instrukcja wykonania
  1. Utworzyć środowisko wirtualne (VirtualBox lub GNS3) z routerem MikroTik CHR (RouterOS).
  2. Utworzyć trzy maszyny wirtualne: vRouter (RouterOS), vFirewall (RouterOS), serwer WWW (Linux).
  3. Skonfigurować interfejsy sieciowe: WAN, LAN, DMZ jako osobne Bridges lub VLANy.
  4. Na vRouter skonfigurować NAT, routing między sieciami, serwer DHCP.
  5. Na vFirewall skonfigurować reguły filtrowania, NAT, QoS.
  6. Utworzyć wirtualny Load Balancer z wykorzystaniem IP Firewall (dwa serwery WWW w puli).
  7. Skonfigurować Firewall NAT dla przekierowania ruchu HTTP/HTTPS do serwerów.
  8. Utworzyć Profile w Proxy HTTP dla cache'owania i filtrowania treści.
  9. Skonfigurować Simple Queue dla limitowania pasma użytkowników.
  10. Przydzielić zasoby CPU/RAM do każdej maszyny wirtualnej i zmierzyć wykorzystanie.
  11. Przeprowadzić testy wydajności: iperf3 między maszynami wirtualnymi.
  12. Zweryfikować funkcjonalność Load Balancera (dostęp do serwera WWW przez wirtualny IP).
  13. Zmierzyć opóźnienia i throughput przed i po włączeniu usług sieciowych.
  14. Dokumentować wykorzystanie zasobów w tabeli vResources.
Wskazówki

Przed uruchomieniem maszyn wirtualnych należy upewnić się, że system hosta (VirtualBox lub GNS3) ma wystarczające zasoby CPU i RAM dla wszystkich instancji. MikroTik CHR oferuje pełną funkcjonalność w darmowej wersji z limitem 1 Mbps, ale do celów projektowych (testy) to wystarczające - wersja płatna znosi limit. Przy konfiguracji DHCP server należy pamiętać o właściwym ustawieniu interfejsu, na którym nasługuje, oraz o definicji puli adresów (address-pool). Konfiguracja NAT masquerade jest niezbędna dla sieci LAN aby miała dostęp do Internetu przez WAN. Przy testowaniu Load Balancera metodą nth (round-robin) należy pamiętać, że działa na poziomie połączeń, a nie sesji, więc przy ruchu HTTP może wystąpić nierównomierowe rozłożenie. Do bardziej zaawansowanego load balancingu należy rozważyć Connection Rate Limiting lub PCC (Per Connection Classifier).

!
! KONFIGURACJA INTERFEJSÓW I ADRESACJI
[admin@MikroTik]>/ip address
[admin@MikroTik]/ip address>add address=10.0.10.1/24 interface=LAN comment="Sieć LAN"
[admin@MikroTik]/ip address>add address=10.0.20.1/24 interface=DMZ comment="Strefa DMZ"
[admin@MikroTik]/ip address>add address=203.0.113.2/30 interface=WAN comment="Łącze WAN"
[admin@MikroTik]/ip address>add address=10.0.100.1/24 interface=vrrp1 comment="VIP dla Load Balancer"
[admin@MikroTik]/ip address>print
Flags: X - disabled, I - invalid, D - dynamic
 #   ADDRESS            NETWORK         INTERFACE      
 0   10.0.10.1/24      10.0.10.0       LAN             
 1   10.0.20.1/24      10.0.20.0       DMZ             
 2   203.0.113.2/30   203.0.113.0     WAN             
 3   10.0.100.1/24    10.0.100.0      vrrp1           

! KONFIGURACJA DHCP SERVER
[admin@MikroTik]>/ip dhcp-server network
[admin@MikroTik]/ip dhcp-server network>add address=10.0.10.0/24 gateway=10.0.10.1 dns-server=10.0.10.1 domain=firma.local
[admin@MikroTik]/ip dhcp-server>add address-pool=dhcp_pool1 interface=LAN name=dhcp_main
[admin@MikroTik]/ip dhcp-server>print
Flags: X - disabled, I - invalid, D - dynamic
 #   NAME         INTERFACE   RELAY   ADDRESS-POOL   LEASE-TIME ADD-ARP
 0   dhcp_main   LAN         none    dhcp_pool1    10:00:00    no

! KONFIGURACJA NAT (MASQUERADE)
[admin@MikroTik]>/ip firewall nat
[admin@MikroTik]/ip firewall nat>add chain=srcnat out-interface=WAN action=masquerade comment="NAT dla LAN"
[admin@MikroTik]/ip firewall nat>add chain=dstnat in-interface=WAN protocol=tcp dst-port=80 action=redirect to-ports=8080 comment="Przekierowanie HTTP do Proxy"

! KONFIGURACJA WEB PROXY
[admin@MikroTik]>/ip proxy
[admin@MikroTik]/ip proxy>set enabled=yes port=8080 parent-proxy=0.0.0.0:0
[admin@MikroTik]/ip proxy>access add dst-host=*.youtube.com action=deny comment="Blokada YouTube"
[admin@MikroTik]/ip proxy>access add dst-host=*.facebook.com action=deny comment="Blokada Facebook"

! KONFIGURACJA FIREWALL FILTER (ZABEZPIECZENIA)
[admin@MikroTik]>/ip firewall filter
[admin@MikroTik]/ip firewall filter>add chain=input protocol=icmp action=accept comment="PING"
[admin@MikroTik]/ip firewall filter>add chain=input connection-state=established,related action=accept comment="Established"
[admin@MikroTik]/ip firewall filter>add chain=input in-interface=WAN protocol=tcp dst-port=22 action=accept src-address-list=ssh_allowed comment="SSH dla adminów"
[admin@MikroTik]/ip firewall filter>add chain=input in-interface=WAN action=drop comment="Blokuj wszystko z WAN"
[admin@MikroTik]/ip firewall filter>add chain=forward connection-state=established,related action=accept
[admin@MikroTik]/ip firewall filter>add chain=forward in-interface=LAN out-interface=DMZ action=accept comment="LAN do DMZ"
[admin@MikroTik]/ip firewall filter>add chain=forward in-interface=DMZ out-interface=WAN action=accept
[admin@MikroTik]/ip firewall filter>add chain=forward action=drop comment="Blokuj resztę"

! KONFIGURACJA LOAD BALANCER (DST-NAT Z ROUND-ROBIN)
[admin@MikroTik]>/ip firewall nat
[admin@MikroTik]/ip firewall nat>add chain=dstnat in-interface=WAN protocol=tcp dst-port=80 connection-mark=first action=accept comment="LB-HTTP-1"
[admin@MikroTik]/ip firewall nat>add chain=dstnat in-interface=WAN protocol=tcp dst-port=80 connection-mark=!first action=accept comment="LB-HTTP-2"
[admin@MikroTik]/ip firewall nat>add chain=dstnat in-interface=WAN protocol=tcp dst-port=80 nth=2,1 action=dst-nat to-addresses=10.0.20.10 to-ports=80 comment="LB-Do-Server1"
[admin@MikroTik]/ip firewall nat>add chain=dstnat in-interface=WAN protocol=tcp dst-port=80 nth=2,2 action=dst-nat to-addresses=10.0.20.11 to-ports=80 comment="LB-Do-Server2"

! KONFIGURACJA QOS (SIMPLE QUEUES)
[admin@MikroTik]>/queue simple
[admin@MikroTik]/queue simple>add name=limit-uzytkownik target=10.0.10.50/32 max-limit=10M/10M comment="Limit dla użytkownika"
[admin@MikroTik]/queue simple>add name=voip-priority target=10.0.10.0/24 packet-marks=voip priority=1/1 max-limit=5M/5M comment="Priorytet VoIP"
[admin@MikroTik]/queue simple>add name=całe-lan target=10.0.10.0/24 max-limit=100M/100M comment="Cały ruch LAN"

! WERYFIKACJA
[admin@MikroTik]>/ip address print
Flags: X - disabled, I - invalid, D - dynamic
 #   ADDRESS            NETWORK         INTERFACE      
 0   10.0.10.1/24      10.0.10.0       LAN             
 1   10.0.20.1/24      10.0.20.0       DMZ             
 2   203.0.113.2/30   203.0.113.0     WAN             

[admin@MikroTik]>/ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
 0   chain=srcnat action=masquerade out-interface=WAN
 1   chain=dstnat action=redirect to-ports=8080 protocol=tcp in-interface=WAN dst-port=80
 2   chain=dstnat action=dst-nat to-addresses=10.0.20.10 to-ports=80 protocol=tcp in-interface=WAN dst-port=80 nth=2,1
 3   chain=dstnat action=dst-nat to-addresses=10.0.20.11 to-ports=80 protocol=tcp in-interface=WAN dst-port=80 nth=2,2

[admin@MikroTik]>/system resource print
              uptime: 2h22m10s
            version: 7.13.5
         build-time: Oct/15/2024 12:00:00
        free-memory: 384.0MiB
       total-memory: 512.0MiB
                cpu: ARM64
         cpu-load: 5%
    free-hdd-space: 64.0MiB
   total-hdd-space: 128.0MiB

[admin@MikroTik]>/ping 10.0.20.10
SEQ HOST                                     TTL  TIME  STATUS
    0 10.0.20.10                               64  1ms    ok
    1 10.0.20.10                               64  1ms    ok
    2 10.0.20.10                               64  1ms    ok
                    
Przykładowy schemat
06
Zabezpieczanie systemów IoT/OT w oparciu o model Zero Trust
Podstawa wykładowa

W4 Bezpieczeństwo IoT/OT, model Zero Trust, mikrosegmentacja.

Cel i zakres projektu

Głównym celem projektu jest ochrona krytycznej infrastruktury przemysłowej (OT) oraz biurowych urządzeń IoT (Internet of Things), które posiadają ograniczone mechanizmy własnej obrony przed cyberzagrożeniami. Urządzenia te często operate na starszych protokołach bez szyfrowania i uwierzytelniania, co czyni je łatwym celem ataków. Projekt wymaga wdrożenia modelu bezpieczeństwa Zero Trust opierającego się na zasadzie "nigdy nie ufaj, zawsze weryfikuj", gdzie każde połączenie musi być jawnie autoryzowane, niezależnie od tego, skąd pochodzi. Należy zastosować mikrosegmentację sieci, która izoluje urządzenia IoT/OT od reszty infrastruktury, oraz zaimplementować inspekcję stanową ruchu na poziomie firewall. Efektem projektu ma być w pełni zabezpieczona infrastruktura, gdzie nieautoryzowany ruch jest blokowany na poziomie sieci, nawet jeśli atakujący uzyska dostęp do wewnętrznej sieci.

Scenariusz problemowy

W sieci fabryki znajdują się sterowniki PLC (Programmable Logic Controller) sterujące procesami produkcyjnymi oraz czujniki temperatury i wilgotności zbierające dane środowiskowe. Te urządzenia komunikują się protokołami przemysłowymi (Modbus, BACnet, MQTT) i często nie wspierają żadnych mechanizmów szyfrowania. Dodatkowo w sieci biurowej działają urządzenia IoT jak kamery monitoringu IP, drukarki sieciowe, inteligentne oświetlenie i termostaty. Aktualnie wszystkie te urządzenia są w tej samej sieci co komputery pracowników, co stwarza poważne ryzyko - atakujący, który wejdzie w posiadanie laptopa pracownika lub wykorzysta lukę w drukarce, może uzyskać dostęp do sterowników PLC i potencjalnie zakłócić procesy produkcyjne. Należy więc odizolować ruch OT i IoT od sieci biurowej za pomocą osobnych VLAN oraz wdrożyć politykę Zero Trust: domyślnie blokuj wszystkie połączenia, zezwól tylko jawnie autoryzowane. Każde urządzenie musi być zidentyfikowane, a dostęp do niego ograniczony do minimalnych wymagań operacyjnych.

Wymagania techniczne
  • Wdrożenie technologii Private VLAN lub list ACL do izolacji urządzeń IoT.
  • Konfiguracja uwierzytelniania opartego na tożsamości urządzenia (np. MAB).
  • Implementacja inspekcji stanowej ruchu OT na firewallu krawędziowym.
  • Zastosowanie ograniczeń pasma dla urządzeń w celu ochrony przed botnetami.
Wymagane dokumenty i schematy
Element Opis wymagań
Matryca separacji Tabela określająca, które grupy urządzeń mogą się ze sobą komunikować.
Profilowanie śladu Opis wzorców ruchu typowych dla danego sensora IoT.
Schemat ZTA Wizualizacja punktów weryfikacji tożsamości w architekturze sieci.
Szczegółowa instrukcja wykonania
  1. Utworzyć topologię w GNS3/VirtualBox: router MikroTik jako brama, przełącznik L2, urządzenia IoT (kamera, czujnik), stacja robocza.
  2. Skonfigurować sieć VLAN: VLAN 10 (biuro), VLAN 20 (IoT), VLAN 30 (OT/PLC), VLAN 99 (management).
  3. Skonfigurować interfejsy VLAN na routerze i przełączniku.
  4. Na routerze skonfigurować Firewall z domyślną polityką DROP dla ruchu przychodzącego.
  5. Utworzyć reguły firewall dla mikrosegmentacji: zezwolić tylko na dozwoloną komunikację.
  6. Skonfigurować Address List dla urządzeń IoT z ich znanymi adresami MAC/IP.
  7. Zaimplementować filtrowanie na podstawie protokołów (MQTT, Modbus, BACnet).
  8. Skonfigurować limitowanie pasma (rate limiting) dla sieci IoT.
  9. Utworzyć reguły NAT dla autoryzowanego dostępu z zewnątrz.
  10. Skonfigurować logowanie zdarzeń firewall (action=log).
  11. Zweryfikować izolację między VLANami (ping z VLAN20 do VLAN10 powinien być zablokowany).
  12. Przetestować dostęp do urządzeń IoT z autoryzowanej stacji roboczej.
  13. Sprawdzić logi firewall i zidentyfikować próby nieautoryzowanego dostępu.
  14. Utworzyć matrycę separacji w formie tabeli.
Wskazówki

Przy konfiguracji VLAN dla IoT/OT należy pamiętać o właściwym tagowaniu na portach - urządzenia końcowe zwykle nie rozumieją VLAN, więc port dostępu powinien mieć tryb access (bez tagowania), a trunk powinien być na porcie do routera. Domyslna polityka DROP jest kluczowa dla Zero Trust - najpierw blokujemy wszystko, potem jawnie zezwalamy na dozwolony ruch. Przy konfiguracji MAB (MAC Authentication Bypass) należy pamiętać, że to mechanizm uwierzytelniania urządzeń na podstawie adresu MAC - przydatny dla urządzeń bez loginu. Filtrowanie protokołów OT jak Modbus (port 502) i MQTT (port 1883) powinno być bardzo restrykcyjne - zezwól tylko na niezbędne połączenia do serwera SCADA/MQTT broker. Rate limiting dla sieci IoT chroni przed atakami DDoS z botnetów zbudowanych z zhakowanych kamer czy rejestratorów.

!
! KONFIGURACJA VLAN
[admin@MikroTik]>/interface vlan
[admin@MikroTik]/interface vlan>add name=VLAN10-BIURO vlan-id=10 interface=bridge1
[admin@MikroTik]/interface vlan>add name=VLAN20-IOT vlan-id=20 interface=bridge1
[admin@MikroTik]/interface vlan>add name=VLAN30-OT vlan-id=30 interface=bridge1
[admin@MikroTik]/interface vlan>add name=VLAN99-MGMT vlan-id=99 interface=bridge1

! KONFIGURACJA ADRESÓW IP NA VLAN
[admin@MikroTik]>/ip address
[admin@MikroTik]/ip address>add address=10.10.0.1/24 interface=VLAN10-BIURO comment="Biuro"
[admin@MikroTik]/ip address>add address=10.20.0.1/24 interface=VLAN20-IOT comment="IoT"
[admin@MikroTik]/ip address>add address=10.30.0.1/24 interface=VLAN30-OT comment="OT/PLC"
[admin@MikroTik]/ip address>add address=10.99.0.1/24 interface=VLAN99-MGMT comment="Management"

! KONFIGURACJA DHCP SERVER DLA VLAN
[admin@MikroTik]>/ip dhcp-server
[admin@MikroTik]/ip dhcp-server>add name=dhcp-i interface=VLAN20-IOT address-pool=dhcp-pool-iot
[admin@MikroTik]/ip dhcp-server network>add address=10.20.0.0/24 gateway=10.20.0.1 dns-server=10.20.0.1
[admin@MikroTik]/ip dhcp-server>add name=dhcp-ot interface=VLAN30-OT address-pool=dhcp-pool-ot
[admin@MikroTik]/ip dhcp-server network>add address=10.30.0.0/24 gateway=10.30.0.1 dns-server=10.30.0.1

! ADRESY IP URZĄDZEŃ IOT (ADDRESS LIST)
[admin@MikroTik]>/ip firewall address-list
[admin@MikroTik]/ip firewall address-list>add list=iot-devices address=10.20.0.10 comment="Kamera IP 1"
[admin@MikroTik]/ip firewall address-list>add list=iot-devices address=10.20.0.11 comment="Kamera IP 2"
[admin@MikroTik]/ip firewall address-list>add list=iot-devices address=10.20.0.20 comment="Czujnik temperatury"
[admin@MikroTik]/ip firewall address-list>add list=plc-devices address=10.30.0.10 comment="PLC Sterownik 1"
[admin@MikroTik]/ip firewall address-list>add list=plc-devices address=10.30.0.11 comment="PLC Sterownik 2"
[admin@MikroTik]/ip firewall address-list>add list=admin-stations address=10.10.0.50 comment="Stacja admina"

! FIREWALL - ZERO TRUST (DOMYŚLNA POLITYKA DROP)
[admin@MikroTik]>/ip firewall filter
[admin@MikroTik]/ip firewall filter>add chain=forward action=log log-prefix="BLOKADA-FORWARD:" comment="Loguj wszystkie zablokowane"
[admin@MikroTik]/ip firewall filter>add chain=forward action=drop comment="DOMYŚLNA POLITYKA DROP"

! MIKROSEGMENTACJA - IOT DO BIURA (BLOKADA)
[admin@MikroTik]/ip firewall filter>add chain=forward in-interface=VLAN20-IOT out-interface=VLAN10-BIURO action=drop comment="IoT nie ma dostępu do Biura"

! IOT DO INTERNETU (TYLKO AUTORYZOWANE USŁUGI)
[admin@MikroTik]/ip firewall filter>add chain=forward in-interface=VLAN20-IOT out-interface=WAN action=accept protocol=tcp dst-port=443 comment="HTTPS do Internetu"
[admin@MikroTik]/ip firewall filter>add chain=forward in-interface=VLAN20-IOT out-interface=WAN action=accept protocol=tcp dst-port=1883 comment="MQTT"

! OT/PLC - IZOLACJA (TYLKO DO SERWERA SCADA)
[admin@MikroTik]/ip firewall filter>add chain=forward in-interface=VLAN30-OT out-interface=VLAN30-OT action=accept src-address-list=plc-devices dst-address-list=plc-devices comment="PLC komunikacja między sobą"
[admin@MikroTik]/ip firewall filter>add chain=forward in-interface=VLAN30-OT out-interface=VLAN30-OT action=accept dst-address=10.30.100.50 protocol=tcp dst-port=502 comment="Modbus do SCADA"
[admin@MikroTik]/ip firewall filter>add chain=forward in-interface=VLAN30-OT out-interface=VLAN99-MGMT action=accept src-address-list=admin-stations comment="Admin ma dostęp do OT"

! LIMITOWANIE PASMA DLA IOT
[admin@MikroTik]>/queue simple
[admin@MikroTik]/queue simple>add name=limit-iot target=10.20.0.0/24 max-limit=10M/10M comment="Limit pasma dla IoT"
[admin@MikroTik]/queue simple>add name=limit-ot target=10.30.0.0/24 max-limit=5M/5M comment="Limit pasma dla OT"

! WERYFIKACJA
[admin@MikroTik]>/ip firewall filter print
Flags: X - disabled, I - invalid, D - dynamic
 0   chain=forward action=log log-prefix="BLOKADA-FORWARD:"
 1   chain=forward action=drop
 2   chain=forward in-interface=VLAN20-IOT out-interface=VLAN10-BIURO action=drop
 3   chain=forward in-interface=VLAN20-IOT out-interface=WAN protocol=tcp dst-port=443 action=accept
 4   chain=forward in-interface=VLAN30-OT out-interface=VLAN30-OT action=accept
 5   chain=forward in-interface=VLAN30-OT out-interface=VLAN30-OT protocol=tcp dst-port=502 action=accept

[admin@MikroTik]>/ip firewall address-list print
Flags: X - disabled, I - invalid, D - dynamic
 #   LIST            ADDRESS        TIMEOUT
 0   iot-devices     10.20.0.10
 1   iot-devices     10.20.0.11
 2   plc-devices     10.30.0.10
 3   plc-devices     10.30.0.11

[admin@MikroTik]>/ping 10.20.0.10
SEQ HOST                                     TTL  TIME  STATUS
    0 10.20.0.10                               64  2ms    ok

[admin@MikroTik]>/tool traceroute 10.10.0.50
 #   ADDRESS           STATUS
 1 10.20.0.1          timeout
                    
Przykładowy schemat
07
Optymalizacja parametrów QoS dla krytycznego ruchu czasu rzeczywistego
Podstawa wykładowa

W2 QoS L3, W3 Jitter, opóźnienia, mechanizmy TCP/UDP.

Cel i zakres projektu

Głównym celem projektu jest zapewnienie stabilnej i wysokiej jakości pracy usług multimedialnych czasu rzeczywistego (VoIP, wideokonferencje) w warunkach dużego obciążenia sieci ruchem danych. Współczesne sieci korporacyjne obsługują zarówno tradycyjny ruch danych jak i aplikacje czasu rzeczywistego, które wymagają niskich opóźnień i minimalnej utraty pakietów.Tradycyjne podejście typu best-effort nie zapewnia odpowiedniej jakości dla ruchu time-sensitive. Projekt wymaga wdrożenia zaawansowanych mechanizmów QoS (Quality of Service) obejmujących klasyfikację i markowanie ruchu, a także inteligentne zarządzanie kolejkami z wykorzystaniem mechanizmów LLQ (Low Latency Queuing) i CBWFQ (Class-Based Weighted Fair Queuing). Należy również skonfigurować Traffic Shaping dla dopasowania do łącza WAN oraz przeprowadzić pomiary parametrów jakości (jitter, opóźnienia, MOS) przed i po wdrożeniu QoS.

Scenariusz problemowy

Na styku sieci lokalnej z WAN (łącze do ISP) pojawia się wąskie gardło, które powoduje wysoką utratę pakietów i znaczne opóźnienia szczególnie podczas jednoczesnego korzystania z telefonii VoIP i wysyłania dużych załączników e-mail. Pracownicy działu sprzedaży skarżą się na przerwania i zniekształcenia głosu podczas rozmów telefonicznych przez Internet, co negatywnie wpływa na wizerunek firmy przy kontaktach z klientami. Ruch VoIP konkuruje o dostępne pasmo z ruchem generowanym przez pozostałych pracowników, który w tym samym priorytecie powoduje opóźnienia przekraczające 150ms, co jest nieakceptowalne dla komunikacji głosowej. Wąskie gardło na styku z siecią WAN powoduje wysoką utratę pakietów w rozmowach głosowych podczas wysyłania dużych załączników e-mail. Należy wdrożyć mechanizmy QoS zapewniające priorytetowy dostęp do pasma dla ruchu VoIP (DSCP EF - Expedited Forwarding) kosztem ruchu o niższym priorytecie, niezależnie od obciążenia łącza. Ruch masowy (bulk data) powinien być kształtowany (shaped) do określonej przepustowości, aby nie zagłuszał ruchu krytycznego. Rekomendowana jest priorytetyzacja LLQ (Low Latency Queuing) dla ruchuVoIP.

Scenariusz problemowy

Wąskie gardło na styku z siecią WAN powoduje wysoką utratę pakietów w rozmowach głosowych podczas wysyłania dużych załączników e-mail. Należy wdrożyć priorytetyzację Low Latency Queuing (LLQ).

Wymagania techniczne
  • Klasyfikacja i markowanie ruchu (DSCP) na przełącznikach warstwy dostępu.
  • Wdrożenie hierarchicznego QoS (HQoS) na routerach seryjnych lub WAN.
  • Zastosowanie mechanizmu Traffic Shaping w celu unikania odrzutów na policerze ISP.
  • Pomiary jittera i opóźnień przed i po wdrożeniu mechanizmów (np. za pomocą IP SLA).
Wymagane dokumenty i schematy
Element Opis wymagań
Model QoS Szczegółowy opis klas ruchu i przydzielonych procentów pasma.
Weryfikacja kolejek Zrzuty `show policy-map interface` pod obciążeniem.
Analiza wydajności Wykresy pokazujące różnicę w jakości głosu (MOS) przed i po zmianach.
Szczegółowa instrukcja wykonania
  1. Utworzyć topologię w GNS3: router brzegowy, przełącznik L3, serwer VoIP, hosty generujące ruch danych.
  2. Skonfigurować adresy IP na interfejsach routera i przełącznika.
  3. Na przełączniku warstwy dostępu skonfigurować VLANy dla VoIP (VLAN 10) i danych (VLAN 20).
  4. Skonfigurować interfejsy dostępu z obsługą Voice VLAN (auto qos voip).
  5. Na routerze utworzyć Class Map dla klasyfikacji ruchu (VoIP, Video, Data, Scavenger).
  6. Skonfigurować Policy Map z LLQ dla ruchu VoIP i CBWFQ dla pozostałych klas.
  7. Zastosować Service Policy na interfejsie WAN (outbound).
  8. Skonfigurować Traffic Shaping dla dopasowania do łącza ISP (np. 10 Mbps).
  9. Skonfigurować IP SLA dla monitorowania jittera i opóźnień do serwera VoIP.
  10. Wygenerować ruch obciążeniowy (np. iperf) i zweryfikować kolejkowanie.
  11. Przeprowadzić testy jakości VoIP (MOS) przed i po QoS.
  12. Sprawdzić statystyki kolejek: show policy-map interface.
  13. Zweryfikować markowanie DSCP na pakietach (Wireshark).
Wskazówki

Klasyfikacja ruchu powinna odbywać się jak najbliżej źródła - na przełącznikach warstwy dostępu lub bezpośrednio na urządzeniach końcowych (np. telefon IP markuje ruch RTP jako DSCP EF). DSCP jest preferowanym mechanizmem markowania nad ToS, ponieważ ma więcej wartości i jest rozpoznawany w całym pathway sieci. LLQ dla VoIP jest implementowany jako kolejka priorytetowa z gwarantowanym pasmem - ruch VoIP jest obsługiwany natychmiast, bez czekania w kolejce. CBWFQ dla pozostałych klas gwarantuje minimalne pasmo, ale nie blokuje innych klas w przypadku niskiego ruchu. IP SLA jest wbudowanym mechanizmem monitorowania w Cisco, który generuje ruch UDP do serwera VoIP i mierzy jitter - wyniki powinny być porównane przed i po wdrożeniu QoS. Traffic Shaping powinien być ustawiony nieco niżej niż CIR (Committed Information Rate) od ISP, aby uniknąć odrzutów na policerze ISP (policing).

!
! KLASYFIKACJA RUCHU (CLASS MAP)
Router#configure terminal
Router(config)#class-map match-any VOICE
Router(config-cmap)#match protocol rtp
Router(config-cmap)#match dscp ef
Router(config-cmap)#exit

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

Router(config)#class-map match-any CRITICAL-DATA
Router(config-cmap)#match dscp af31
Router(config-cmap)#match dscp af32
Router(config-cmap)#exit

Router(config)#class-map match-any SCAVENGER
Router(config-cmap)#match dscp cs1
Router(config-cmap)#exit

! POLICY MAP (QOS QUEUING)
Router(config)#policy-map QOS-POLICY
Router(config-pmap)#class VOICE
Router(config-pmap-c)#priority percent 20
Router(config-pmap-c)#class VIDEO
Router(config-pmap-c)#bandwidth percent 30
Router(config-pmap-c)#class CRITICAL-DATA
Router(config-pmap-c)#bandwidth percent 40
Router(config-pmap-c)#class SCAVENGER
Router(config-pmap-c)#bandwidth percent 5
Router(config-pmap-c)#class class-default
Router(config-pmap-c)#fair-queue
Router(config-pmap-c)#exit

! TRAFFIC SHAPING I APLIKACJA NA INTERFEJSIE
Router(config)#interface Serial0/0/0
Router(config-if)#description ŁĄCZE_WAN
Router(config-if)#ip address 203.0.113.1 255.255.255.252
Router(config-if)#traffic-shape rate 10000000
Router(config-if)#service-policy output QOS-POLICY
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#exit

! KONFIGURACJA IP SLA DLA MONITOROWANIA JITTERA
Router(config)#ip sla 1
Router(config-ip-sla)#udp-jitter 10.0.0.100 5000
Router(config-ip-sla-jitter)#frequency 30
Router(config-ip-sla-jitter)#exit
Router(config)#ip sla schedule 1 life forever start-time now
Router(config)#exit

! WERYFIKACJA
Router#show policy-map interface Serial0/0/0
 Serial0/0/0
  Service-policy output: QOS-POLICY
    Class-map: VOICE (match-any)
      Match: protocol rtp
      Match: dscp ef (46)
      Queue depth: 0
      Packets sent: 15432
    Class-map: VIDEO (match-any)
      Match: protocol rtp
      Match: dscp af41 (34)
      Packets sent: 8432
    Class-map: CRITICAL-DATA (match-any)
      Match: dscp af31 (26)
      Packets sent: 23541

Router#show ip sla statistics 1
IP SLAs Latest Operation Statistics
IPSLA 1: jitter operation
  Type: jitter
  Latest RTT: 12 ms
  Latest Jitter: 3 ms
  Avg Jitter: 4 ms

Router#show queueing
Current Fair Queuing Configuration:
Interface   Discard    threshold
Se0/0/0    64         16
                    
Przykładowy schemat
08
Zarządzanie bezpieczeństwem i monitoringiem (SNMPv3, Syslog, SIEM)
Podstawa wykładowa

W3 SNMP, NTP, Syslog, W4 SIEM/SOAR.

Cel i zakres projektu

Głównym celem projektu jest utworzenie centralnego punktu widoczności (visibility) infrastruktury sieciowej, który pozwala na zautomatyzowane wykrywanie anomalii zachowań i szybkie reagowanie na incydenty sieciowe. Współczesne centra danych i sieci korporacyjne składają się z dziesiątek lub setek urządzeń, co uniemożliwia skuteczny manualny monitoring. Projekt wymaga wdrożenia kompletnego systemu monitoringu obejmującego protokół SNMPv3 zapewniający bezpieczny (szyfrowany, uwierzytelniany) odczyt liczników urządzeń, system Syslog do centralnego gromadzenia logów ze wszystkich urządzeń w jednej bazie danych, serwer NTP do synchronizacji czasu dla zapewnienia poprawnej korelacji zdarzeń oraz opcjonalnie integrację z systemem SIEM do korelacji zdarzeń i generowania alertów. Efektem projektu ma być w pełni funkcjonalny system monitoringu pozwalający na proaktywne wykrywanie problemów i szybką reakcję na incydenty bezpieczeństwa.

Scenariusz problemowy

Administratorzy sieci w firmie spędzają znaczną część czasu na ręczną diagnostykę urządzeń i logowanie do każdego z nich indywidualnie w celu sprawdzenia statusu. Dodatkowo gdy pojawia się problem, ustalenie jego przyczyny jest bardzo trudne, ponieważ logi są rozproszone po różnych urządzeniach i nie mają spójnej sygnatury czasu. Zarząd oczekuje wdrożenia systemu monitoringu, który zapewni centralny widok całej infrastruktury w jednym miejscu z alertami w czasie rzeczywistym. Należy więc wdrożyć SNMPv3 z szyfrowaniem AES i uwierzytelnianiem SHA dla bezpiecznego monitoringu, Syslog do centralizacji logów (Graylog, ELK lub rsyslog), serwer NTP dla spójnej sygnatury czasu oraz reguły alertów dla krytycznych zdarzeń (awaria łącza, błąd uwierzytelniania, przekroczenie progu wykorzystania). Całość powinna umożliwiać szybką diagnostykę i korelację zdarzeń w czasie.

Wymagania techniczne
  • Konfiguracja serwera NTP i synchronizacja czasu w całej infrastrukturze.
  • Wdrożenie SNMPv3 z szyfrowaniem AES i uwierzytelnianiem SHA.
  • Uruchomienie serwera Syslog (np. Graylog lub ELK) i korelacja zdarzeń.
  • Definicja progów alarmowych (traps) dla krytycznych zdarzeń (np. awaria łącza).
Wymagane dokumenty i schematy
Element Opis wymagań
Hierarchia MIB Opis kluczowych obiektów OID monitorowanych w sieci.
Dashboard logów Zrzut ekranu z centralnego panelu zarządzania z widocznymi komunikatami.
Raport korelacji Przykład powiązania logu ze switcha z alertem w systemie monitoringu.
Szczegółowa instrukcja wykonania
  1. Utworzyć topologię w GNS3: router, przełącznik, serwer Syslog (np. Ubuntu z rsyslog lub Graylog).
  2. Skonfigurować adresy IP na urządzeniach i zapewnić łączność do serwera Syslog.
  3. Skonfigurować serwer NTP na routerze i synchronizację czasu na wszystkich urządzeniach.
  4. Skonfigurować SNMPv3 z uwierzytelnianiem SHA i szyfrowaniem AES na przełączniku.
  5. Utworzyć widoki SNMP (snmp-server view) i grupy (snmp-server group).
  6. Skonfigurować użytkowników SNMPv3 z odpowiednimi uprawnieniami.
  7. Skonfigurować przesyłanie logów do serwera Syslog (logging host x.x.x.x).
  8. Ustawić poziomy logowania (logging trap level) dla różnych kategorii zdarzeń.
  9. Skonfigurować SNMP Traps dla krytycznych zdarzeń (linkUp, linkDown, authFailure).
  10. Zweryfikować działanie SNMP (snmpget).
  11. Sprawdzić logi na serwerze Syslog.
  12. Utworzyć prosty dashboard w Graylog lub ELK do wizualizacji zdarzeń.
  13. Zdefiniować reguły korelacji zdarzeń (np. wielokrotne błędy auth = potencjalny atak).
Wskazówki

Konfiguracja NTP jest kluczowa dla korelacji zdarzeń - wszystkie urządzenia muszą być zsynchronizowane do tego samego serwera NTP z tą samą strefą czasową. SNMPv3 wymaga właściwej konfiguracji zarówno na urządzeniu (użytkownik, grupa, widok), jak i na stacji zarządzającej (hasełko). Wersja priv (privacy) zapewnia szyfrowanie, authSHA lub authMD5 tylko uwierzytelniają. Dla Syslog zalecany jest protokół UDP na porcie 514 - jest prostszy i wydajniejszy od TCP dla logowania. Graylog oferuje prosty interfejs webowy do przeglądania logów, ale ELK (Elasticsearch, Logstash, Kibana) jest bardziej skalowalny. Przy definiowaniu alertów w SIEM należy unikać false positives - reguły powinny być oparte na powtarzających się zdarzeniach, a nie pojedynczych przypadkach. Trap SNMP jest wysyłany asynchronicznie do stacji zarządzającej, ale może być gubiony przy dużym obciążeniu - dlatego też należy również pollować (odpytywać) urządzenia periodycznie.

!
! KONFIGURACJA NTP
Switch#configure terminal
Switch(config)#ntp server 10.0.0.10 prefer
Switch(config)#clock timezone CET 1 0
Switch(config)#service timestamps debug datetime msec
Switch(config)#service timestamps log datetime msec

! KONFIGURACJA SYSLOG
Switch(config)#logging host 10.0.0.20 transport udp port 514
Switch(config)#logging source-interface Loopback0
Switch(config)#logging trap debugging

! KONFIGURACJA SNMPv3
Switch(config)#snmp-server view MONITOR iso included
Switch(config)#snmp-server group MONITORGROUP v3 priv read MONITOR write MONITOR
Switch(config)#snmp-server user admin MONITORGROUP v3 auth sha admin123 priv aes 256 admin123
Switch(config)#snmp-server enable traps
Switch(config)#snmp-server host 10.0.0.30 version 3 priv admin

! WERYFIKACJA
Switch#show snmp user
User name: admin
Engine ID: 800000090300000000000000
Authentication protocol: SHA
Privacy protocol: AES256
Group name: MONITORGROUP

Switch#show snmp group
groupname: MONITORGROUP
security model: v3 priv
readview: MONITOR
writeview: MONITOR

Switch#show logging
Syslog logging: enabled
Logging to 10.0.0.20: 0 messages logged
Logging to 10.0.0.30: 0 traps logged

Switch#show ntp associations
  address         ref clock     st   when   poll reach
*~10.0.0.10      .GPS.           1   124    256   377
                    
Przykładowy schemat
09
Wielowarstwowa ochrona infrastruktury przed atakami L2/L3 (Defense in Depth)
Podstawa wykładowa

W1 Bezpieczeństwo portów, STP Guard, W2 ACL, filtrowanie.

Cel i zakres projektu

Głównym celem projektu jest wzmocnienie odporności warstwy dostępowej sieci na różnego rodzaju ataki wewnętrzne, które stanowią najpoważniejsze zagrożenie w bezpieczeństwie sieciowym. Atakujący działający wewnątrz sieci (insider threat) lub osoba, która uzyskała dostęp do sieci lokalnej, może przeprowadzać ataki podszywania się pod bramę (ARP spoofing), generować pętle sieciowe powodujące przeciążenie, lub podłączyć nieautoryzowany sprzęt. Projekt wymaga wdrożenia kompletnej strategii Defense in Depth obejmującej Port Security zapobiegający nieautoryzowanemu dostępowi do portów, DHCP Snooping i Dynamic ARP Inspection chroniące przed atakiem na warstwie 2, oraz zabezpieczenia STP (BPDU Guard, Root Guard) chroniące przed manipulacją drzewem rozpinającym. Efektem projektu ma być w pełni zabezpieczona warstwa dostępowa minimalizująca ryzyko ataków wewnętrznych.

Scenariusz problemowy

W biurze typu open space, gdzie dostęp do gniazdek sieciowych mają zarówno pracownicy, jak i goście, regularnie zdarzają się próby podłączenia nieautoryzowanych urządzeń - pracownicy chcą podłączyć własny router nebo access point, a goście próbują uzyskać dostęp do wewnętrznej sieci. Dodatkowo pojawiły się podejrzane zachowania wskazujące na próby ARP spoofing - odnotowano przypadki, gdzie tablice ARP wskazywały na nieprawidłowe adresy MAC dla bramy, co może wskazywać na atak typu man-in-the-middle. Należy więc wdrożyć zabezpieczenia Port Security z limitowaniem adresów MAC i akcją shutdown przy naruszeniu, DHCP Snooping do budowania tablicy zaufanych urządzeń, DAI do weryfikacji zgodności adresów ARP z tablicą DHCP Snooping, oraz BPDU Guard na portach dostępowych, aby zapobiec wpięciu nieautoryzowanego przełącznika przejmującego rolę root bridge.

Wymagania techniczne
  • Port Security (Sticky MAC) z blokadą portu po naruszeniu.
  • Wdrożenie DHCP Snooping i Dynamic ARP Inspection (DAI).
  • Zabezpieczenie drzewa rozpinającego (BPDU Guard, Root Guard).
  • Konfiguracja list kontroli dostępu ACL na interfejsach SVI.
Wymagane dokumenty i schematy
Element Opis wymagań
Logi naruszeń Dokumentacja zrzutów logu po wykryciu ataku ARP Spoofing.
Tablica zaufana Zrzut bazy danych DHCP Snooping binding table.
Plan utwardzania Lista kroków (checklist) wykonanych w celu zabezpieczenia każdego portu.
Szczegółowa instrukcja wykonania
  1. Utworzyć topologię w GNS3: przełącznik L2 z portami dostępu, router brzegowy.
  2. Skonfigurować VLANy: VLAN 10 (serwery), VLAN 20 (użytkownicy), VLAN 99 (management).
  3. Skonfigurować Port Security na portach dostępu z limitowaniem do 3 adresów MAC.
  4. Włączyć Sticky MAC dla automatycznego uczenia się adresów.
  5. Skonfigurować akcję przy naruszeniu (shutdown lub restrict).
  6. Skonfigurować DHCP Snooping na przełączniku (zaufane porty, niezaufane porty).
  7. Skonfigurować Dynamic ARP Inspection (DAI) na VLANach.
  8. Skonfigurować BPDU Guard na portach dostępu (portfast).
  9. Skonfigurować Root Guard na portach gdzie nie powinien być root bridge.
  10. Utworzyć ACL na SVI routera dla filtrowania ruchu między VLANami.
  11. Przetestować atak ARP Spoofing - uruchomić atak i sprawdzić logi.
  12. Zweryfikować tablice: show port-security, show ip dhcp snooping, show ip arp inspection.
Wskazówki

Port Security z opcją sticky MAC automatycznie zapisuje dopuszczone adresy MAC do konfiguracji startowej, co upraszcza wdrożenie na wielu portach. Tryb violation restrict loguje naruszenia, ale nie blokuje portu (zalecany w produkcji), shutdown natychmiast wyłącza port (bardziej restrycyjny). DHCP Snooping musi mieć wskazany port zaufany (trusted) - zwykle do routera brzegowego, porty dostępowe muszą być niezaufane (untrusted). DAI działa tylko na VLAN objętych DHCP Snooping, ponieważ wykorzystuje tablicę Binding do weryfikacji. BPDU Guard jest konieczny dla portów dostępowych z włączonym PortFast - bez niego podłączenie switcha spowoduje pętlę lub zmianę root bridge. Root Guard chroni przed próbami "przejęcia" roli root bridge przez atakującego na sąsiednim porcie. ACL na SVI mogą filtrować ruch między VLANami, ale najpierw należy upewnić się, że routing między VLANami jest prawidłowo skonfigurowany.

!
! PORT SECURITY
Switch#configure terminal
Switch(config)#interface GigabitEthernet0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport port-security
Switch(config-if)#switchport port-security maximum 3
Switch(config-if)#switchport port-security violation restrict
Switch(config-if)#spanning-tree portfast
Switch(config-if)#spanning-tree bpduguard enable

! DHCP SNOOPING
Switch(config)#ip dhcp snooping
Switch(config)#ip dhcp snooping vlan 10,20
Switch(config)#interface GigabitEthernet0/24
Switch(config-if)#ip dhcp snooping trust

! DYNAMIC ARP INSPECTION
Switch(config)#ip arp inspection vlan 10,20

! WERYFIKACJA
Switch#show port-security interface GigabitEthernet0/1
Port Security: Enabled
Port Status: Secure-up
Violation Mode: Restrict
Security Violation Count: 0
Secure Address Count: 1

Switch#show ip dhcp snooping
Switch DHCP snooping: Enabled
DHCP snooping Vlan 10: Enabled
DHCP snooping Vlan 20: Enabled

Switch#show ip arp inspection vlan 10
Vlan 10: Configuration Enabled
                    
Przykładowy schemat
10
Zintegrowany projekt bezpiecznej łączności z chmurą hybrydową
Podstawa wykładowa

W2 BGP, VPN, NAT, W4 Architektury VPC/Cloud.

Cel i zakres projektu

Głównym celem projektu jest budowa skalowalnego i bezpiecznego połączenia między lokalnym centrum danych (on-premise) a publiczną chmurą obliczeniową (AWS, Azure lub GCP), które zapewni bezpieczną wymianę danych i dynamiczny routing między infrastrukturami. Coraz więcej firm migruje częściowo swoje zasoby do chmury hybrydowej, co wymaga bezpiecznego i wydajnego połączenia. Projekt obejmuje konfigurację tunelu VPN typu Site-to-Site z wykorzystaniem IPsec z silnymi algorytmami szyfrowania, wdrożenie sesji BGP między lokalnym routerem a bramą chmurową dla dynamicznej wymiany tras oraz zaprojektowanie wirtualnej sieci prywatnej (VPC) z odpowiednim podziałem na podsieci publiczne i prywatne. Dodatkowo należy zdefiniować polityki bezpieczeństwa (Security Groups, Firewall) kontrolujące ruch między lokalnym centrum danych a chmurą.

Scenariusz problemowy

Firma prowadzi stopniową migrację części zasobów (bazy danych, serwery aplikacji) do chmury publicznej, co wymaga bezpiecznego i wydajnego połączenia z infrastrukturą lokalną. Aktualnie połączenie odbywa się przez zwykły VPN przez Internet, co jest niewystarczające dla krytycznych systemów biznesowych ze względu na zmienną jakość i potencjalne zagrożenia bezpieczeństwa. Zarząd oczekuje wdrożenia stałego, szyfrowanego połączenia typu Site-to-Site z wykorzystaniem IPsec, które zapewni bezpieczny tunneling ruchu między lokalnym centrum danych a VPC w chmurze. Dodatkowo wymagana jest dynamiczna wymiana tras za pomocą protokołu BGP, aby routery lokalne mogły automatycznie "widzieć" podsieci chmurowe i kierować do nich ruch bez manualnej konfiguracji tras statycznych. Połączenie musi obsługiwać ruch w obie strony z odpowiednimi zasadami bezpieczeństwa.

Wymagania techniczne
  • Zaprojektowanie wirtualnej sieci prywatnej (VPC) w chmurze z odpowiednim podziałem na podsieci.
  • Konfiguracja tunelu IPsec VTI z silnymi algorytmami szyfrowania (np. IKEv2).
  • Wdrożenie sesji BGP pieringującej lokalny ruter z bramą chmurową.
  • Przygotowanie polityk Firewall/Security Groups kontrolujących ruch między środowiskami.
Wymagane dokumenty i schematy
Element Opis wymagań
Schemat Hybrydowy Pełna topologia łącząca infrastrukturę on-premise z zasobami chmury.
Analiza S2S VPN Parametry negocjacji fazy 1 i 2 protokołu IPsec.
Weryfikacja tras Zrzuty tablic routingu z obu końców połączenia hybrydowego.
Szczegółowa instrukcja wykonania
  1. Utworzyć topologię w GNS3: router lokalny (Cisco), maszyna z bramą chmurową, serwer lokalny.
  2. Skonfigurować adresy IP na routerze lokalnym i interfejsie chmurowym.
  3. Skonfigurować tunel IPsec Site-to-Site między lokalnym routerem a bramą chmurową.
  4. Skonfigurować IKEv2 z silnymi algorytmami (AES256, SHA256, DH Group 14).
  5. Skonfigurować transform-set i crypto map dla IPsec.
  6. Skonfigurować sesję BGP między lokalnym routerem a bramą chmurową (ASN prywatne).
  7. Utworzyć VPC w chmurze z podsieciami: Public-Subnet, Private-Subnet.
  8. Skonfigurować Security Groups dla ruchu między lokalnym centrum danych a chmurą.
  9. Zweryfikować ustanowienie tunelu IPsec (show crypto ipsec sa).
  10. Sprawdzić sąsiedztwo BGP (show ip bgp neighbor).
  11. Przetestować łączność z podsiecią chmurową (ping, traceroute).
Wskazówki

Adresy IP po stronie tunelu IPsec mogą być dowolne z przestrzeni RFC 1918 - tunel jest enkapsulowany w UDP/IP. IKEv2 jest preferowany nad IKEv1 ze względu na lepszą obsługę mobilności (rekeying). Transform-set określa algorytmy szyfrowania i integralności - ESP-AES256 + ESP-SHA-HMAC jest uznawany za bezpieczny. Crypto map musi być przypisany do interfejsu zewnętrznego (WAN). BGP przez VPN wymaga osobnego neighbor na interfejsie Tunnel lub bezpośrednio przez VTI. Numery ASN po obu stronach muszą być różne dla eBGP - dla chmury używa się ASN z zakresu 64512-65534 dla AWS, 65536 dla Azure. Security Groups w chmurze są stanowe - zezwolenie na ruch wychodzący automatycznie zezwala na ruch przychodzący. Weryfikacja tunelu: show crypto ipsec sa pokazuje liczniki pakietów zaszyfrowanych/deszyfrowanych. Peer BGP musi być dostępny przez tunel IPsec - test ping przez Tunnel0.

!
! IKEv2
Router#configure terminal
Router(config)#crypto isakmp policy 10
Router(config-isakmp)#encryption aes 256
Router(config-isakmp)#hash sha256
Router(config-isakmp)#group 14
Router(config-isakmp)#exit
Router(config)#crypto isakmp key Cisc0Secure! address 203.0.113.10

! IPSEC
Router(config)#crypto ipsec transform-set IPSEC-PROTO esp-aes 256 esp-sha256-hmac
Router(config)#crypto map VPN-MAP 10 ipsec-isakmp
Router(config-crypto-map)#set peer 203.0.113.10
Router(config-crypto-map)#set transform-set IPSEC-PROTO
Router(config-crypto-map)#match address VPN-TRAFFIC
Router(config-crypto-map)#exit
Router(config)#ip access-list extended VPN-TRAFFIC
Router(config-ext-nacl)#permit ip 172.16.0.0 0.0.255.255 10.0.0.0 0.0.255.255
Router(config)#interface GigabitEthernet0/1
Router(config-if)#crypto map VPN-MAP

! BGP
Router(config)#router bgp 65001
Router(config-router)#network 172.16.0.0 mask 255.255.0.0
Router(config-router)#neighbor 10.255.1.1 remote-as 64512

! WERYFIKACJA
Router#show crypto isakmp sa
dst             src             state          conn-id slot status
203.0.113.1    203.0.113.10   QM_IDLE           1001    0    ACTIVE

Router#show crypto ipsec sa
#pkts encaps: 1564, #pkts encrypt: 1564
#pkts decaps: 1523, #pkts decrypt: 1523

Router#show ip bgp summary
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.255.1.1      4 64512    145     152        5    0    0 02:15:45        2

Router#show ip route
B    10.0.0.0/16 [20/0] via 10.255.1.1
C    172.16.0.0/16 is directly connected

Router#ping 10.0.0.10
Sending 5, 100-byte ICMP Echos to 10.0.0.10
!!!!!
Success rate is 100 percent
                    
Przykładowy schemat