DHCP
Ressources utiles:
- recap code d'option: https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml
- recap code d'option dnsmasq: https://github.com/imp/dnsmasq/blob/770bce967cfc9967273d0acfb3ea018fb7b17522/src/dhcp-common.c
- recap code d'option isc-dhcp-server: man dhcp-options
Tester un serveur DHCP
- test simple, comme un client standard:
dhclient -d -1 -pf /dev/null -lf /dev/null -sf /usr/bin/env <interface>
- test en changeant les options demandée:
- d'abord créer un fichier de conf basé sur
/etc/dhcp/dhclient.conf
- puis lancer
dhclient -d -1 -pf /dev/null -lf /dev/null -sf /usr/bin/env -cf <mon_dhclient.conf> <interface>
Exemple de fichier dhclient.conf:
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8; # definition d'une encapsulation option space Connexio-all; option Connexio-all.contact-rcs code 3 = boolean; option Connexio-all.cfg-server-address code 2 = string; # redefinition de vendor-encapsulated-options avec celle definit ci dessus option vendor-encapsulated-options code 43 = encapsulate Connexio-all; option vlan-id code 132 = unsigned integer 16; send host-name = gethostname(); # se faire passer pour un telephone VoIP send vendor-class-identifier = "AastraIPPhone"; # soit ne rien demander de particulier (request;) #request; # soit demander specifiquement les options suivantes (les options non demandees risque d'etre ignoree par le serveur) request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers, vlan-id, vendor-encapsulated-options; # pour alleger l'appel a dhclient (on peut enlever le -sf /usr/bin/env si on definit la ligne suivante) script "/usr/bin/env";
Config dnsmasq
- reconnaitre les hotes:
- sur l'adresse mac:
dhcp-mac=set:ip_phone,00:08:5d:*:*:*
- sur la vendor-class:
dhcp-vendorclass=set:ip_phone,AastraIPPhone
- appliquer une option dhcp en fonction d'une etiquette:
- avec le numero:
dhcp-option=tag:ip_phone,132,103
- avec le nom de l'option:
dhcp-option=tag:ip_phone,option:tftp-server,1.2.3.4
- options encapsulées:
- cas particulier de l'option 43
vendor-encapsulated-options
:dhcp-option=vendor:AastraIPPhone,3,0
→ option 43, sous option 3 valeur 0 seulement pour les client avec unvendorclass
(option 60) contenant la chaine “AastraIPPhone” - cas générique:
dhcp-option=encap:43,3,0
→ option 43, sous option 3, valeur 0 pour tout le monde (on peut preciser une autre option que 43) - cas generique + tag: equivalent de
vendor:
:dhcp-option=tag:ip_phone,encap:43,3,0
→ meme chose qu'au dessus mais seulement pour les tagip_phone
c'est a dire ceux dont levendroclass
contient “AastraIPPhone”
Demander une délégation IPv6 de préfixe en DHCPv6 PD
Le cas général sous Debian
Ça marche assez mal avec les Livebox et certains autres routeurs. Voir cet article de ~xor sur le sujet.
Tout est documenté ici sur le wiki Debian.
Avec le client DHCPv6 «Dibbler»
Dans certains cas, on pas envie de voir resolvconf
installé avec dibbler-client
. Vérifier éventuellement que ce n’est pas le cas.
- Installer sur le routeur qui a besoin d’obtenir une délégation le logiciel dibbler-client : Sous Debian, utiliser la commande
apt install dibbler-client
- Mettre une configuration similaire à celle là (en adaptant au besoin) :
Niveau de log : info log-level 7 # Interface descendante à configurer downlink-prefix-ifaces lan iface wan { # Demande de préfixe (PD) pd { # Une semaine t1 864000 # Deux semaines t2 1209600 } }