Netwerken en automatisering 16 min. leestijd

Een statische route distribueren via DHCP met MikroTik RouterOS

Een IPv4-route aankondigen bij de clients met DHCP-optie 121, het voorvoegsel en de volgende hop correct encoderen, de standaardroute behouden en Windows, Linux en macOS testen.

Een werkstation in het lokale netwerk moet soms een tweede subnet bereiken via een router die niet zijn internetgateway is. De route handmatig toevoegen op elke computer werkt, maar de configuratie wordt snel inconsistent : een nieuw werkstation vergeten, een herïnstalleerde laptop, een oude route behouden of een gateway gewijzigd zonder dat alle clients werden gecorrigeerd.

DHCPv4 kan deze informatie tegelijkertijd met het IP-adres, de DNS en de gateway distribueren. De optie 121, genaamd Classless Static Route, transporteert een of meerdere CIDR-bestemmingen met hun next hop. RouterOS 7 maakt het mogelijk om de binaire waarde te construeren, deze te koppelen aan een DHCP-netwerk en, indien nodig, ook de Microsoft-optie 249 te leveren.

Scenario gebruikt in deze gids

Het hoofdnetwerk is 192.168.88.0/24. De MikroTik 192.168.88.1 levert internettoegang en de DHCP. Een tweede router, direct bereikbaar op adres 192.168.88.254, bedient de externe site 10.20.30.0/24.

Schema van een client die via DHCP zijn standaardroute en een directe route naar een externe site ontvangt
Optie 121 voegt het pad 10.20.30.0/24 via 192.168.88.254 toe, terwijl de standaardroute gericht blijft op 192.168.88.1.

Het doel is de omweg via de hoofdgateway voor intersite-verkeer te vermijden. DHCP transformeert een apparaat echter niet in een router : de next hop moet zich in een subnet bevinden dat direct toegankelijk is voor de client, IP-routering moet actief zijn op deze next hop en het retourpad moet 192.168.88.0/24 kennen.

1. De routering controleren voordat u de DHCP aanpast

Werk vanuit het LAN, activeer de Safe Mode met Ctrl+X en exporteer de configuratie. Met de volgende opdrachten kunt u het DHCP-netwerk identificeren en de bereikbaarheid van de tweede router controleren.

/export file=avant-route-dhcp
/system backup save name=avant-route-dhcp
/ip address print
/ip dhcp-server print detail
/ip dhcp-server network print detail
/ping 192.168.88.254 count=4

Voeg de route tijdelijk toe aan de MikroTik enkel om het pad en de terugkeer te testen. Als de route al bestaat, maak dan geen duplicaat aan.

/ip route add dst-address=10.20.30.0/24 \
    gateway=192.168.88.254 \
    comment="Test externe site"
/ping 10.20.30.1 count=4
/tool traceroute 10.20.30.1

Een antwoord van de next hop, maar geen antwoord van de externe site, wijst over het algemeen op een probleem met doorsturen, firewall of retourroute. Corrigeer dit voordat u de route naar de werkstations distribueert. Anders automatiseert u slechts een onvolledige configuratie.

2. De codering van optie 121 begrijpen

Elke route bevat drie opeenvolgende elementen :

  1. de lengte van het prefix op één byte ;
  2. enkel de significante bytes van de bestemming ;
  3. de vier bytes van het IPv4-adres van de next hop.

Voor 10.20.30.0/24 via 192.168.88.254 :

VeldWaardeHexadecimaal
Prefixlengte/2418
Significante bestemming10.20.300A 14 1E
Next hop192.168.88.254C0 A8 58 FE

De laatste byte van 10.20.30.0 wordt niet verzonden voor een prefix /24. De eerste route wordt dus :

18 0A 14 1E C0 A8 58 FE

De standaardroute 0.0.0.0/0 via 192.168.88.1 bevat geen enkele byte van de bestemming : ze begint met 00, onmiddellijk gevolgd door de vier bytes van de gateway.

00 C0 A8 58 01

Door de twee routes samen te voegen zonder spaties of dubbele punten, is de volledige waarde :

0x180A141EC0A858FE00C0A85801

3. De standaardoptie 121 aanmaken

RouterOS accepteert direct een ruwe tekenreeks voorafgegaan door 0x. De parameter force=yes, beschikbaar in RouterOS 7 sinds branch 7.1, stuurt de optie zelfs als de client deze niet in zijn lijst met gevraagde parameters heeft geplaatst.

/ip dhcp-server option
add name=route-site-distant-121 code=121 force=yes \
    value=0x180A141EC0A858FE00C0A85801

Voor een homogeen en recent park, begin met enkel optie 121. Ze is gestandaardiseerd en vervangt de oude classful optie 33, die niet alle CIDR-prefixen correct kan weergeven.

