OPNsense / Unbound – DNS rebind protection

Op de een of andere manier lukte het me niet om vanaf m’n desktop een server in het locale netwerk te bereiken. Wel op IP, zowel v4 als v6, maar niet op FQDN.

Andere machines in het netwerk hadden geen probleem, en machines buiten ‘t LAN konden de hostname zonder probleem herleiden naar een IP.

Na wat puzzelen, bleek de Unbound service op OPNsense aan DNS rebind protection te doen. Hoe ik daar nog niet eerder tegenaan gelopen ben? Geen idee; de meeste machines in het LAN kan ik gewoon op FQDN bereiken, zonder hosts-entry en zonder publiek IPv4. Misschien over IPv6? Eens op letten.

In ieder geval, voor deze nieuwe server lukte het niet, en een hosts-entry leek me onnodig. Zoals gezegd, het bleek uiteindelijk in de DNS rebind protection van Unbound te zitten: het interne netwerk wordt genoemd in de lijst met rebind protection networks (A in het screenshot)

Oplossing? Onze eigen domeinen toevoegen aan ‘Private Domains’ (B in het screenshot)

Print this entry

OPNsense als TFTP-server met netboot.xyz

Dat ging snel opeens!

Lang geleden draaide er thuis een TFTP-server (oa voor de VoIP-telefoontoestellen, toen dat nog een ding was) op een Linksys NSLU, maar met een hardwarewissel is die verdwenen en niet meer teruggekomen.

Zo nu en dan zou het wel van pas komen; een apparaat dat alleen via TFTP geflashed wil worden, alsnog een VoIP-toestel, en met enige regelmaat als alternatief voor het flashen van een USB-stick met installtiebestanden.

Een tijdje geleden vond ik netboot.xyz, en voor ik me er in kon verdiepen, werd het me aangeraden als optie om een gehuurde server van een OS te voorzien. Onlangs zat er thuis een server verlegen om een operating system en zou netboot.xyz een mooie optie zijn geweest.

Zodoende kort gekeken wat er aan opties op *BSD is voor TFTP. Wat blijkt? OPNsense heeft een TFTP-plugin, en er is iemand zo vriendelijk geweest de (weinige) stappen op een blogpost te zetten:

  • Installeer de community-plugin os-tftp
  • Download de netboot.xyz-bestanden naar /usr/local/tftp :
    • fetch https://boot.netboot.xyz/ipxe/netboot.xyz.efi
    • sha256sum netboot.xyz.efi
  • In het OPNsense-menu, onder services:
    • TFTP kan nu geactiveerd worden:
      • Het listen address zet ik op de het adres van de router in het netwerk waarin het gros van de machines draait
    • Onder de DHCP-server (hij draait op IPv4 bij mij, dus inrichten onder de DHCPv4 server)
      • het item “Network booting” opzoeken en openklappen
      • als “next-server IP” het IP invullen wat eerder onder TFTP ingevuld is
      • de naam van het bootbestand invullen (voorlopig enkel netboot.xyz.efi onder x64 UEFI/EBC firmware)
    • Opslaan en DHCP herstarten
  • Klaar!

Getest met m’n laptop: het werkt meteen! Althans…

Brakke netwerkdrivers (aka Realtek)

Realtek kaarten zijn geen garantie op slechte ondersteuning, maar vaak wel een indicatie van een grote kans op slechte ondersteuning. Zo ook de driverondersteuning door Lenovo in de firmware van m’n Thinkpad met Realtek netwerk: het werkt niet.

De eerste feedback is veelbelovend:

  • TFTP-server adres wordt correct getoond
  • netboot.xyz.efi wordt gevonden en gedownload
  • iPXE wordt geinitialiseerd, features worden getoond
  • maar dan als net0/net1 geconfigureerd wordt:
    • no configuration methods succeeded
    • net0 using rtl8168 [closed] wordt getoond
    • net1 using MNP [closed]op dezelfde manier
    • TX loopt op, maar RX blijft op 0: er wordt wel wat verstuurd, maar niets ontvangen

Een poging met de undionly-versie (waarbij de basic EFI-netwerkdriver gebruikt wordt in plaats van een driver specifiek voor deze Realtek kaart) geeft ook geen resultaat.

Wat wel werkt (aka Intel)

Een paar willekeurige machines op het netwerk, toevallig allemaal met Intel NIC’s : die booten zonder problemen bij een eerste poging. Leuk hoor!

Print this entry