20TD02U_ForAlle_Blooms_Side_49_Nettverk - itnett/FTD02H-N GitHub Wiki

For å implementere en fullstendig tilnærming basert på Blooms taksonomi for temaene Nettverk 1 og Nettverk 2 (inkludert nettverkssikkerhet), både programmatiske, logiske, og praktiske tilnærminger, kan vi strukturere læringen på følgende måte:

Tema: Nettverk 1

1. LAN/WAN Teknologi

Nivå 1: Kunnskap (Remembering)

  • Logisk tilnærming: Lær grunnleggende forskjeller mellom LAN (Local Area Network) og WAN (Wide Area Network).
  • Programmatisk tilnærming: Lag et Python-skript som simulerer overføring av data mellom to noder i et LAN og et WAN.
  • Praktisk tilnærming: Sett opp et virtuelt nettverk ved hjelp av GNS3 eller Cisco Packet Tracer for å visualisere forskjellene mellom LAN og WAN-konfigurasjoner.
class Node:
    def __init__(self, name):
        self.name = name
        self.data_received = []

    def send_data(self, data, target_node):
        target_node.data_received.append(data)

# Simulerer LAN og WAN kommunikasjon
lan_node1 = Node("LAN_Node1")
lan_node2 = Node("LAN_Node2")
wan_node1 = Node("WAN_Node1")
wan_node2 = Node("WAN_Node2")

lan_node1.send_data("LAN Data", lan_node2)
wan_node1.send_data("WAN Data", wan_node2)

print(f"LAN_Node2 mottatt: {lan_node2.data_received}")
print(f"WAN_Node2 mottatt: {wan_node2.data_received}")

Nivå 2: Forståelse (Understanding)

  • Logisk tilnærming: Forstå hvordan LAN og WAN påvirker nettverksytelsen og sikkerheten.
  • Programmatisk tilnærming: Lag et script som sammenligner latency og throughput for LAN og WAN ved hjelp av ping-kommandoen.
  • Praktisk tilnærming: Utfør en praktisk test ved å måle ping-tider mellom enheter i et lokalt nettverk (LAN) og en fjernserver (WAN).

2. Nettverkstopologier

Nivå 1: Kunnskap (Remembering)

  • Logisk tilnærming: Lær de forskjellige typene nettverkstopologier som stjernetopologi, bustopologi, og ringtopologi.
  • Programmatisk tilnærming: Visualiser forskjellige nettverkstopologier ved hjelp av en graftegningsbibliotek som networkx i Python.
  • Praktisk tilnærming: Bruk Cisco Packet Tracer for å bygge og sammenligne forskjellige topologier.
import networkx as nx
import matplotlib.pyplot as plt

# Simulerer en stjernetopologi
star_topology = nx.Graph()
star_topology.add_edges_from([("Switch", "PC1"), ("Switch", "PC2"), ("Switch", "PC3")])

nx.draw(star_topology, with_labels=True, node_size=3000, node_color='skyblue')
plt.show()

Nivå 2: Forståelse (Understanding)

  • Logisk tilnærming: Forstå fordelene og ulempene med hver topologi.
  • Programmatisk tilnærming: Simuler nettverkstrafikk i forskjellige topologier og mål ytelsen (f.eks. flaskehalser) ved bruk av SimPy-biblioteket.
  • Praktisk tilnærming: Implementer og test flere topologier i en virtuell lab og mål ytelsen ved hjelp av nettverksverktøy som iperf.

3. OSI-modellen

Nivå 1: Kunnskap (Remembering)

  • Logisk tilnærming: Lær de 7 lagene i OSI-modellen og deres funksjoner.
  • Programmatisk tilnærming: Lag et Python-skript som simulerer dataoverføring gjennom OSI-lagene.
  • Praktisk tilnærming: Analyser nettverkspakker ved bruk av Wireshark for å forstå hvordan data håndteres på forskjellige OSI-lag.
class OSIModel:
    def __init__(self):
        self.layers = ["Physical", "Data Link", "Network", "Transport", "Session", "Presentation", "Application"]

    def transmit(self, data):
        print("Transmitting through OSI layers...")
        for layer in reversed(self.layers):
            data = f"{layer} Layer encapsulates data: {data}"
            print(data)
        return data

