20TD02Y_CCNA_20TD02U - itnett/FTD02N GitHub Wiki
For å dekke temaet "Programmering" i din IT-drift og sikkerhet utdanning, kan vi lage en lab som dekker både teoretiske konsepter og praktiske ferdigheter. Her er en detaljert labbeskrivelse med bruk av Cisco-utstyret ditt for å simulere et nettverksmiljø, sammen med oppgaver som dekker alle læringsutbyttene.
Denne labben har som mål å gi studentene praktisk erfaring med grunnleggende programmeringsteknikker, utvikling av brukergrensesnitt, kommunikasjon mellom programgrensesnitt (API), og grunnleggende sikkerhetspraksis i applikasjonsutvikling.
- Cisco-rutere og -svitsjer for nettverksoppsett og overvåking
- Servere/VM-er for å kjøre utviklingsmiljøer
- Utviklingsverktøy: Python, Visual Studio Code, Postman, Docker
- Nettverksovervåkingsverktøy: Wireshark, Cisco Prime
- Simulerte IoT-enheter ved bruk av Cisco-sensorer og IoTSimulator
Oppgave:
- Lag et Python-program som implementerer grunnleggende datastrukturer som lister, tupler, sett og ordbøker.
- Bruk kontrollstrukturer (if-else, loops) for å manipulere datastrukturene.
Læringsutbytte:
- Har kunnskap om grunnleggende programmering og programmeringsverktøy.
- Kan skrive kode med variabeldeklarasjoner, kontrollstrukturer, løkker og funksjoner.
Kodeeksempel: Se skriptet her
Oppgave:
- Skriv et Python-program som inneholder flere funksjoner, inkludert en funksjon for å legge til to tall, en for å trekke fra, en for å multiplisere, og en for å dele.
Læringsutbytte:
- Har kunnskap om grunnleggende programmeringsteknikker som variabeldeklarasjoner, kontrollstrukturer, løkker og funksjoner.
Kodeeksempel: Se skriptet her
Oppgave:
- Lag en enkel Python-klasse for en "Bruker" som har attributter som navn, e-post, og passord. Implementer metoder for å endre passord og vise brukerinformasjon.
Læringsutbytte:
- Kan skrive objektorientert kode og forstå konseptene med klasser og objekter.
Kodeeksempel: Se skriptet her
Oppgave:
- Bruk Flask for å lage et enkelt RESTful API som kan legge til, hente, oppdatere og slette brukere.
- Lag et enkelt GUI med Tkinter som kan kommunisere med Flask-API-et for å vise og oppdatere brukerinformasjon.
Læringsutbytte:
- Har kunnskap om utvikling av brukergrensesnitt og kommunikasjon mellom ulike programgrensesnitt.
- Kan utvikle et brukergrensesnitt ved hjelp av kode og utviklingsverktøy.
Kodeeksempel for Flask API: Se skriptet her
Oppgave:
- Implementer grunnleggende sikkerhetsmekanismer som input-validering og unntaksbehandling i et Python-program.
- Bruk Cisco-utstyret til å simulere nettverksangrep og vis hvordan programmet håndterer disse situasjonene.
Læringsutbytte:
- Har kunnskap om grunnleggende sikkerhet relatert til programmering.
- Kan drøfte grunnleggende sikkerhet til en applikasjon.
Kodeeksempel: Se skriptet her
-
Simulering av Nettverksangrep:
- Bruk Cisco-enhetene til å generere nettverkstrafikk og simulere nettverksangrep som DoS (Denial of Service) for å teste applikasjonens motstand mot slike angrep.
-
Nettverksovervåking:
- Implementer overvåking ved hjelp av Cisco Prime eller Wireshark for å overvåke nettverkstrafikken generert av applikasjonene og IoT-sensorene.
-
Integrasjon med IoTSimulator:
- Bruk IoTSimulator sammen med Cisco-utstyret for å simulere IoT-enheter som kommuniserer med Flask-API-et. Dette kan hjelpe med å teste skalerbarhet og sikkerhet.
Ved å følge denne labben vil studentene få en helhetlig forståelse av programmering, nettverksadministrasjon, og sikkerhet, samt hvordan man kan bruke Cisco-utstyr for å simulere og teste IoT-miljøer.
For å utnytte dine Cisco-enheter programmatiskt, kan du bruke ulike verktøy og API-er som Cisco tilbyr. GitHub-repositoriet "CiscoDevNet/coding-skills-sample-code" gir eksempler på hvordan man kan bruke programmatiske tilnærminger for å styre Cisco-enheter.
For å programmere funksjoner på Cisco-enheter, kan du bruke REST API-er, Python-skript, og andre verktøy som er tilgjengelige gjennom Cisco DevNet.
Dette eksemplet viser hvordan man kan bruke Python til å kommunisere med en Cisco-enhet ved hjelp av REST API.
Cisco-enheter har mange avanserte funksjoner som kan utnyttes programmatiskt, som QoS (Quality of Service), sikkerhetspolicyer, og nettverksovervåking. Her er noen eksempler:
Konfigurere QoS på en Cisco-enhet ved hjelp av Python og REST API.
Cisco DNA Center gir kraftige API-er for automatisering av nettverksadministrasjon.
Cisco Meraki gir også et kraftig sett med API-er for administrasjon av nettverk.
For å simulere IoT-enheter ved hjelp av Cisco-utstyr og Kubernetes, kan du bruke eksempelet fra "IoTSimulator"-repositoriet som du nevnte.
-
Last ned IoTHubCredentials.json:
wget https://raw.githubusercontent.com/VladimirAkopyan/IoTSimulator/master/IoTHubCredentials.json
-
Opprett Kubernetes secret:
kubectl create secret generic sim-sensor-credentials --from-file=IoTHubCredentials.json
-
Opprett Kubernetes ressursene:
kubectl create -f https://raw.githubusercontent.com/VladimirAkopyan/IoTSimulator/master/Kubernetes.yaml
-
Verifiser oppsettet:
kubectl get pods kubectl logs <pod_name>
Med disse verktøyene og API-ene kan du programmatiskt administrere og konfigurere dine Cisco-enheter, samt simulere IoT-miljøer for å teste og overvåke nettverksinfrastruktur og sikkerhet.