Wat is BOOTP?

BOOTP (Bootstrap Protocol) is een netwerkprotocol waarmee een apparaat bij het opstarten via een broadcast zijn IP-adres, subnetmasker, gateway en eventueel de naam van een opstartbestand opvraagt bij een BOOTP-server, die die gegevens op basis van het MAC-adres uit een vaste tabel teruggeeft. BOOTP is vastgelegd in RFC 951 uit september 1985 en werd ontworpen voor diskloze werkstations die zonder lokale opslag moesten opstarten. DHCP heeft het in kantoornetwerken grotendeels vervangen, maar in de industrie leeft BOOTP voort: veel IP-apparaten, I/O-adapters en drives vragen nog altijd via BOOTP of DHCP om hun eerste IP-adres.

BOOTP is eenvoudig en voorspelbaar: hetzelfde MAC-adres krijgt altijd hetzelfde IP-adres. Dat maakt het geschikt voor de inbedrijfstelling van veldapparaten, maar het protocol kent geen enkele vorm van authenticatie.


🧠 Hoe werkt BOOTP stap voor stap?

BOOTP werkt met één vraag en één antwoord over UDP. De server luistert op UDP-poort 67, de client op poort 68. Volgens RFC 951 zijn er bewust twee poorten: een antwoord dat als broadcast wordt verstuurd, wekt zo niet onnodig de BOOTP-serverprocessen op andere machines.

  1. BOOTREQUEST - het apparaat kent zijn eigen adres nog niet en stuurt een broadcast naar poort 67 met zijn MAC-adres (veld chaddr) en een willekeurig transactienummer (xid).
  2. Opzoeken - de BOOTP-server zoekt het MAC-adres op in zijn tabel. Staat het er niet in, dan antwoordt een pure BOOTP-server niet.
  3. BOOTREPLY - de server stuurt het toegewezen adres terug (yiaddr), plus zijn eigen adres (siaddr) en eventueel de naam van een opstartbestand (file).
  4. Tweede fase - wie een opstartbestand nodig heeft, haalt dat daarna op met TFTP. RFC 951 noemt BOOTP uitdrukkelijk de eerste fase van een opstartproces in twee stappen; beide fasen moesten in een PROM passen.
  5. Herhalen bij geen antwoord - de client probeert het opnieuw met een willekeurige, exponentieel groeiende wachttijd. RFC 951 geeft als voorbeeld herhalingen rond 4, 8, 16, 32 en 64 seconden na de eerste poging; zodra de gemiddelde wachttijd ongeveer 60 seconden bereikt, groeit die niet verder. Zo overspoelen honderd apparaten die na een stroomstoring tegelijk opstarten het netwerk niet.

De velden van het BOOTP-bericht tellen samen op tot 300 bytes: een vaste kop van 236 bytes plus het leveranciersveld (vend) van 64 bytes. RFC 1542 maakte van die 300 bytes een minimumlengte. RFC 951 raadt aan het vend-veld te laten beginnen met een 4-byte magic number; later werd dat de magic cookie 99.130.83.99. Die leveranciersuitbreidingen voor subnetmasker, gateway en DNS-server werden later de opties die DHCP nog steeds gebruikt.


📐 Welke velden en waarden zijn belangrijk?

Onderdeel Waarde Betekenis
Serverpoort UDP 67 Waar BOOTP- en DHCP-servers luisteren
Clientpoort UDP 68 Waar de client het antwoord ontvangt
Berichtlengte 300 bytes (minimum) Vaste kop plus 64 bytes leveranciersgegevens
op 1 = BOOTREQUEST, 2 = BOOTREPLY Richting van het bericht
chaddr MAC-adres van de client Sleutel voor de opzoektabel
giaddr Adres van de relay agent Nodig als de server in een ander subnet staat
hops Max. 16, standaard drempel 4 Relay agents gooien verzoeken boven de drempel weg
Magic cookie 99.130.83.99 Geeft aan dat het vend-veld standaardopties bevat

Een broadcast komt niet voorbij een router. Staat de BOOTP-server in een ander subnet, dan is een relay agent nodig. RFC 1542 (oktober 1993) legde vast hoe die werkt: de relay ontvangt het verzoek, vult giaddr met zijn eigen adres, verhoogt hops en stuurt het als unicast naar de server. Op Cisco-apparatuur gebeurt dit met het commando ip helper-address, dat behalve BOOTP/DHCP standaard nog enkele andere UDP-diensten doorstuurt.