osi_model = OSIModel()
osi_model.transmit("Hello, World!")

Nivå 2: Forståelse (Understanding)

  • Logisk tilnærming: Forstå hvordan OSI-lagene samarbeider for å sikre pålitelig kommunikasjon.
  • Programmatisk tilnærming: Implementer en enkel modell av TCP (Transportlaget) og simuler pålitelig dataoverføring.
  • Praktisk tilnærming: Bruk Wireshark for å fange og analysere hvordan TCP-håndtrykk (3-way handshake) fungerer i praksis.

4. IPv4 og IPv6

Nivå 1: Kunnskap (Remembering)

  • Logisk tilnærming: Lær de grunnleggende forskjellene mellom IPv4 og IPv6, inkludert adresseformat og antall tilgjengelige adresser.
  • Programmatisk tilnærming: Lag en enkel kalkulator for IPv4-subnetting.
  • Praktisk tilnærming: Konfigurer IPv6 på et nettverksgrensesnitt og bekreft konfigurasjonen med ping og ipconfig/ifconfig.
import ipaddress

def calculate_subnets(ip, subnet_mask):
    network = ipaddress.IPv4Network(f"{ip}/{subnet_mask}", strict=False)
    return list(network.subnets())

subnets = calculate_subnets("192.168.1.0", 24)
for subnet in subnets:
    print(f"Subnet: {subnet}")

Nivå 2: Forståelse (Understanding)

  • Logisk tilnærming: Forstå hvorfor IPv6 er nødvendig og hvordan det løser problemene med IPv4.
  • Programmatisk tilnærming: Lag et script for å simulere IPv6-autokonfigurering i et nettverk.
  • Praktisk tilnærming: Konfigurer et nettverk med både IPv4 og IPv6 (dual-stack) og test konnektivitet ved bruk av ping og traceroute.

5. Nettverksprotokoller

Nivå 1: Kunnskap (Remembering)

  • Logisk tilnærming: Lær om vanlige nettverksprotokoller som TCP, UDP, HTTP, HTTPS, DNS, DHCP, etc.
  • Programmatisk tilnærming: Lag et Python-skript for å simulere en enkel UDP-kommunikasjon mellom to enheter.
  • Praktisk tilnærming: Bruk nc (Netcat) for å sette opp en enkel TCP/UDP-server og klient for å teste kommunikasjon.
import socket

# UDP server
def udp_server():
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    server_socket.bind(("localhost", 12000))
    print("UDP server up and listening...")
    while True:
        message, address = server_socket.recvfrom(1024)
        print(f"Received message: {message} from {address}")
        server_socket.sendto(b"Hello, Client", address)

# UDP client
def udp_client():
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    client_socket.sendto(b"Hello, Server", ("localhost", 12000))
    message, address = client_socket.recvfrom(1024)
    print(f"Received message: {message} from {address}")

# To run the server or client, uncomment the appropriate function call:
# udp_server()
# udp_client()

Nivå 2: Forståelse (Understanding)

  • Logisk tilnærming: Forstå hvordan ulike protokoller fungerer på forskjellige OSI-lag.
  • Programmatisk tilnærming: Lag en enkel DNS-klient som forespør en DNS-server om IP-adressen til et domene.
  • Praktisk tilnærming: Konfigurer og test en DNS-server ved bruk av Bind9 på Linux.

6. Trådløs Teknologi

Nivå 1: Kunnskap (Remembering)

  • Logisk tilnærming: Lær om trådløse nettverksteknologier som Wi-Fi, Bluetooth, og Zigbee.
  • Programmatisk tilnærming: Lag et Python-skript som scanner etter tilgjengelige Wi-Fi-nettverk ved bruk av scapy.
  • Praktisk tilnærming: Bruk Kismet eller Aircrack-ng for å utføre en Wi-Fi-nettverksscan og analysere resultatene.
from scapy.all import *

def wifi_scan():
    def packet_handler(pkt):
        if pkt.haslayer(Dot11Beacon):
            ssid = pkt[

Dot11Elt].info.decode()
            bssid = pkt[Dot11].addr2
            print(f"SSID: {ssid}, BSSID: {bssid}")

    sniff(iface="wlan0", prn=packet_handler, count=10)

wifi_scan()