4. De Microsoft-optie 249 toevoegen als het park dit vereist

Microsoft documenteert optie 249 met exact hetzelfde formaat als optie 121. Ze blijft bestaan voor de compatibiliteit van Windows-clients en historische omgevingen. Het is geen tweede codering : dezelfde binaire sequentie wordt gebruikt.

/ip dhcp-server option
add name=route-site-distant-249 code=249 force=yes \
    value=0x180A141EC0A858FE00C0A85801

Implementeer ze niet mechanisch op alle netwerken. Microsoft specificeert dat een server die een aanvraag ontvangt voor de opties 121 en 249, zou moeten antwoorden met enkel 121. RouterOS kan geconfigureerd worden om beide af te dwingen ; deze strategie moet dus gevalideerd worden op de daadwerkelijk aanwezige Windows-versies. Als alle werkstations de route correct installeren met 121, brengt 249 niets bij.

5. De opties koppelen aan het DHCP-netwerk

Met uitsluitend de standaardoptie, koppel deze direct aan het betreffende netwerk.

/ip dhcp-server network
set [find where address="192.168.88.0/24"] \
    dhcp-option=route-site-distant-121
/ip dhcp-server network print detail \
    where address="192.168.88.0/24"

Als het testpark daadwerkelijk beide codes nodig heeft, groepeer ze dan in een optieset. Controleer eerst of er niet al een andere set aan het netwerk is gekoppeld : deze vervangen zonder inventarisatie kan PXE-, VoIP- of Wi-Fi-controllerparameters laten verdwijnen.

/ip dhcp-server option sets
add name=routes-lan \
    options=route-site-distant-121,route-site-distant-249

/ip dhcp-server network
set [find where address="192.168.88.0/24"] \
    dhcp-option="" dhcp-option-set=routes-lan

De opties kunnen ook toegewezen worden op serverniveau of voor een specifieke lease. RouterOS past een prioriteit toe gaande van RADIUS naar de lease, dan naar de server en tenslotte naar het netwerk. Voor een route die gemeenschappelijk is voor een heel subnet, is het niveau network het meest leesbaar.

6. De lease vernieuwen zonder de beheerstoegang te verliezen

Een optie die aan de server is toegevoegd, wordt niet onmiddellijk naar alle apparaten gepusht. De client ontvangt ze bij de volgende DHCP-uitwisseling. Schakel op een lokaal werkstation de interface uit en weer in, of vernieuw de lease.

# Windows — in een lokale beheerdersterminal
ipconfig /release
ipconfig /renew

# Linux met NetworkManager
nmcli connection down "LAN"
nmcli connection up "LAN"

# macOS — vervang en0 indien nodig
sudo ipconfig set en0 DHCP

Voer geen DHCP-release uit via de externe verbinding die u gebruikt om het werkstation te beheren : de sessie zal onderbroken worden. Wacht op een kritieke server op de normale vernieuwing of voorzie een onafhankelijke console.

7. De route controleren op elke clientfamilie

De aanwezigheid van een lease bewijst niet dat het systeem de optie heeft geaccepteerd. Controleer de routeringstabel en de next hop die daadwerkelijk werd gekozen.

# Windows
route print 10.20.30.0
tracert -d 10.20.30.10

# Linux
ip route show
ip route get 10.20.30.10
traceroute -n 10.20.30.10

# macOS
netstat -rn -f inet
route -n get 10.20.30.10
traceroute -n 10.20.30.10

Het verwachte resultaat is 192.168.88.254 voor een bestemming 10.20.30.x en 192.168.88.1 voor het internet. Test beide paden. Een correcte externe route vergezeld van een internetstoring wijst bijna altijd op het feit dat de standaardroute in optie 121 vergeten is.

Inspecteer op RouterOS de leases en captureer de uitwisseling als een werkstation de configuratie negeert.

/ip dhcp-server lease print detail
/tool sniffer quick interface=bridge \
    ip-protocol=udp port=67,68
/log print where topics~"dhcp"

Open in Wireshark de DHCP ACK en vouw de opties 121 of 249 uit. De capture maakt het mogelijk om een verkeerd gecodeerde waarde, een niet-verzonden optie en een client die ze ontvangt maar weigert te installeren, te onderscheiden.

8. NAT, firewall en retourpad

Voor gerouteerde communicatie tussen de twee netwerken, mag de tweede router normaal gezien het verkeer afkomstig van 192.168.88.0/24 niet maskeren. Hij moet dit netwerk kennen als direct verbonden of beschikken over een retourroute ernaartoe. De firewalls van beide routers moeten daarna enkel de noodzakelijke flows toelaten.

