Zadaci za samostalan rad – Modul 25 – Cloud mreže
Rešenja se nalaze u
/resenja/modul-25/05-zadaci-resenja.md— pokušajte da rešite zadatke samostalno pre nego što pogledate rešenja. Zadaci se rešavaju na papiru ili u editoru; cloud nalog nije potreban.
Nivo: Početni
Zadatak 1. Odredite model usluge (IaaS, PaaS ili SaaS) za: (a) virtuelnu mašinu na kojoj sami instalirate Linux i veb server; (b) Microsoft 365; (c) upravljanu PostgreSQL bazu kojoj provajder radi zakrpe i backup; (d) virtuelnu mrežu sa subnetima i security group-ama.
Zadatak 2. Prema modelu podeljene odgovornosti, ko je odgovoran za svaku stavku kod IaaS usluge: (a) fizička bezbednost data centra; (b) zakrpe operativnog sistema virtuelne mašine; (c) pravila security group-e; (d) rad hipervizora; (e) šifrovanje sopstvenih podataka?
Zadatak 3. Uporedite security group i network ACL po četiri osobine: nivo primene, stateful/stateless, vrste pravila (allow/deny) i način procene pravila.
Zadatak 4. Šta određuje da li je subnet u AWS-u javni ili privatni? Da li je dovoljno da se subnet zove „javni"?
Nivo: Srednji
Zadatak 5. Firma koristi lokalne mreže 10.0.0.0/16 i 10.1.0.0/16, a partner sa kojim se povezuje VPN-om koristi 172.16.0.0/12. Za svaki predloženi CIDR VPC-a odredite da li je prihvatljiv i zašto: (a) 10.0.0.0/16; (b) 10.1.128.0/17; (c) 172.20.0.0/16; (d) 10.50.0.0/16.
Zadatak 6. Koliko upotrebljivih adresa ima subnet: (a) /28 u AWS-u; (b) /26 u AWS-u; (c) /24 u AWS-u; (d) /20 u AWS-u; (e) /24 u Google Cloud-u?
Zadatak 7. Tabela ruta subneta:
| Odredište | Cilj |
|---|---|
| 10.40.0.0/16 | local |
| 172.16.0.0/12 | vgw-01 (VPN) |
| 172.16.8.0/24 | pcx-01 (VPC peering) |
| 0.0.0.0/0 | nat-01 |
Odredite cilj za pakete ka: (a) 172.16.8.9; (b) 172.20.1.1; (c) 10.40.3.3; (d) 9.9.9.9. Koje pravilo koristite?
Zadatak 8. U javnom subnetu je bastion server kome se pristupa SSH-om samo iz administratorske mreže 203.0.113.0/24. Napišite NACL za taj subnet (dolazna i odlazna pravila sa rednim brojevima) koja dozvoljava samo taj saobraćaj.
Zadatak 9. Aplikacija mora nastaviti da radi ako otkaže jedna zona dostupnosti, a aplikacioni serveri u privatnim subnetima moraju imati izlaz na internet. Koliko NAT gateway-a treba i gde, i kako izgledaju tabele ruta privatnih subneta?
Nivo: Napredni
Zadatak 10. Instance u privatnom subnetu ne mogu da preuzmu ažuriranja. NAT gateway postoji u javnom subnetu i u stanju je Available. Tabela ruta privatnog subneta sadrži 10.60.0.0/16 → local i 0.0.0.0/0 → igw-01. Šta je uzrok i kako ga ispravljate? Zašto ova konfiguracija ne radi?
Zadatak 11. Napišite security group-e za troslojnu aplikaciju (load balancer na 443, aplikacija na 8080, MySQL baza na 3306, administratori iz 10.10.50.0/24 preko VPN-a na SSH). Objasnite zašto su reference na druge security group-e bolje od pravila sa CIDR opsezima aplikacionih subneta.
Zadatak 12. Firma želi da poveže lokalnu mrežu 10.20.0.0/16 sa postojećim VPC-om čiji je opseg takođe 10.20.0.0/16. (a) Zašto to ne može da radi direktno? (b) Navedite tri moguća rešenja i uporedite ih. (c) Kako se ovaj problem sprečava ubuduće?
Zadatak 13. Testno okruženje radi 24 sata dnevno i sadrži: dva NAT gateway-a, Application Load Balancer, četiri instance sa javnim IPv4 adresama i VPC sa subnetima i security group-ama. Koje stavke se naplaćuju, a koje ne? Predložite četiri mere za smanjenje troškova testnog okruženja.
Praktičan zadatak
Zadatak 14. Proširite Deo 2 laboratorije drugim javnim subnetom 10.30.0.64/26 u drugoj zoni dostupnosti. Napišite AWS CLI komande kojima: pronalazite ime druge zone, pravite subnet, pridružujete ga postojećoj tabeli ruta rt-javni i postojećoj NACL, i uključujete automatsku dodelu javnih IP adresa. Koje komande dodajete u Korak 14 (brisanje)?
Zadatak zasnovan na izlazu komande
Zadatak 15. Veb server u javnom subnetu je juče radio, a danas nije dostupan. Dobijeni su ovi izlazi:
$ aws ec2 describe-route-tables --route-table-ids rtb-0f1e2d3c4b5a69788 --query 'RouteTables[0].Routes'
[
{
"DestinationCidrBlock": "10.30.0.0/16",
"GatewayId": "local",
"Origin": "CreateRouteTable",
"State": "active"
},
{
"DestinationCidrBlock": "0.0.0.0/0",
"GatewayId": "igw-0a1b2c3d4e5f60718",
"Origin": "CreateRoute",
"State": "blackhole"
}
]
$ aws ec2 describe-internet-gateways --internet-gateway-ids igw-0a1b2c3d4e5f60718 --query 'InternetGateways[0].Attachments'
[]
(a) Šta znači stanje blackhole? (b) Šta je uzrok, na osnovu drugog izlaza? (c) Kojom komandom ispravljate problem? (d) Kako biste ubuduće saznali ko je i kada izvršio izmenu?
📖 Prikaži rešenje
Rešenja zadataka za samostalan rad – Modul 25 – Cloud mreže
Nivo: Početni
Zadatak 1. (a) IaaS; (b) SaaS; (c) PaaS; (d) IaaS (mrežna infrastruktura koju sami podešavate).
Zadatak 2. (a) provajder; (b) korisnik; (c) korisnik; (d) provajder; (e) korisnik (provajder daje alate za šifrovanje, ali korisnik odlučuje da li ih koristi i upravlja ključevima).
Zadatak 3.
| Osobina | Security group | Network ACL |
|---|---|---|
| Nivo primene | Mrežni interfejs instance | Subnet |
| Stanje | Stateful — odgovori prolaze automatski | Stateless — povratni saobraćaj se mora dozvoliti |
| Vrste pravila | Samo allow | Allow i deny |
| Procena | Sva pravila zajedno | Po rednom broju, prvo poklapanje; implicitno * odbij |
Zadatak 4. Tabela ruta pridružena subnetu: javni subnet ima rutu 0.0.0.0/0 ka internet gateway-u. Ime subneta ne utiče ni na šta — subnet nazvan „javni" bez te rute je privatni.
Nivo: Srednji
Zadatak 5.
- (a) Nije prihvatljiv — identičan lokalnoj mreži
10.0.0.0/16. - (b) Nije prihvatljiv —
10.1.128.0/17je deo lokalne mreže10.1.0.0/16. - (c) Nije prihvatljiv —
172.20.0.0/16je unutar partnerovog172.16.0.0/12(172.16.0.0–172.31.255.255). - (d) Prihvatljiv — ne preklapa se ni sa jednom navedenom mrežom.
Zadatak 6. (a) 16 − 5 = 11; (b) 64 − 5 = 59; (c) 256 − 5 = 251; (d) 4.096 − 5 = 4.091; (e) 256 − 4 = 252.
Zadatak 7. Pravilo najdužeg poklapanja prefiksa (longest prefix match):
- (a)
172.16.8.9→ poklapaju172.16.0.0/12i172.16.8.0/24; duži je/24→ pcx-01. - (b)
172.20.1.1→ poklapa172.16.0.0/12→ vgw-01. - (c)
10.40.3.3→ local. - (d)
9.9.9.9→ samo0.0.0.0/0→ nat-01.
Zadatak 8.
| Smer | Br. | Protokol | Portovi | Izvor/odredište | Akcija |
|---|---|---|---|---|---|
| Dolazno | 100 | TCP | 22 | 203.0.113.0/24 | Dozvoli |
| Dolazno | * | Sve | Sve | 0.0.0.0/0 | Odbij |
| Odlazno | 100 | TCP | 1024–65535 | 203.0.113.0/24 | Dozvoli (odgovori SSH klijentima) |
| Odlazno | * | Sve | Sve | 0.0.0.0/0 | Odbij |
Ako bastion treba i da se povezuje dalje, ka privatnim serverima (SSH ka 10.x.x.x), dodaju se odlazno pravilo za TCP 22 ka tim subnetima i dolazno pravilo za TCP 1024–65535 iz njih. Security group bastiona i dalje mora dozvoljavati TCP 22 samo iz 203.0.113.0/24.
Zadatak 9. Dva NAT gateway-a — po jedan u javnom subnetu svake zone. Tabela ruta privatnog subneta zone a ima 0.0.0.0/0 → nat-a, a zone b 0.0.0.0/0 → nat-b (uz local i eventualne VPN rute). Zato su potrebne dve različite tabele ruta za privatne subnete. Otkaz jedne zone ne prekida izlaz na internet drugoj zoni, a nema ni troškova za saobraćaj između zona.
Nivo: Napredni
Zadatak 10. Uzrok: podrazumevana ruta privatnog subneta vodi ka internet gateway-u, a ne ka NAT gateway-u. Instance u privatnom subnetu nemaju javne IP adrese, a IGW prevodi samo adrese instanci koje imaju javnu adresu. Paketi sa privatnim izvornim adresama zato ne mogu da stignu na internet i odgovori se ne vraćaju. Ispravka:
aws ec2 replace-route --route-table-id <rt-privatni> --destination-cidr-block 0.0.0.0/0 --nat-gateway-id <nat-id>
Takođe proveriti da je NAT gateway u javnom subnetu, čija tabela ima rutu ka IGW-u.
Zadatak 11.
| SG | Protokol/port | Izvor |
|---|---|---|
| sg-lb | TCP 443 | 0.0.0.0/0 |
| sg-app | TCP 8080 | sg-lb |
| sg-app | TCP 22 | 10.10.50.0/24 |
| sg-baza | TCP 3306 | sg-app |
Reference na SG su bolje od CIDR opsega:
- Pravilo važi za tačno one instance koje imaju tu SG, a ne za ceo subnet — drugi resursi u istom subnetu nemaju pristup.
- Nove instance, i instance sa promenjenim adresama (automatsko skaliranje), automatski su obuhvaćene bez izmene pravila.
- Pravila su čitljivija i izražavaju nameru („aplikacija sme do baze").
Zadatak 12. (a) Iste adrese postoje na obe strane, pa ruter ne može da odluči da li je 10.20.5.10 lokalna adresa ili adresa u VPC-u. Rutiranje između preklapajućih mreža nije moguće bez prevođenja adresa. (b) Moguća rešenja:
- Nov VPC sa opsegom bez preklapanja (npr.
10.21.0.0/16) i premeštanje resursa u njega — najčistije rešenje, ali zahteva migraciju. - NAT između mreža (na lokalnom firewall-u ili preko privatnog NAT-a u cloud-u) — brže, ali složeno za održavanje i dijagnostiku, i problematično za protokole koji nose adrese u sadržaju.
- Izlaganje samo pojedinačnih servisa preko privatnih krajnjih tačaka (npr. AWS PrivateLink) ili javnih API-ja — bez pune mrežne povezanosti.
- Prenumeracija dela lokalne mreže — retko izvodljivo.
(c) Sprečavanje: jedan centralni IP adresni plan (IPAM) za lokalne mreže i sve cloud mreže, u koji se svaki novi VPC upisuje pre izrade (Modul 23).
Zadatak 13. Naplaćuje se: oba NAT gateway-a (po satu i po količini podataka), Application Load Balancer (po satu i po korišćenju), četiri instance (po satu), četiri javne IPv4 adrese (po satu) i saobraćaj ka internetu. Ne naplaćuju se: VPC, subneti, tabele ruta, security group-e.
Mere za testno okruženje:
- Gašenje instanci i uklanjanje skupih resursa van radnog vremena (raspored, automatizacija).
- Jedan NAT gateway umesto dva (visoka dostupnost nije neophodna za test), NAT instanca, ili VPC endpoint-i za usluge provajdera.
- Uklanjanje javnih IP adresa sa instanci — pristup samo preko load balancer-a ili upravljanog pristupa.
- Infrastruktura kao kod (Terraform) — okruženje se pravi kada zatreba i briše posle testiranja.
Uz to: budžet sa upozorenjem i oznake na svim resursima.
Praktičan zadatak
Zadatak 14.
source ~/kurs25.env
AZ2=$(aws ec2 describe-availability-zones --query 'AvailabilityZones[1].ZoneName' --output text)
PUB2_ID=$(aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block 10.30.0.64/26 --availability-zone $AZ2 \
--tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=kurs25-javni-b},{Key=projekat,Value=kurs25}]' \
--query Subnet.SubnetId --output text)
echo "PUB2_ID=$PUB2_ID" >> ~/kurs25.env
aws ec2 associate-route-table --route-table-id $RT_ID --subnet-id $PUB2_ID
ASSOC2_ID=$(aws ec2 describe-network-acls --filters Name=association.subnet-id,Values=$PUB2_ID \
--query "NetworkAcls[0].Associations[?SubnetId=='$PUB2_ID'].NetworkAclAssociationId" --output text)
aws ec2 replace-network-acl-association --association-id $ASSOC2_ID --network-acl-id $NACL_ID
aws ec2 modify-subnet-attribute --subnet-id $PUB2_ID --map-public-ip-on-launch
U Korak 14 se dodaje aws ec2 delete-subnet --subnet-id $PUB2_ID, pre brisanja NACL-a i tabele ruta, jer se NACL i tabela ruta ne mogu obrisati dok su pridružene nekom subnetu.
Zadatak zasnovan na izlazu komande
Zadatak 15. (a) blackhole znači da ruta postoji, ali njen cilj više nije dostupan, pa se paketi koji je koriste odbacuju. (b) Internet gateway nema nijedno pridruživanje (Attachments: []) — neko ga je odvojio od VPC-a. (c)
aws ec2 attach-internet-gateway --internet-gateway-id igw-0a1b2c3d4e5f60718 --vpc-id <id VPC-a>
Posle pridruživanja ruta ponovo postaje active. (d) Iz zapisa o API pozivima — AWS CloudTrail: događaj DetachInternetGateway sadrži korisnika (IAM identitet), vreme i izvornu IP adresu. Za ubuduće: upozorenje (npr. CloudWatch/EventBridge pravilo) na takve događaje i ograničenje IAM prava za izmenu mrežne infrastrukture.