Auteur Sujet: [Résolu] Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?  (Lu 829 fois)

0 Membres et 1 Invité sur ce sujet

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 425
Bonjour !

Je voudrais substituer le serveur DHCPv4 dnsmaq par celui de odhcpd afin de simplifier ma configuration. Mais la documentation odhcpd ne me paraît pas très exhaustive.
C'est pas facile pour moi de comprendre les sources de odhcpd. Il y a une multitude de pointeurs et de structures. Je ne pensais pas que le code était aussi complexe. Si
quelqu'un de plus avancé pouvait indiquer les options actuellement supportées par odhcpd, ce serait un gain de temps formidable.

Le projet OpenWrt a mis en ligne un outil pour rechercher les identificateurs.

Je demande à tout hasard.
« Modifié: 23 septembre 2024 à 12:26:11 par basilix »

Mjules

  • Abonné Orange Fibre
  • *
  • Messages: 32
  • Amiens (80)
Quelles sont les options supportées par le démon DHCPv4 OpenWrt ?
« Réponse #1 le: 21 septembre 2024 à 12:09:40 »
https://git.openwrt.org/?p=project/odhcpd.git;a=blob;f=src/dhcpv4.h;h=b378bc17165f65f44fa8eb48690f74240e64a10f;hb=HEAD

  41 enum dhcpv4_opt {
  42         DHCPV4_OPT_PAD = 0,
  43         DHCPV4_OPT_NETMASK = 1,
  44         DHCPV4_OPT_ROUTER = 3,
  45         DHCPV4_OPT_DNSSERVER = 6,
  46         DHCPV4_OPT_DOMAIN = 15,
  47         DHCPV4_OPT_MTU = 26,
  48         DHCPV4_OPT_BROADCAST = 28,
  49         DHCPV4_OPT_NTPSERVER = 42,
  50         DHCPV4_OPT_LEASETIME = 51,
  51         DHCPV4_OPT_MESSAGE = 53,
  52         DHCPV4_OPT_SERVERID = 54,
  53         DHCPV4_OPT_REQOPTS = 55,
  54         DHCPV4_OPT_RENEW = 58,
  55         DHCPV4_OPT_REBIND = 59,
  56         DHCPV4_OPT_IPADDRESS = 50,
  57         DHCPV4_OPT_HOSTNAME = 12,
  58         DHCPV4_OPT_REQUEST = 17,
  59         DHCPV4_OPT_USER_CLASS = 77,
  60         DHCPV4_OPT_AUTHENTICATION = 90,
  61         DHCPV4_OPT_SEARCH_DOMAIN = 119,
  62         DHCPV4_OPT_FORCERENEW_NONCE_CAPABLE = 145,
  63         DHCPV4_OPT_END = 255,
  64 };

??

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 425
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #2 le: 21 septembre 2024 à 13:01:05 »
Je l'avais déjà trouvé.

On a une succession d'appels de fonction qui y mène : dhcpv4_setup_interfacehandle_dhcpv4dhcpv4_handle_msgdhcpv4_put.

Cela n'explique pas comment l'option est intégrée dans le logiciel (son rôle) ou sous quelle forme elle apparaît dans la configuration.

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 425
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #3 le: 21 septembre 2024 à 15:10:50 »
On affecte un pointeur sur la fonction handle_dhcpv4 dans notre structure de type odhcpd_event. Le champ handle_dgram (odhcpd.h) est un pointeur sur une fonction ; il contient l'adresse de handle_dhcpv4.

iface->dhcpv4_event.handle_dgram = handle_dhcpv4;
iface est un pointeur sur une structure de type interface (odhpcd.h). Cette structure définit aussi des « paramètres » relatifs à IPv6 (RA, NDP, DHCPv6).

Je suppose que handle_dgram est l'abréviation de « handle datagram ». Ci-dessous le prototype de la fonction handle_dhcpv4.

static void handle_dhcpv4(void *addr, void *data, size_t len,
                struct interface *iface, void *dest_addr);

D'ailleurs, je ne comprends pas quand la fonction est invoquée. Le pointeur iface semble être transmis d'appel en appel de fonctions.

dhcpv4_setup_interfacedhcpv4_netevent_cb. La fonction dhcpv4_netevent_cb est accessible via le champ dhcpv4_netevent_handler.cb.

La fonction netlink_add_netevent_handler prend comme argument l'adresse de la structure dhcpv4_netevent_handler. Cette fonction est elle-même invoquée par la fonction dhcpv4_init.

