Distribuer une route statique par DHCP avec MikroTik RouterOS
Annoncer une route IPv4 aux clients avec l’option DHCP 121, encoder correctement le préfixe et le prochain saut, préserver la route par défaut et tester Windows, Linux et macOS.
Un poste du réseau local doit parfois atteindre un second sous-réseau par un routeur qui n’est pas sa passerelle Internet. Ajouter la route à la main sur chaque ordinateur fonctionne, mais la configuration devient vite incohérente : nouveau poste oublié, portable réinstallé, route ancienne conservée ou passerelle modifiée sans que tous les clients soient corrigés.
DHCPv4 sait distribuer cette information en même temps que l’adresse IP, le DNS et la passerelle. L’option 121, nommée Classless Static Route, transporte une ou plusieurs destinations CIDR avec leur prochain saut. RouterOS 7 permet de construire la valeur binaire, de l’associer à un réseau DHCP et, si nécessaire, de fournir aussi l’option Microsoft 249.
Scénario utilisé dans ce guide
Le réseau principal est 192.168.88.0/24. Le MikroTik 192.168.88.1 fournit l’accès Internet et le DHCP. Un second routeur, joignable directement à l’adresse 192.168.88.254, dessert le site distant 10.20.30.0/24.
10.20.30.0/24 via 192.168.88.254, tandis que la route par défaut reste dirigée vers 192.168.88.1.Le but est d’éviter le détour par la passerelle principale pour le trafic intersites. DHCP ne transforme toutefois pas un équipement en routeur : le prochain saut doit être dans un sous-réseau directement accessible au client, le routage IP doit être actif sur ce prochain saut et le chemin retour doit connaître 192.168.88.0/24.
1. Vérifier le routage avant de toucher au DHCP
Travaillez depuis le LAN, activez le Safe Mode avec Ctrl+X et exportez la configuration. Les commandes suivantes permettent d’identifier le réseau DHCP et de contrôler la joignabilité du second routeur.
/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
Ajoutez provisoirement la route au MikroTik uniquement pour tester le trajet et le retour. Si la route existe déjà, ne créez pas de doublon.
/ip route add dst-address=10.20.30.0/24 \
gateway=192.168.88.254 \
comment="Test site distant"
/ping 10.20.30.1 count=4
/tool traceroute 10.20.30.1
Une réponse du prochain saut, mais aucune réponse du site distant, indique généralement un problème de transfert, de pare-feu ou de route retour. Corrigez-le avant de distribuer la route aux postes. Sinon, vous ne ferez qu’automatiser une configuration incomplète.
2. Comprendre l’encodage de l’option 121
Chaque route contient trois éléments successifs :
- la longueur du préfixe sur un octet ;
- seulement les octets significatifs de la destination ;
- les quatre octets de l’adresse IPv4 du prochain saut.
Pour 10.20.30.0/24 via 192.168.88.254 :
| Champ | Valeur | Hexadécimal |
|---|---|---|
| Longueur du préfixe | /24 | 18 |
| Destination significative | 10.20.30 | 0A 14 1E |
| Prochain saut | 192.168.88.254 | C0 A8 58 FE |
Le dernier octet de 10.20.30.0 n’est pas transmis pour un préfixe /24. La première route devient donc :
18 0A 14 1E C0 A8 58 FE
La route par défaut 0.0.0.0/0 via 192.168.88.1 ne contient aucun octet de destination : elle commence par 00, suivi immédiatement des quatre octets de la passerelle.
00 C0 A8 58 01
En concaténant les deux routes sans espaces ni deux-points, la valeur complète est :
0x180A141EC0A858FE00C0A85801
3. Créer l’option standard 121
RouterOS accepte directement une chaîne brute précédée de 0x. Le paramètre force=yes, disponible dans RouterOS 7 depuis la branche 7.1, envoie l’option même si le client ne l’a pas placée dans sa liste de paramètres demandés.
/ip dhcp-server option
add name=route-site-distant-121 code=121 force=yes \
value=0x180A141EC0A858FE00C0A85801
Pour un parc homogène et récent, commencez avec la seule option 121. Elle est normalisée et remplace l’ancienne option classful 33, qui ne sait pas représenter proprement tous les préfixes CIDR.
4. Ajouter l’option Microsoft 249 si le parc l’exige
Microsoft documente l’option 249 avec exactement le même format que l’option 121. Elle subsiste pour la compatibilité de clients Windows et d’environnements historiques. Elle n’est pas un second encodage : la même séquence binaire est utilisée.
/ip dhcp-server option
add name=route-site-distant-249 code=249 force=yes \
value=0x180A141EC0A858FE00C0A85801
Ne la déployez pas mécaniquement sur tous les réseaux. Microsoft précise qu’un serveur recevant une demande pour les options 121 et 249 devrait répondre avec la 121 seulement. RouterOS peut être configuré pour forcer les deux ; cette stratégie doit donc être validée sur les versions Windows réellement présentes. Si tous les postes installent correctement la route avec 121, la 249 n’apporte rien.
5. Associer les options au réseau DHCP
Avec uniquement l’option standard, associez-la directement au réseau concerné.
/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"
Si le parc de test a réellement besoin des deux codes, regroupez-les dans un jeu d’options. Vérifiez d’abord qu’un autre jeu n’est pas déjà associé au réseau : le remplacer sans inventaire pourrait faire disparaître des paramètres PXE, VoIP ou contrôleur Wi-Fi.
/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
Les options peuvent aussi être attribuées au niveau du serveur ou d’un bail précis. RouterOS applique une priorité allant de RADIUS au bail, puis au serveur et enfin au réseau. Pour une route commune à tout un sous-réseau, le niveau network est le plus lisible.
6. Renouveler le bail sans perdre l’accès d’administration
Une option ajoutée au serveur n’est pas poussée instantanément à tous les appareils. Le client la reçoit au prochain échange DHCP. Sur un poste local, désactivez puis réactivez l’interface, ou renouvelez son bail.
# Windows — dans un terminal administrateur local
ipconfig /release
ipconfig /renew
# Linux avec NetworkManager
nmcli connection down "LAN"
nmcli connection up "LAN"
# macOS — remplacer en0 si nécessaire
sudo ipconfig set en0 DHCP
N’exécutez pas une libération DHCP à travers la connexion distante que vous utilisez pour administrer le poste : la session sera interrompue. Sur un serveur critique, attendez le renouvellement normal ou prévoyez une console indépendante.
7. Vérifier la route sur chaque famille de clients
La présence d’un bail ne prouve pas que le système a accepté l’option. Contrôlez la table de routage et le prochain saut réellement choisi.
# 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
Le résultat attendu est 192.168.88.254 pour une destination 10.20.30.x et 192.168.88.1 pour Internet. Testez les deux chemins. Une route distante correcte accompagnée d’une panne Internet signale presque toujours que la route par défaut a été oubliée dans l’option 121.
Sur RouterOS, inspectez les baux et capturez l’échange si un poste ignore la configuration.
/ip dhcp-server lease print detail
/tool sniffer quick interface=bridge \
ip-protocol=udp port=67,68
/log print where topics~"dhcp"
Dans Wireshark, ouvrez le DHCP ACK et développez les options 121 ou 249. La capture permet de distinguer une valeur mal encodée, une option non envoyée et un client qui la reçoit mais refuse de l’installer.
8. NAT, pare-feu et chemin retour
Pour une communication routée entre les deux réseaux, le second routeur ne doit normalement pas masquer le trafic venant de 192.168.88.0/24. Il doit connaître ce réseau comme directement connecté ou disposer d’une route retour vers lui. Les pare-feu des deux routeurs doivent ensuite autoriser uniquement les flux nécessaires.
Vérifiez notamment :
- le transfert IPv4 sur le routeur
192.168.88.254; - une route retour de
10.20.30.0/24vers192.168.88.0/24; - l’absence d’une règle
srcnat masqueradetrop générale entre les deux LAN ; - les règles
forwarddans les deux sens et les politiques locales des hôtes ; - un MTU cohérent si le site distant traverse un tunnel.
Conservez le NAT à la frontière Internet, mais évitez-le entre réseaux internes lorsqu’un vrai routage est possible. Le routage préserve les adresses sources, simplifie les journaux et permet des règles de sécurité précises.
9. Sécurité et limites
Une route obtenue par DHCP est une instruction de contrôle réseau. Un serveur DHCP pirate peut détourner le trafic vers un prochain saut hostile. Isolez les ports non fiables, activez DHCP snooping sur les commutateurs administrables, limitez les serveurs autorisés et surveillez les offres DHCP inattendues.
L’option 121 concerne uniquement IPv4. IPv6 utilise d’autres mécanismes, principalement les Router Advertisements et, selon l’architecture, un protocole de routage ou une configuration gérée. Ne transposez pas la chaîne hexadécimale à DHCPv6.
Enfin, tous les clients n’appliquent pas les routes reçues de la même manière. Un VPN, un agent de sécurité, un profil MDM ou une pile réseau embarquée peut ajouter une route plus spécifique, une priorité différente ou ignorer l’option. Déployez d’abord sur un VLAN de test représentatif.
Dépannage
| Symptôme | Cause probable | Vérification |
|---|---|---|
| Aucune route nouvelle | Ancien bail, option non envoyée ou client incompatible | Renouveler, capturer le DHCP ACK et tester force=yes |
| Internet disparaît | Route 0.0.0.0/0 absente de l’option 121 | Ajouter 00 C0 A8 58 01 à la valeur |
| Windows ignore la route | Version ou politique utilisant le code 249 | Tester le même payload en 249 sur un VLAN pilote |
| Le premier saut répond, pas le site | Forward, pare-feu ou route retour manquante | Tracer dans les deux sens et inspecter les compteurs |
Le trafic passe encore par .1 | Route absente, métrique ou préfixe incorrect | Comparer les longueurs de préfixe et la table effective |
| Certains appareils seulement échouent | Support DHCP incomplet ou VPN prioritaire | Comparer la capture et la table de deux clients |
| Le réseau distant voit une seule IP | NAT encore actif sur le second routeur | Auditer srcnat et créer une exclusion inter-LAN |
Retour arrière
Retirez l’association du réseau avant de supprimer les objets. Les clients conserveront la route jusqu’au renouvellement ou à l’expiration de leur bail ; renouvelez ensuite un poste pilote et confirmez le retour à la table précédente.
/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"]
Rétablissez les options qui existaient avant le guide si le réseau utilisait déjà un jeu personnalisé. Supprimez la route de test du MikroTik uniquement si elle avait été créée pour cette procédure.
/ip route remove [find where comment="Test site distant"]
Conclusion
L’option DHCP 121 évite de maintenir manuellement la même route sur chaque poste. La configuration fiable repose sur quatre points : un prochain saut directement joignable, un chemin retour valide, un encodage CIDR exact et la route par défaut incluse dans le payload.
L’option 249 reste un outil de compatibilité, pas un remplacement systématique de la 121. Testez le comportement réel des clients, observez le DHCP ACK et la table de routage, puis étendez le déploiement progressivement. Une route distribuée n’est utile que si elle est à la fois reçue, installée et réversible.
Discussion
Commentaires
Aucun commentaire pour le moment. Vous pouvez ouvrir la discussion avec une question ou un retour d’expérience.