🔄 Wat is het verschil tussen BOOTP, RARP en DHCP?

BOOTP zit tussen twee generaties in. Het verving RARP (RFC 903, 1984), dat alleen een IP-adres kon opvragen en als link-layerprotocol niet routeerbaar was. Het werd zelf opgevolgd door DHCP, waarvan de eerste versie in 1993 verscheen en de huidige basis, RFC 2131, in maart 1997.

Aspect RARP BOOTP DHCP
Laag Link layer (direct op Ethernet) UDP/IP UDP/IP
Levert Alleen IP-adres IP-adres, masker, gateway, opstartbestand Alle BOOTP-gegevens plus tientallen opties
Toewijzing Vaste tabel Vaste tabel per MAC-adres Dynamisch, automatisch of handmatig
Lease Nee Nee, adres geldt onbeperkt Ja, met verlenging
Over routers Nee Ja, via relay agent Ja, via relay agent
Huidig gebruik Vrijwel verdwenen Industriële inbedrijfstelling, legacy Standaard in IT en steeds vaker in OT

DHCP gebruikt hetzelfde berichtformaat en dezelfde poorten. RFC 2131 eist zelfs dat DHCP-servers bestaande BOOTP-clients blijven bedienen. Een DHCP-client werkt echter niet altijd met een pure BOOTP-server, omdat die de DHCP-berichttypen niet begrijpt. Omgekeerd kunnen Windows Server en de meeste andere DHCP-servers wel BOOTP-clients bedienen; in Windows Server stelt u per reservering in of die DHCP, BOOTP of beide ondersteunt.


🏭 Waarom gebruiken industriële apparaten nog BOOTP?

In OT-netwerken krijgen PLC’s, IO-modules, Drives en HMI’s bijna altijd een vast adres. BOOTP is daar geen permanente adresdienst, maar een hulpmiddel om dat vaste adres voor het eerst in te stellen.

  • Rockwell Automation - veel Allen-Bradley-apparaten met EtherNet/IP vragen na levering of een fabrieksreset om een adres via BOOTP of DHCP. De EtherNet/IP Address Commissioning Tool (en daarvoor de oudere BOOTP-DHCP-tool) toont de binnenkomende MAC-adressen, wijst een adres toe en zet het apparaat daarna in statische modus.
  • Phoenix Contact - de gratis tool IPAssign stelt het IP-adres in van apparaten die op BOOTP vertrouwen, zonder installatie of beheerdersrechten.
  • Siemens - PROFINET-apparaten van Siemens krijgen hun naam en adres niet via BOOTP maar via het eigen protocol DCP, vanuit TIA Portal of de Primary Setup Tool.

Een bekende valkuil: een apparaat dat in BOOTP/DHCP-modus blijft staan, verliest bij een spanningsonderbreking vaak zijn adres en vraagt na de herstart opnieuw. Is de tool of server dan niet meer aanwezig, dan blijft het apparaat onbereikbaar en valt de communicatie met de PLC weg. Bovendien blokkeren sommige managed switches broadcastverkeer naar UDP 67/68, waardoor de tool het verzoek nooit ziet.


🧭 Hoe stelt u een apparaat in met BOOTP?

Een praktische werkwijze bij de inbedrijfstelling van een EtherNet/IP-adapter of drive:

  1. Plan het adres - leg IP-adres, masker en gateway vast in het adressenplan en uw Asset Inventory, afgestemd op de subnetindeling van de cel.
  2. Werk geïsoleerd - sluit de laptop met de BOOTP-tool aan op hetzelfde VLAN of rechtstreeks op het apparaat. Zo reageert er geen andere server en ziet u alleen de verwachte verzoeken.
  3. Controleer het MAC-adres - vergelijk het MAC-adres in de tool met het label op het apparaat voordat u een adres toewijst.
  4. Wijs toe en zet vast - wijs het adres toe en schakel BOOTP/DHCP direct uit (statische modus), in de tool of later via de configuratiesoftware of parameters van het apparaat.
  5. Test na een herstart - onderbreek de voeding en controleer dat het apparaat zijn adres behoudt.
  6. Ruim op - stop de BOOTP-tool en laat geen tijdelijke BOOTP-server actief in het productienetwerk.

