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
- Izbor provajdera i regiona — izaberite provajdera (AWS, Azure ili GCP) i region, i obrazložite izbor (latencija, zaštita podataka, cena).
- 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).
- Dijagram — logički dijagram arhitekture (draw.io ili Mermaid) sa zonama, subnetima, gateway-ima, load balancer-om i vezom sa centralom.
- Tabele ruta — sve tabele sa rutama i pridruženim subnetima.
- Pravila filtriranja — security group-e (ili NSG) za sve slojeve, sa referencama gde je moguće, i NACL za subnete baze.
- Load balancer — vrsta (javni za veb aplikaciju, interni za API), zone, health check i gde se završava TLS.
- 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.
- Nadzor i bezbednost — flow logs, zapisi o API pozivima, upozorenja (Modul 23), IAM i MFA.
- Troškovi — spisak resursa koji se naplaćuju, mere za smanjenje troškova i podešavanje budžeta sa upozorenjem.
- (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
| Kriterijum | Broj poena |
|---|---|
| Izbor provajdera/regiona i adresni plan sa proverom | 15 |
| Dijagram arhitekture u dve zone | 10 |
| Tabele ruta | 15 |
| Security group-e i NACL po principu najmanjih privilegija | 20 |
| Load balancer-i i visoka dostupnost | 10 |
| Veza sa centralom i skladištima | 15 |
| Nadzor, bezbednost i troškovi | 15 |
| Ukupno | 100 |
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.
| Subnet | Zona | CIDR | Upotrebljivo | Namena |
|---|---|---|---|---|
| javni-a | a | 10.40.0.0/26 | 59 | Javni ALB, NAT-a |
| javni-b | b | 10.40.0.64/26 | 59 | Javni ALB, NAT-b |
| app-a | a | 10.40.1.0/24 | 251 | Aplikacija, interni ALB za API |
| app-b | b | 10.40.2.0/24 | 251 | Aplikacija, interni ALB za API |
| baza-a | a | 10.40.3.0/27 | 27 | Baza (primarna) |
| baza-b | b | 10.40.3.32/27 | 27 | Baza (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
| Tabela | Pridružena | Rute |
|---|---|---|
| rt-javni | javni-a, javni-b | 10.40.0.0/16 → local; 0.0.0.0/0 → igw |
| rt-app-a | app-a | local; 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-b | app-b | isto, ali 0.0.0.0/0 → nat-b |
| rt-baza | baza-a, baza-b | local; propagirana 10.10.0.0/16 (administracija); bez 0.0.0.0/0 |
| main | — | samo local |
5. Pravila filtriranja
Security group-e:
| SG | Dolazno | Izvor |
|---|---|---|
| sg-javni-lb | TCP 443 | 0.0.0.0/0 |
| sg-interni-lb | TCP 443 | 10.10.0.0/16, 192.168.10.0/24, 192.168.20.0/24 |
| sg-app | TCP 8080 | sg-javni-lb |
| sg-app | TCP 8443 (API) | sg-interni-lb |
| sg-app | TCP 22 | 10.10.50.0/24 |
| sg-baza | TCP 5432 | sg-app |
| sg-baza | TCP 5432 | 10.10.50.0/24 |
NACL za subnete baze:
| Smer | Br. | Protokol | Portovi | Izvor/odredište | Akcija |
|---|---|---|---|---|---|
| Dolazno | 100 | TCP | 5432 | 10.40.1.0/24 | Dozvoli |
| Dolazno | 110 | TCP | 5432 | 10.40.2.0/24 | Dozvoli |
| Dolazno | 120 | TCP | 5432 | 10.10.50.0/24 | Dozvoli |
| Dolazno | 130 | TCP | 5432 | 10.40.3.0/26 | Dozvoli (replikacija između zona) |
| Dolazno | 140 | TCP | 1024–65535 | 10.40.3.0/26 | Dozvoli (odgovori pri replikaciji) |
| Dolazno | * | Sve | Sve | 0.0.0.0/0 | Odbij |
| Odlazno | 100 | TCP | 1024–65535 | 10.40.1.0/24 | Dozvoli |
| Odlazno | 110 | TCP | 1024–65535 | 10.40.2.0/24 | Dozvoli |
| Odlazno | 120 | TCP | 1024–65535 | 10.10.50.0/24 | Dozvoli |
| Odlazno | 130 | TCP | 5432 | 10.40.3.0/26 | Dozvoli (replikacija) |
| Odlazno | 140 | TCP | 1024–65535 | 10.40.3.0/26 | Dozvoli |
| Odlazno | * | Sve | Sve | 0.0.0.0/0 | Odbij |
(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):
- Na ruteru centrale ruta ka
10.40.0.0/16stiže preko BGP-a iz AWS tunela. - 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 ruta10.40.0.0/16pokazuje ka tunelu ka centrali. - 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.