💾

Završni praktični zadatak – Modul 25 – Cloud mreže

Cilj

Samostalno isprojektovati hibridnu mrežu firme koja deo servisa prenosi u javni cloud: adresni plan, arhitekturu u dve zone dostupnosti, rutiranje, pravila filtriranja, vezu sa lokalnom mrežom, nadzor i kontrolu troškova — objedinjujući sve teme ovog modula.

Scenario

Firma „Dunav Logistika" ima centralu u Novom Sadu (10.10.0.0/16) i dva skladišta (192.168.10.0/24 i 192.168.20.0/24), povezana sa centralom VPN-om (Modul 15). Firma prenosi u cloud sistem za praćenje pošiljki:

  • veb aplikaciju za klijente (HTTPS, na internetu),
  • interni API koji koriste samo skladišni skeneri i računari u centrali,
  • bazu podataka.

Zahtevi uprave:

  • rad i pri otkazu jedne zone dostupnosti;
  • baza nikada nije dostupna sa interneta niti ima izlaz na internet;
  • interni API je dostupan samo iz centrale i skladišta;
  • aplikacioni serveri preuzimaju ažuriranja sa interneta;
  • administracija samo iz mreže IT sektora 10.10.50.0/24;
  • redundantna veza sa centralom;
  • mesečno upozorenje ako troškovi pređu planirani budžet.

Zahtevi zadatka

  1. Izbor provajdera i regiona — izaberite provajdera (AWS, Azure ili GCP) i region, i obrazložite izbor (latencija, zaštita podataka, cena).
  2. Adresni plan — CIDR opseg VPC-a (VNet-a) i najmanje šest subneta u dve zone (javni, aplikacioni, baza), sa brojem upotrebljivih adresa. Proverite plan skriptom iz laboratorijske vežbe (priložite izlaz).
  3. Dijagram — logički dijagram arhitekture (draw.io ili Mermaid) sa zonama, subnetima, gateway-ima, load balancer-om i vezom sa centralom.
  4. Tabele ruta — sve tabele sa rutama i pridruženim subnetima.
  5. Pravila filtriranja — security group-e (ili NSG) za sve slojeve, sa referencama gde je moguće, i NACL za subnete baze.
  6. Load balancer — vrsta (javni za veb aplikaciju, interni za API), zone, health check i gde se završava TLS.
  7. Veza sa centralom — tehnologija, redundansa, rutiranje (statičko ili BGP), oglašene mreže i promene u tabelama ruta VPC-a. Opišite i šta treba podesiti na strani centrale da bi skladišta pristupala internom API-ju.
  8. Nadzor i bezbednost — flow logs, zapisi o API pozivima, upozorenja (Modul 23), IAM i MFA.
  9. Troškovi — spisak resursa koji se naplaćuju, mere za smanjenje troškova i podešavanje budžeta sa upozorenjem.
  10. (Opciono, AWS) — napravite deo arhitekture (VPC, javni i privatni subnet, IGW, tabele ruta, SG) preko AWS CLI-ja ili Terraform-a, priložite izlaze komandi i dokaz o brisanju svih resursa.

Ograničenja i pravila

  • Opseg VPC-a se ne sme preklapati ni sa jednom postojećom mrežom firme.
  • Nijedan administrativni port (SSH, RDP, baza) ne sme biti otvoren ka 0.0.0.0/0.
  • Ako radite opcioni deo u AWS-u: budžet sa upozorenjem pre početka, bez NAT gateway-a i load balancer-a osim ako ih odmah brišete, i obavezno brisanje svih resursa.

Šta predati

  • Projektni dokument (Markdown ili PDF) sa tačkama 1–9.
  • Dijagram i izlaz skripte za proveru adresnog plana.
  • (Opciono) izlaze AWS CLI komandi ili Terraform plana i dokaz o brisanju resursa.

Kriterijumi ocenjivanja

KriterijumBroj poena
Izbor provajdera/regiona i adresni plan sa proverom15
Dijagram arhitekture u dve zone10
Tabele ruta15
Security group-e i NACL po principu najmanjih privilegija20
Load balancer-i i visoka dostupnost10
Veza sa centralom i skladištima15
Nadzor, bezbednost i troškovi15
Ukupno100

Opcioni deo u AWS-u donosi do 10 dodatnih poena.

Rešenje

Kompletno rešenje dostupno je u /resenja/modul-25/08-zavrsni-zadatak-resenje.md.

📖 Prikaži rešenje

Rešenje završnog zadatka – Modul 25

Ovo je jedno ispravno rešenje (AWS). Prihvataju se i Azure/GCP rešenja i drugačiji adresni planovi, ako ispunjavaju sve zahteve.

1. Provajder i region