🔐 Welke beveiligingsrisico’s heeft BOOTP?

BOOTP is niet versleuteld en kent geen authenticatie: client en server vertrouwen elkaar blind.

  • Malafide server - elk apparaat in het segment kan op een BOOTREQUEST antwoorden. Een aanvaller of verkeerd geconfigureerde laptop kan zo een verkeerd adres, een verkeerde gateway of een ander opstartbestand meegeven. Een Rogue Device met een BOOTP- of DHCP-dienst is daarom een reëel risico.
  • MAC-Spoofing - omdat de server alleen naar het MAC-adres kijkt, kan wie dat adres nabootst het IP-adres van een ander apparaat bemachtigen.
  • Gemanipuleerde Firmware - als het opstartbestand via TFTP wordt geladen, controleert het protocol de integriteit niet. Alleen firmware-ondertekening die het apparaat zelf verifieert, houdt een vervalst bestand tegen.
  • Ongewenste herconfiguratie - een apparaat dat in BOOTP-modus blijft, vraagt na elke herstart opnieuw. Antwoordt dan een andere of malafide server, dan krijgt het een ander adres of geen adres.

Maatregelen die werken:


❓ Veelgestelde vragen

Is BOOTP hetzelfde als DHCP?

BOOTP en DHCP gebruiken hetzelfde berichtformaat en dezelfde UDP-poorten 67 en 68, maar het zijn verschillende protocollen. BOOTP geeft een vast adres op basis van het MAC-adres zonder lease, terwijl DHCP adressen dynamisch uitdeelt met een leasetijd. DHCP is de opvolger van BOOTP en moet volgens RFC 2131 ook BOOTP-clients bedienen.

Welke poorten gebruikt BOOTP?

BOOTP gebruikt UDP-poort 67 voor de server en UDP-poort 68 voor de client. Dit zijn dezelfde poorten als bij DHCP. Een firewall of switch die deze poorten blokkeert, houdt dus zowel BOOTP- als DHCP-verkeer tegen.

Waarom verliest mijn apparaat zijn IP-adres na een herstart?

Een apparaat dat in BOOTP/DHCP-modus staat, vraagt bij elke opstart opnieuw om een adres en verliest vaak zijn eerdere adres bij een spanningsonderbreking. Als er geen BOOTP-server antwoordt, blijft het onbereikbaar. Zet het apparaat na de eerste BOOTP-toewijzing daarom in statische modus.

Werkt BOOTP over routers heen?

BOOTP-verzoeken zijn broadcasts en komen niet voorbij een router. Een relay agent, zoals ip helper-address op een Cisco-router, kan het verzoek wel als unicast naar een BOOTP-server in een ander subnet sturen. RFC 1542 beschrijft hoe zo’n BOOTP-relay werkt.

Is BOOTP veilig in een OT-netwerk?

BOOTP heeft geen authenticatie of versleuteling, waardoor een malafide server of MAC-spoofing verkeerde adressen kan opleveren. In een OT-netwerk is BOOTP aanvaardbaar voor eenmalige inbedrijfstelling in een afgeschermd segment. Daarna hoort BOOTP uitgeschakeld te zijn en beschermen DHCP Snooping en netwerksegmentatie tegen misbruik.

Gebruiken PROFINET-apparaten BOOTP?

PROFINET-apparaten krijgen hun apparaatnaam en IP-adres via het PROFINET-protocol DCP, niet via BOOTP. BOOTP komt vooral voor bij EtherNet/IP-apparaten en bij apparaten van fabrikanten als Rockwell Automation en Phoenix Contact. Sommige apparaten ondersteunen meerdere methoden naast elkaar.


📌 Samengevat

BOOTP is het protocol uit 1985 waarmee een apparaat bij het opstarten op basis van zijn MAC-adres een vast IP-adres en opstartgegevens van een server krijgt. DHCP heeft het in IT vervangen, maar in OT wordt BOOTP nog veel gebruikt om veldapparaten voor het eerst te adresseren. Gebruik het alleen tijdens de inbedrijfstelling in een afgeschermd segment, schakel het daarna uit en bescherm het netwerk met DHCP Snooping en segmentatie.