Controleer in het bijzonder :

  • IPv4-doorsturen op router 192.168.88.254 ;
  • een retourroute van 10.20.30.0/24 naar 192.168.88.0/24 ;
  • de afwezigheid van een te algemene srcnat masquerade-regel tussen de twee LAN's ;
  • de forward-regels in beide richtingen en het lokale beleid van de hosts ;
  • een coherente MTU indien de externe site door een tunnel gaat.

Behoud de NAT aan de internetgrens, maar vermijd ze tussen interne netwerken wanneer echte routering mogelijk is. Routering behoudt de bronadressen, vereenvoudigt de logs en laat precieze beveiligingsregels toe.

9. Beveiliging en limieten

Een route verkregen via DHCP is een netwerkbesturingsinstructie. Een rogue DHCP-server kan het verkeer omleiden naar een vijandige next hop. Isoleer onbetrouwbare poorten, activeer DHCP snooping op beheerbare switches, beperk de geautoriseerde servers en monitor onverwachte DHCP-aanbiedingen.

Optie 121 betreft uitsluitend IPv4. IPv6 gebruikt andere mechanismen, voornamelijk Router Advertisements en, afhankelijk van de architectuur, een routeringsprotocol of een beheerde configuratie. Pas de hexadecimale tekenreeks niet toe op DHCPv6.

Tenslotte passen niet alle clients de ontvangen routes op dezelfde manier toe. Een VPN, een beveiligingsagent, een MDM-profiel of een ingebedde netwerkstack kan een specifiekere route, een andere prioriteit toevoegen of de optie negeren. Implementeer eerst op een representatief test-VLAN.

Probleemoplossing

SymptoomWaarschijnlijke oorzaakControle
Geen nieuwe routeOude lease, optie niet verzonden of incompatibele clientVernieuwen, de DHCP ACK capturen en force=yes testen
Internet verdwijntRoute 0.0.0.0/0 afwezig in optie 12100 C0 A8 58 01 toevoegen aan de waarde
Windows negeert de routeVersie of beleid dat code 249 gebruiktDezelfde payload testen in 249 op een pilot-VLAN
De eerste hop antwoordt, de site nietForward, firewall of retourroute ontbreektTraceren in beide richtingen en de tellers inspecteren
Het verkeer gaat nog steeds via .1Route ontbreekt, verkeerde metriek of prefixPrefixlengtes en de effectieve tabel vergelijken
Enkel sommige apparaten falenOnvolledige DHCP-ondersteuning of prioritaire VPNDe capture en de tabel van twee clients vergelijken
Het externe netwerk ziet slechts één IPNAT nog actief op de tweede routersrcnat auditen en een inter-LAN-uitsluiting aanmaken

Terugdraaien

Verwijder de koppeling met het netwerk voordat u de objecten verwijdert. De clients behouden de route tot de vernieuwing of het verlopen van hun lease ; vernieuw daarna een pilot-werkstation en bevestig de terugkeer naar de vorige tabel.

/ip dhcp-server network
set [find where address="192.168.88.0/24"] \
    dhcp-option="" dhcp-option-set=""

/ip dhcp-server option sets
remove [find where name="routes-lan"]

/ip dhcp-server option
remove [find where name="route-site-distant-121"]
remove [find where name="route-site-distant-249"]

Herstel de opties die bestonden voor de gids als het netwerk al een aangepaste set gebruikte. Verwijder de testroute van de MikroTik enkel als ze voor deze procedure was aangemaakt.

/ip route remove [find where comment="Test externe site"]

Conclusie

Optie DHCP 121 vermijdt het handmatig onderhouden van dezelfde route op elk werkstation. Een betrouwbare configuratie steunt op vier punten : een direct bereikbare next hop, een geldig retourpad, een exacte CIDR-codering en de standaardroute inbegrepen in de payload.

Optie 249 blijft een compatibiliteitstool, geen systematische vervanging van 121. Test het daadwerkelijke gedrag van de clients, observeer de DHCP ACK en de routeringstabel, en breid de implementatie dan geleidelijk uit. Een gedistribueerde route is enkel nuttig als ze tegelijk ontvangen, geïnstalleerd en omkeerbaar is.

Technische referenties

Over de auteur

Jeremy Kraft beheert de infrastructuur en de zelfgehoste diensten van het IBCSC. Deze gidsen beschrijven configuraties die echt zijn uitgerold en voor publicatie opnieuw zijn nagekeken.

Discussie

Reacties

0

Nog geen reacties. U kunt de discussie openen met een vraag of uw eigen ervaring.

Hebt u een account? Aanmelden

Platte tekst, maximaal 2 000 tekens. Nieuwe reacties worden gemodereerd. Uw naam wordt bij de reactie getoond. Er wordt geen e-mailadres gevraagd; alleen een onomkeerbare vingerafdruk van uw IP-adres wordt bewaard tegen spam.