Ce n'est pas un secret, je suis une triple buse en réseau. Malheureusement, il y a des jours où on est obligé d'ouvrir le capot et de se salir les mains.
Vous aurez aussi remarqué le magnifique design de ce site, exprimant ainsi tout mon art et mon imagination... Du coup, chez moi, la convention de nommage de mes machines était du même ordre... moche et incohérante.
Ajoutons à cela mon manque total de compétence sur la philosophie des noms de domaines et compagnie.
Il fallait vraiment faire quelque chose.
Sauf que voilà, ça fait maintenant 1 an que je me trimbale avec une conf moisie, et même si je n'ai que quelques VM sous mon évier, j'ai un peu beaucoup la flemme de repasser sur l'ensemble de mes machines (pour l'instant, mais puppet ou cfengine me font de l'oeil depuis quelques temps...). Il me fallait donc concerver une certaine retro-compatibilité. Autre détail, cette saloperie de livebox répond sur le port 80 avec sa propre interface, je ne peux donc pas attaquer mes machines depuis des DNS externes, ce qui m'oblige à surcharger ces derniers dans mon DNS local.
Je ne vous expliquerai pas comment configurer son DNS ce soir (flemme, toussa). Par contre, ces changements ont été pour moi l'occasion de me plonger un peu plus dans les méandres de mon serveur DHCP, le dnsmasq présent sur mon dd-wrt.
La particularité de mon architecture, c'est que mon dd-wrt ne sert que de serveur DHCP sur mon réseau privé, mais sert de serveur DHCP et de routeur pour mon réseau hotspot. Du coup, en lisant le man (ça m'arrive parfois), je suis tombé sur quelques options sexy que je vais vous livrer par la suite.
Pourquoi c'est si "tordu" chez moi ? Parce que comme dit plus haut, je suis une quiche en réseau, alors plutôt que de m'encombrer avec une configuration DHCP pompée sur internet, j'ai choisi la solution de simplicité avec les outils fournis par dd-wrt qui juste marchent et qui sont d'une simplicité enfantine à utiliser (pour ceux qui ne le savent pas, j'ai 12 ans et je passe mon brevet l'année prochaine, et oui, j'ai un peu d'avance).
Mais pourquoi ne pas router le réseau privé également ? "malheureusement", mon Linksys n'est qu'en 100Mb/s alors que mes machines de bureau sont en 1Gb/s. J'ai donc un "backbone" en Gb reliant mes machines à mon serveur.
Donc en résumé, qu'est ce qu'on veut ?
- Attribuer une adresse IP en fonction de l'interface sur laquelle on est connecté Avertir les clients du réseau privé que le routage ne passe pas par nous Informer nos clients des différents domaines consultables sur le réseau local Indiquer à nos clients quel serveur DNS utiliser
Pour cela, on se rend sur l'interface d'administration de dd-wrt, puis sur l'onglet « Services ». Dans le cadre « DNSMasq », on coche « enable DNSMasq » et « disable local DNS »
Puis on ajoute dans le champ « Additional DNSMasq Options » les options suivantes :
dhcp-option=6,10.10.10.3
dhcp-option=3,192.168.0.10
dhcp-option=15,"ziirish.info mendele.ev"
expand-hosts
interface=br1
dhcp-range=br1,192.168.10.100,192.168.10.120,255.255.255.0,1440m
dhcp-option=br1,3,192.168.10.10
Qu'est ce que font ces options ?
D'après le man de DNSMasq et la RFC 2132 , on a :
- dhcp-option=6,10.10.10.3 : défini le serveur DNS à utiliser dhcp-option=3,192.168.0.10 : le routeur par défaut dhcp-option=15,"ziirish.info mendele.ev" : les domaines de recherche (ligne [i]search[/i] dans /etc/resolv.conf) interface=br1 : alias nous permettant d'écrire "br1" à la place de "interface:br1" par la suite dhcp-range=br1,192.168.10.100,192.168.10.120,255.255.255.0,1440m : défini 192.168.10.100 comme première adresse à fournir en DHCP sur l'interface br1, 192.168.10.120 comme dernière adresse à fournir, le masque de sous-réseau ainsi que la durée du bail DHCP dhcp-option=br1,3,192.168.10.10 : le routeur par défaut à utiliser sur l'interface br1 est 192.168.10.10
Et voilà comment on a un réseau convivial qui nous évite de devoir setter des routes à la main ou modifier notre resolv.conf.