Nivå 2: Forståelse (Understanding)

  • Logisk tilnærming: Forstå hvordan trådløse nettverk sikres ved bruk av WPA/WPA2/WPA3.
  • Programmatisk tilnærming: Lag et script som simulerer et trådløst nettverk med WPA2-sikkerhet ved bruk av hostapd.
  • Praktisk tilnærming: Konfigurer en trådløs tilgangspunkt på en Raspberry Pi ved bruk av hostapd og test sikkerheten.

Tema: Nettverk 2 og Nettverkssikkerhet

1. Nettverkssikkerhet

Nivå 1: Kunnskap (Remembering)

  • Logisk tilnærming: Lær grunnleggende sikkerhetsrutiner, ACLs, og VPN-konfigurasjon.
  • Programmatisk tilnærming: Lag et Python-skript for å generere ACL-regler basert på spesifikke sikkerhetskrav.
  • Praktisk tilnærming: Implementer en enkel VPN-konfigurasjon ved bruk av OpenVPN.
def generate_acl(source_ip, dest_ip, action="permit"):
    acl_rule = f"access-list 101 {action} ip {source_ip} {dest_ip}"
    return acl_rule

print(generate_acl("192.168.1.0", "10.0.0.0", "deny"))

Nivå 2: Forståelse (Understanding)

  • Logisk tilnærming: Forstå hvordan trusler som DDoS, Man-in-the-Middle (MITM), og SQL Injection kan utnytte nettverkssårbarheter.
  • Programmatisk tilnærming: Simuler et enkelt DDoS-angrep i et kontrollert miljø ved bruk av hping3.
  • Praktisk tilnærming: Bruk Wireshark for å oppdage og analysere MITM-angrep i nettverket.

2. Routing Protokoller og VLAN

Nivå 1: Kunnskap (Remembering)

  • Logisk tilnærming: Lær om dynamiske routingprotokoller som OSPF og BGP, og hvordan VLAN skiller trafikk i nettverk.
  • Programmatisk tilnærming: Simuler en enkel OSPF-konfigurasjon ved bruk av Cisco Packet Tracer.
  • Praktisk tilnærming: Implementer VLAN på en switch og test konfigurasjonen.

Nivå 2: Forståelse (Understanding)

  • Logisk tilnærming: Forstå hvordan routing og VLAN påvirker nettverksytelse og sikkerhet.
  • Programmatisk tilnærming: Lag et Python-skript for å automatisk konfigurere VLAN på flere switcher.
  • Praktisk tilnærming: Test og verifiser routingprotokollens ytelse i et simulert nettverk ved bruk av GNS3.

3. Verktøy for Penetrasjonstesting

Nivå 1: Kunnskap (Remembering)

  • Logisk tilnærming: Lær om verktøy som Nmap, Metasploit, og Nikto for penetrasjonstesting.
  • Programmatisk tilnærming: Automatiser skanning av nettverkssårbarheter ved bruk av Nmap-skripting.
  • Praktisk tilnærming: Utfør en penetrasjonstest ved hjelp av Metasploit og analyser resultatene.
nmap -sP 192.168.1.0/24

Nivå 2: Forståelse (Understanding)

  • Logisk tilnærming: Forstå hvordan penetrasjonstesting kan brukes til å identifisere og fikse sårbarheter før de utnyttes av angripere.
  • Programmatisk tilnærming: Lag en rapport som oppsummerer funnene fra penetrasjonstesten og gir anbefalinger for tiltak.
  • Praktisk tilnærming: Implementer og test sikkerhetstiltakene som foreslås i rapporten.

Konklusjon

Denne omfattende tilnærmingen til Nettverk 1 og Nettverk 2, inkludert nettverkssikkerhet, dekker alle nivåer i Blooms taksonomi, fra grunnleggende kunnskap til avansert syntese og evaluering. Ved å bruke en kombinasjon av programmatiske, logiske, og praktiske tilnærminger, vil studentene utvikle en dyp forståelse og praktiske ferdigheter innen nettverksdesign, implementering, feilsøking, og sikkerhet.


Denne veiledningen er designet for IT-studenter, nettverksadministratorer og sikkerhetsfagfolk som ønsker en grundig forståelse og praktisk tilnærming til nettverksadministrasjon og sikkerhet.