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_phonec'est a dire ceux dont levendroclasscontient “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
}
}