# VyOS Software Router Lab > [!info] Forudsætninger > Du har gennemgået papirøvelsen om routing mellem subnets (Figure 9-1 til 9-4) og kan forklare hvordan en packet traverserer fra et source subnet til et destination subnet via en router, herunder ARP, TTL decrement og routing table lookup. --- ## Formål I denne øvelse skal I i makkerpar opsætte en **VyOS software router** i jeres virtuelle miljø. Routeren skal fungere som gateway mellem et eksternt netværk (WAN) og et internt netværk (LAN) — præcis den rolle som R1 og R2 spillede i papirøvelsen, men nu som en fungerende implementering. Efter øvelsen skal I kunne: - Konfigurere network interfaces på en software router - Opsætte DHCP-service for et internt LAN - Konfigurere NAT/masquerade for at give LAN-klienter adgang til WAN - Verificere og fejlsøge routing med standard netværksværktøjer - Dokumentere en netværksopsætning professionelt --- ## Netværksdiagram ``` ┌──────────────────────────────────────────────────────────────┐ │ Bridge Network (WAN) │ │ DHCP fra hypervisor aktiv │ │ Subnet: (tildelt af hypervisor) │ └──────────────────┬───────────────────────────────────────────┘ │ │ eth0 (WAN interface) ┌──────┴──────┐ │ │ │ VyOS │ │ Router │ │ │ └──────┬──────┘ │ eth1 (LAN interface) │ IP: 10.10.10.1/24 │ ┌──────────────────┴───────────────────────────────────────────┐ │ Internal Network (LAN) │ │ Ingen DHCP fra hypervisor │ │ Subnet: 10.10.10.0/24 │ │ │ │ ┌─────────────┐ │ │ │ Client VM | | | │ LAB-PC | │ │ │ (Linux) │ │ │ │ DHCP client│ │ │ └─────────────┘ │ └──────────────────────────────────────────────────────────────┘ ``` > [!important] IP-adresseplan > Udfyld denne tabel **inden** I begynder at konfigurere. Tabellen er jeres kontrakt med jer selv om hvad I bygger. > > | Komponent | Interface | IP-adresse | Subnet Mask | Gateway | Bemærkning | > |---|---|---|---|---|---| > | VyOS Router | eth0 (WAN) | | | | DHCP fra bridge | > | VyOS Router | eth1 (LAN) | 10.10.10.1 | /24 | — | Static | > | Client VM | eth0 | | | | DHCP fra VyOS | > | DHCP Range | — | 10.10.10.100 - 10.10.10.200 | /24 | 10.10.10.1 | Konfigureres på VyOS | --- ## Roller og arbejdsform I arbejder i makkerpar med tydelige roller der **byttes halvvejs** (efter del 2). | Rolle | Ansvar | |---|---| | **Operator** | Skriver kommandoer i VyOS CLI. Må kun skrive hvad Navigator dikterer eller godkender. | | **Navigator** | Læser dokumentation, planlægger næste skridt, verificerer konfiguration. Dikterer kommandoer til Operator. | > [!warning] Vigtig regel > Operator må **ikke** copy-paste direkte fra dokumentationen. Navigator læser og formulerer kommandoen, Operator skriver den. Dette tvinger jer begge til at forstå hvad der konfigureres. **Rolleskift:** Efter I har gennemført Del 1 og Del 2, bytter I roller for Del 3 og Del 4. --- ## Del 1 — Forberedelse og installation **Rolle: Navigator læser og planlægger, Operator udfører** 1. Download VyOS rolling release ISO fra [vyos.io](https://vyos.io) 2. Opret en VM i jeres hypervisor med: - **2 network interfaces**: Én tilsluttet bridge network (WAN), én tilsluttet det interne netværk uden DHCP - Minimum 1 GB RAM, 10 GB disk - Minimum 1 Processor 3. Log-in med vyos/vyos 4. Boot fra ISO og kør `install image` for at installere VyOS på disk 5. Reboot og verificér at I kan logge ind > [!tip] Dokumentation > VyOS Quick Start Guide: https://docs.vyos.io/en/latest/quick-start.html **Checkpoint:** Begge i parret skal kunne forklare hvilke to netværk VyOS-routeren er tilsluttet og hvorfor. For at sætte dansk keyboard layout på VyOS VM: ```bash configure set system option keyboard-layout dk ``` Test herefter, om I har et keyboard layout, I kan anvende: ```bash [] {} # blandt andet ``` Husk: ```bash commit save ``` Test konfigurationen: ```bash exit reboot ``` - [ ] Keyboard er dansk efter reboot > [!tip] Snapshot > > Dette er et godt tidspunkt at lave et snapshot. --- ## Del 2 — WAN interface konfiguration **Rolle: Samme som Del 1** Konfigurér eth0 (WAN) til at modtage IP-adresse via DHCP fra bridge-netværket. Start med at verificere, hvilke interfaces på guest-VM'en der er sat op, og at de er forbundet til de korrekte netværk (bridge og et LAN/internt netværk uden aktiv DHCP-server via hypervisor). ```bash show interfaces ``` Jeg har "snydt" lidt: ved oprettelse af min VM har jeg valgt, at netværksadapter 1 — den jeg vil bruge til WAN, koblet til mit bridge-netværk — ender sin MAC-adresse på `11`, og adapter 2, som jeg vil bruge som internt LAN-netværk, ender sin MAC-adresse på `22`. ![[vyos-show-interfaces.png]] Brug VyOS-dokumentationen til at finde de relevante kommandoer for: - Konfiguration af et interface med DHCP - `commit` og `save` af konfiguration **Verifikation:** - [ ] `show interfaces` viser en IP-adresse på eth0 - [ ] `ping 8.8.8.8` fra VyOS lykkes (stop med ctrl-c) - [ ] Opdatér IP-adresseplanen med den tildelte WAN-adresse **Checkpoint:** Navigator forklarer Operator hvad der ville ske hvis eth0 *ikke* fik en IP-adresse via DHCP. Hvad ville I se? Hvordan ville I fejlsøge? --- ## Del 3 — LAN interface, DHCP og NAT > [!attention] Rolleskift > **Byt roller nu.** Den der var Operator bliver Navigator, og omvendt. Konfigurér følgende på VyOS: ### 3a — LAN interface - Sæt eth1 til static IP `10.10.10.1/24` ### 3b — DHCP-service - Konfigurér en DHCP-server på VyOS for subnet `10.10.10.0/24` - Address range: `10.10.10.100` – `10.10.10.200` - Default gateway: `10.10.10.1` - DNS-server: `8.8.8.8` - leasetime 2 timer > [!attention] Snapshot > > **SNAPSHOT TIME** > > - `commit` og `save`, herefter `exit` og `poweroff` > > - Lav et snapshot og kald det "before NAT/masq config" (vigtigt — I skal tilbage til dette punkt senere) > > - Start VyOS VM op igen og fortsæt ### 3c — NAT/Masquerade - Konfigurér source NAT (masquerade) på WAN-interfacet så LAN-klienter kan tilgå det eksterne netværk > [!tip] Dokumentation > Se VyOS dokumentation for: > - [DHCP Server](https://docs.vyos.io/en/latest/configuration/service/dhcp-server.html) > - [NAT](https://docs.vyos.io/en/latest/configuration/nat/index.html) Opsæt jeres LAB-PC / client VM, så der kun er 1 aktivt interface. Dette interface skal være koblet på det netværk, som I har valgt til LAN. Når I har opsat denne konfiguration, starter I client VM / LAB-PC op. Fra VyOS skulle I nu gerne se en client optage en lease på en IP-adresse: ![[vyos-show-dhcp-leases.png]] På jeres LAB-PC skulle I nu gerne se en IP inden for det range, som I har opsat: ![[lab-pc-dhcp-lease-from-vyos.png]] **Verifikation:** - [ ] `show dhcp server leases` viser aktive leases når client VM startes - [ ] Client VM modtager IP-adresse i range `10.10.10.100-200` - [ ] Client VM kan pinge `10.10.10.1` (gateway) - [ ] Client VM kan pinge `8.8.8.8` (ekstern connectivity via NAT) - [ ] Client VM kan pinge it-sikkerhed.org (dns er funktionsdygtig) **Checkpoint:** Navigator forklarer Operator hvorfor NAT/masquerade er nødvendig. Hvad ville ske hvis I kun havde routing men ingen NAT? Relater til papirøvelsens eksempel med private og public IP-adresser. > [!important] Snapshot-verifikation > > Gå tilbage til snapshot "before NAT/masq config". Løb ovenstående verifikationsliste igennem igen, og sammenlign jeres resultater med første gennemløb. > > > > **VIGTIGT:** Gentag fra punkt [[#3c — NAT/Masquerade]], inden I fortsætter til Del 4. --- ## Del 4 — Verifikation og fejlsøgning **Rolle: Samme som Del 3 (de nye roller)** Udfør følgende fra **Client VM** og dokumentér output: | Test | Kommando | Forventet resultat | Faktisk resultat | |---|---|---|---| | IP-adresse tildelt | `ip addr show` | IP i 10.10.10.100-200 range | | | Gateway reachable | `ping 10.10.10.1` | Reply | | | DNS opslag | `nslookup google.com` | Resolved IP | | | Extern connectivity | `ping 8.8.8.8` | Reply | | | Trace route | `traceroute 8.8.8.8` | Første hop er 10.10.10.1 | | Udfør følgende fra **VyOS**: | Test | Kommando | Forventet resultat | Faktisk resultat | |---|---|---|---| | Routing table | `show ip route` | Routes for begge subnets | | | Interface status | `show interfaces` | Begge interfaces UP med korrekte IP'er | | | DHCP leases | `show dhcp server leases` | Lease til client VM | | | NAT translations | `show nat source translations` | Aktive translations | | --- ## Del 5 — Dokumentation og refleksion Udarbejd sammen en kort netværksdokumentation der indeholder: 1. **Netværksdiagram** med alle IP-adresser, subnet masks og interfaces udfyldt 2. **Konfigurationsoversigt** — de vigtigste VyOS-kommandoer I brugte (ikke en komplet dump, men de centrale kommandoer med en kort forklaring af hvad hver gør) 3. **Verifikationsresultater** — tabellerne fra Del 4 udfyldt 4. **Refleksion** (maks 1 side) — besvar mindst ét af følgende: - Noget I blev overraskede over under opsætningen - Noget der var særligt vanskeligt at få til at virke, og hvordan I løste det - En sammenhæng I opdagede mellem papirøvelsen og den praktiske opsætning > [!note] Præsentation > Refleksionen danner grundlag for jeres korte oplæg ved næste undervisningsgang. Vælg det punkt fra refleksionen I finder mest interessant at dele med jeres medstuderende. --- ## Ekstraopgave — SSH Opsæt SSH, sådan at det er muligt at forbinde via SSH fra client VM / LAB-PC til VyOS-routeren. Diskutér, hvorfor følgende kommando — hvis den står alene — kan være farlig: ```bash set service ssh port "22" ``` Opsæt herefter SSH, således at det kun er fra LAN-siden, SSH kan tilgås. ___ ## Peer-review session (næste undervisningsgang) ### Format - 3 makkerpar danner en gruppe af 6 - Hvert par holder et kort oplæg (5–7 minutter) baseret på deres refleksion - Efter hvert oplæg: 5 minutters struktureret peer-review ### Feedbackstruktur for tilhørere Hver tilhører besvarer disse tre spørgsmål **skriftligt** under/efter hvert oplæg: > [!quote] Peer-review spørgsmål > 1. **Hvad lærte du af dette oplæg som du ikke vidste i forvejen?** > 2. **Er der noget teknisk du er uenig i eller vil udfordre?** > 3. **Hvad ville du gerne vide mere om?** Besvarelserne afleveres til det præsenterende par som skriftlig feedback efter sessionen. ### Tidsplan per gruppe | Tid | Aktivitet | |---|---| | 0–7 min | Par 1 præsenterer | | 7–12 min | Peer-review og diskussion | | 12–19 min | Par 2 præsenterer | | 19–24 min | Peer-review og diskussion | | 24–31 min | Par 3 præsenterer | | 31–36 min | Peer-review og diskussion | | 36–45 min | Fælles opsamling: Hvad var den vigtigste indsigt på tværs af alle oplæg? | --- ## Ressourcer - VyOS Documentation: https://docs.vyos.io/en/latest/ - VyOS Quick Start: https://docs.vyos.io/en/latest/quick-start.html - VyOS DHCP Server: https://docs.vyos.io/en/latest/configuration/service/dhcp-server.html - VyOS NAT: https://docs.vyos.io/en/latest/configuration/nat/index.html