====== 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 %%'' * 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 %%'' 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 un ''%%vendorclass%%'' (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 tag ''%%ip_phone%%'' c'est a dire ceux dont le ''%%vendroclass%%'' 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 [[https://x0r.fr/blog/76| cet article de ~xor sur le sujet.]] Tout est documenté [[https://wiki.debian.org/IPv6PrefixDelegation|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 } }