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.
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 :
- de lengte van het prefix op één byte ;
- enkel de significante bytes van de bestemming ;
- de vier bytes van het IPv4-adres van de next hop.
Voor 10.20.30.0/24 via 192.168.88.254 :
| Veld | Waarde | Hexadecimaal |
|---|---|---|
| Prefixlengte | /24 | 18 |
| Significante bestemming | 10.20.30 | 0A 14 1E |
| Next hop | 192.168.88.254 | C0 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/24naar192.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
| Symptoom | Waarschijnlijke oorzaak | Controle |
|---|---|---|
| Geen nieuwe route | Oude lease, optie niet verzonden of incompatibele client | Vernieuwen, de DHCP ACK capturen en force=yes testen |
| Internet verdwijnt | Route 0.0.0.0/0 afwezig in optie 121 | 00 C0 A8 58 01 toevoegen aan de waarde |
| Windows negeert de route | Versie of beleid dat code 249 gebruikt | Dezelfde payload testen in 249 op een pilot-VLAN |
| De eerste hop antwoordt, de site niet | Forward, firewall of retourroute ontbreekt | Traceren in beide richtingen en de tellers inspecteren |
Het verkeer gaat nog steeds via .1 | Route ontbreekt, verkeerde metriek of prefix | Prefixlengtes en de effectieve tabel vergelijken |
| Enkel sommige apparaten falen | Onvolledige DHCP-ondersteuning of prioritaire VPN | De capture en de tabel van twee clients vergelijken |
| Het externe netwerk ziet slechts één IP | NAT nog actief op de tweede router | srcnat 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.
Discussie
Reacties
Nog geen reacties. U kunt de discussie openen met een vraag of uw eigen ervaring.