AWS, region eu-central-1 (Frankfurt). Mala latencija ka Srbiji (reda veličine 20–30 ms), podaci ostaju u EU (GDPR), a region ima tri zone dostupnosti i sve potrebne usluge.

2. Adresni plan

Postojeće mreže: 10.10.0.0/16 (centrala), 192.168.10.0/24 i 192.168.20.0/24 (skladišta). VPC: 10.40.0.0/16.

SubnetZonaCIDRUpotrebljivoNamena
javni-aa10.40.0.0/2659Javni ALB, NAT-a
javni-bb10.40.0.64/2659Javni ALB, NAT-b
app-aa10.40.1.0/24251Aplikacija, interni ALB za API
app-bb10.40.2.0/24251Aplikacija, interni ALB za API
baza-aa10.40.3.0/2727Baza (primarna)
baza-bb10.40.3.32/2727Baza (rezervna kopija)

Izlaz skripte iz laboratorijske vežbe (sa VPC = "10.40.0.0/16" i mrežama centrale i skladišta u LOKALNE_MREZE) završava se porukom „Plan je ispravan.".

3. Dijagram

graph TB
    KL["Klijenti (internet)"] --> IGW["IGW"]
    subgraph VPC["VPC 10.40.0.0/16 — eu-central-1"]
        subgraph A["Zona a"]
            JA["javni-a: javni ALB, NAT-a"]
            AA["app-a: aplikacija, interni ALB"]
            BA["baza-a: primarna baza"]
        end
        subgraph B["Zona b"]
            JB["javni-b: javni ALB, NAT-b"]
            AB["app-b: aplikacija, interni ALB"]
            BB["baza-b: rezervna baza"]
        end
    end
    IGW --> JA
    IGW --> JB
    JA --> AA --> BA
    JB --> AB --> BB
    BA -.->|"replikacija"| BB
    VGW["Virtual private gateway<br/>2 IPsec tunela, BGP"] --- AA
    VGW --- AB
    VGW --- BA
    CEN["Centrala 10.10.0.0/16"] --- VGW
    S1["Skladište 1 192.168.10.0/24"] --- CEN
    S2["Skladište 2 192.168.20.0/24"] --- CEN

4. Tabele ruta

TabelaPridruženaRute
rt-javnijavni-a, javni-b10.40.0.0/16 → local; 0.0.0.0/0 → igw
rt-app-aapp-alocal; 0.0.0.0/0 → nat-a; propagirane sa VGW: 10.10.0.0/16, 192.168.10.0/24, 192.168.20.0/24
rt-app-bapp-bisto, ali 0.0.0.0/0 → nat-b
rt-bazabaza-a, baza-blocal; propagirana 10.10.0.0/16 (administracija); bez 0.0.0.0/0
main—samo local

5. Pravila filtriranja

Security group-e:

SGDolaznoIzvor
sg-javni-lbTCP 4430.0.0.0/0
sg-interni-lbTCP 44310.10.0.0/16, 192.168.10.0/24, 192.168.20.0/24
sg-appTCP 8080sg-javni-lb
sg-appTCP 8443 (API)sg-interni-lb
sg-appTCP 2210.10.50.0/24
sg-bazaTCP 5432sg-app
sg-bazaTCP 543210.10.50.0/24

NACL za subnete baze:

SmerBr.ProtokolPortoviIzvor/odredišteAkcija
Dolazno100TCP543210.40.1.0/24Dozvoli
Dolazno110TCP543210.40.2.0/24Dozvoli
Dolazno120TCP543210.10.50.0/24Dozvoli
Dolazno130TCP543210.40.3.0/26Dozvoli (replikacija između zona)
Dolazno140TCP1024–6553510.40.3.0/26Dozvoli (odgovori pri replikaciji)
Dolazno*SveSve0.0.0.0/0Odbij
Odlazno100TCP1024–6553510.40.1.0/24Dozvoli
Odlazno110TCP1024–6553510.40.2.0/24Dozvoli
Odlazno120TCP1024–6553510.10.50.0/24Dozvoli
Odlazno130TCP543210.40.3.0/26Dozvoli (replikacija)
Odlazno140TCP1024–6553510.40.3.0/26Dozvoli
Odlazno*SveSve0.0.0.0/0Odbij

(10.40.3.0/26 obuhvata oba subneta baze: 10.40.3.0/27 i 10.40.3.32/27.)

Nijedan administrativni port nije otvoren ka 0.0.0.0/0. Baza je zaštićena trostruko: nema rutu ka internetu, NACL i SG.