int netlink_add_netevent_handler(struct netevent_handler *handler)
{
         if (!handler->cb)
                 return -1;
 
         list_add(&handler->head, &netevent_handler_list);
 
         return 0;
}

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 425
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #4 le: 22 septembre 2024 à 09:16:04 »
Le support des options DHCPv4 semble être codé dans les sources. En recherchant dans le journal d'archivage (commit), par exemple, on peut découvrir la façon dont a été ajouté l'option « router ».
J'aurais eu bien aimé qu'il suffise juste d'indiquer l'option dans le fichier de configuration /etc/config/dhcp. Que cela aurait été simple !

Optix

  • AS41114 - Expert OrneTHD
  • Abonné Orne THD
  • *
  • Messages: 4 868
  • WOOHOO !
    • OrneTHD
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #5 le: 22 septembre 2024 à 11:04:25 »
Hum juste pour ton info, parce que je vois que tu t'éclates la tête pour pas grand chose, il faut vraiment que tu essayes ChatGPT (4o par ex) ou équivalent.

Il prend des fichiers, donc tu lui fais avaler le ZIP du code source, il va analyser le code et te donner tout le cheminement, les lignes associées par rapport à tes questions.

fansat70

  • Abonné Free fibre
  • *
  • Messages: 5 203
  • 70 - St Loup-sur-Semouse
    • Carte ZANRO/ZASRO-PM Haute Saône
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #6 le: 22 septembre 2024 à 11:47:03 »
Hum juste pour ton info, parce que je vois que tu t'éclates la tête pour pas grand chose, il faut vraiment que tu essayes ChatGPT (4o par ex) ou équivalent.

Il prend des fichiers, donc tu lui fais avaler le ZIP du code source, il va analyser le code et te donner tout le cheminement, les lignes associées par rapport à tes questions.
[Humour]
Et le jour où ChatGPT fera directement du retro-engeenering...  ;)
[/Humour]

Optix

  • AS41114 - Expert OrneTHD
  • Abonné Orne THD
  • *
  • Messages: 4 868
  • WOOHOO !
    • OrneTHD
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #7 le: 22 septembre 2024 à 12:04:12 »
[Humour]
Et le jour où ChatGPT fera directement du retro-engeenering...  ;)
[/Humour]

Sans déconner, essaye. Balance-lui un binaire et pose tes questions ;)

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 425
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #8 le: 22 septembre 2024 à 13:46:03 »
@optix :

Ce n'est pas vraiment amusant, c'est certain. D'un autre côté, le code est forcément structuré. À chacun sa méthode.

fansat70

  • Abonné Free fibre
  • *
  • Messages: 5 203
  • 70 - St Loup-sur-Semouse
    • Carte ZANRO/ZASRO-PM Haute Saône
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #9 le: 22 septembre 2024 à 14:15:32 »
Sans déconner, essaye. Balance-lui un binaire et pose tes questions ;)
Suis en retard d'une guerre!  (ou de plusieurs, on ne sait plus les compter!) ;D

ppn_sd

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 206
  • FLG (28190)
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #10 le: 22 septembre 2024 à 17:58:48 »
Je ne comprends pas ce que tu veux. Plus que ça ? : https://openwrt.org/docs/techref/odhcpd

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 425
Quelles sont les options supportées par le démon DHCP(v4) OpenWrt ?
« Réponse #11 le: 23 septembre 2024 à 07:37:00 »
@ppn_sd :

En effet, je m'aperçois que mon message n'était pas clair.

Le serveur DHCPv4 implémenté dans odhcpd supporte quelques options DHCPv4. Je ne maîtrise pas encore le langage C mais j'essaye de progresser.
Dans un premier temps, j'ai recherché certaines chaînes de caractères (motifs) dans les sources pour voir un peu comment les options étaient intégré.
J'ai trouvé des références à l'option « authentication » ainsi qu'à d'autres options ne figurant pas dans la liste des options de la documentation odhcpd.
J'ai cru (à tord) que ces options étaient supporté par odhcpd et que la documentation était, de fait, incomplète.

Mais mon idée initiale était d'essayer d'implémenter les options DHCPv4 manquantes dans odhcpd afin de faire fonctionner la téléphonie Orange. Mon
routeur OpenWrt de substitution devrait idéalement configurer la Livebox par le serveur DHCPv4 de odhcpd. Apparemment, j'aurais moins de difficulté
à intégrer le résolveur DNS unbound en n'utilisant que odhcpd (DHCPv4 + DHCPv6...). Dans l'image usine, le serveur DHCPv4 est dnsmasq et l'on a
pas de résolveur DNS récursif. De plus, mon système OpenWrt semble plutôt instable. Je cherche à mieux connaître le fonctionnement du système afin
de pouvoir déboguer. On demande systématiquement de publier sa configuration lors d'un problème, sur le forum OpenWrt, et cela ne me convient plus.