6. Load balancer-i

  • Javni Application Load Balancer u javni-a i javni-b. HTTPS 443 sa sertifikatom (TLS se završava na ALB-u), ciljevi su aplikacioni serveri na portu 8080 u obe zone, health check GET /zdravlje (očekuje 200). Opciono WAF ispred ALB-a.
  • Interni Application Load Balancer za API u app-a i app-b (nije dostupan sa interneta), HTTPS 443, ciljevi na portu 8443, health check GET /api/zdravlje.
  • Aplikacioni serveri u grupi za automatsko skaliranje, najmanje po jedan u svakoj zoni.

7. Veza sa centralom i skladištima

  • AWS Site-to-Site VPN između rutera/firewall-a centrale (customer gateway, javna adresa centrale) i virtual private gateway-a VPC-a, sa dva tunela i BGP-om (npr. ASN centrale 65010, Amazon 64512).
  • Centrala oglašava: 10.10.0.0/16, 192.168.10.0/24, 192.168.20.0/24. AWS oglašava: 10.40.0.0/16.
  • U AWS-u je uključena propagacija ruta sa VGW-a u rt-app-a, rt-app-b i rt-baza.
  • Za skladišta (tranzit preko centrale):
  1. Na ruteru centrale ruta ka 10.40.0.0/16 stiže preko BGP-a iz AWS tunela.
  2. VPN-ovi skladišta ka centrali (Modul 15) moraju obuhvatiti i 10.40.0.0/16 — dodaje se u listu mreža koje se štite/tuneluju (crypto ACL ili rute kroz tunel), a na ruterima skladišta ruta 10.40.0.0/16 pokazuje ka tunelu ka centrali.
  3. Centrala mora oglašavati mreže skladišta ka AWS-u (gore), a firewall centrale mora dozvoliti tranzitni saobraćaj skladište ↔ VPC.
  • Kasnije, ako saobraćaj poraste: Direct Connect, uz postojeći VPN kao rezervu.

8. Nadzor i bezbednost

  • VPC Flow Logs za ceo VPC (odbijeni tokovi posebno analizirani).
  • CloudTrail za sve API pozive; upozorenje na izmene security group-a, NACL-a, tabela ruta i gateway-a.
  • CloudWatch alarmi: stanje ciljeva ALB-a (broj neispravnih > 0), stanje VPN tunela (tunel DOWN), greške 5xx na ALB-u, iskorišćenost NAT gateway-a. Obaveštenja idu u postojeći sistem nadzora i eskalacije (Modul 23).
  • IAM: root nalog sa MFA koji se ne koristi svakodnevno; posebne uloge za mrežni tim (izmene mreže) i razvojni tim (bez prava na mrežu); MFA za sve korisnike.
  • Administracija samo preko VPN-a iz 10.10.50.0/24 (ili upravljanim pristupom bez otvorenih portova).

9. Troškovi

Naplaćuje se: dva NAT gateway-a (po satu i po podacima), dva ALB-a, VPN veza (po satu, oba tunela zajedno) i saobraćaj, EC2 instance, baza, javne IPv4 adrese (na ALB-u i NAT gateway-ima), saobraćaj ka internetu i između zona, flow logs i čuvanje logova.

Ne naplaćuje se: VPC, subneti, tabele ruta, security group-e, NACL.

Mere:

  • VPC endpoint-i za skladište objekata, da taj saobraćaj ne prolazi kroz NAT gateway.
  • Uklanjanje javnih adresa sa instanci.
  • Automatsko skaliranje sa malim minimalnim brojem instanci.
  • Rezervisani kapacitet ili planovi uštede za stalno opterećenje.
  • Testno okruženje u Terraform-u, koje se briše posle upotrebe.

Budžet: AWS Budgets, mesečni budžet u visini planiranih troškova, sa upozorenjima na 80% i 100% (i prognozom prekoračenja) e-poštom IT menadžeru. Oznake projekat=pracenje-posiljki, okruzenje=prod, vlasnik=it na svim resursima.

10. (Opciono) AWS izrada

Prihvata se izrada dela arhitekture komandama iz Dela 2 laboratorijske vežbe (sa opsegom 10.40.0.0/16) ili Terraform-om, uz izlaz komandi i dokaz o brisanju: provere po oznaci projekat vraćaju prazne liste.

Napomena za ocenjivača

Ključno je da:

  • nema preklapanja adresa ni sa jednom mrežom firme;
  • baza nema put ka internetu;
  • postoje NAT gateway i tabela ruta po zoni;
  • interni API nije dostupan sa interneta, već samo iz centrale i skladišta;
  • VPN ima dva tunela i dinamičko rutiranje (ili obrazložene statičke rute);
  • rešen je tranzit za skladišta preko centrale;
  • nijedan administrativni port nije otvoren ka 0.0.0.0/0;
  • troškovi su prepoznati i ograničeni budžetom.