Bonjour Michel,
Bonjour à tous,


Le 06/11/2019 à 20:48, Michel Py a écrit :
Malheureusement je ne connais rien au Checkpoint, mais j'utilise cette option (121) et çà marche impec avec des clients Windows.


On tient la solution. Le CheckPoint transmet bien l'option 121 dans sa réponse DHCPACK. Par conséquent, la route statique est désormais bien acquise par nos stations de travail. Le problème des paquets martiens est résolu.


La difficulté était de découvrir la syntaxe à utiliser sur le CheckPoint, pour y enregistrer cette route statique au format RFC3442.


Exemple:
route statique 192.168.37.0/24
passerelle 192.168.248.251


D'après la RFC3442, la valeur de l'option 121 doit être codée ainsi:

   24 192 168 37 192 168 248 251


L'interface utilisateur web du CheckPoint semble offrir le choix entre deux options, dans la fenêtre "DHCP Custom option":


 - Hex String:

La valeur de l'option 121 doit alors être saisie en hexadecimal ; le CheckPoint ne réalise aucune conversion et transmet les 8 octets en l'état (moins leurs séparateurs) dans le corps du paquet DHCPACK:

   saisi à la main:
   18:C0:A8:25:C0:A8:F8:FB

   envoyé par le CheckPoint:
   18c0a825c0a8f8fb

Dans la saisie manuelle, le séparateur entre les octets est le deux-points, et il n'y a pas de séparateur entre l'adresse de réseau et celle de la passerelle.


 - IP Address Array

La valeur de l'option 121 doit alors être saisie en base 10 classique, et sera convertie par le CheckPoint en octets dans le corps du paquet DHCPACK:

   saisi à la main:
   24.192.168.37,192.168.248.251

   envoyé par le CheckPoint:
   18c0a825c0a8f8fb

Dans la saisie manuelle, le séparateur entre les chiffres est le point et le séparateur entre l'adresse de réseau et celle de la passerelle est la virgule.


Dans tous les cas, le CheckPoint calcule lui-même la longueur de l'option 121 (ici, huit octets, mais ça pourrait différer en fonction du masque de réseau et du nombre de passerelles annoncées). Il ne faut pas la saisir manuellement.


Comme pour l'oeuf de Christophe Colomb, rien de compliqué une fois qu'on sait comment enregistrer ces valeurs dans l'interface du firewall. Le problème, c'est le silence complet de la doc CheckPoint à ce sujet. Le man de dhcpd-options fut mon ami:

https://linux.die.net/man/5/dhcpd-options



Ci-dessous, le DHCPdump qui confirme la présence de l'option 121 dans les paquets DHCPACK émis par le CheckPoint:



OPTION:  57 (  2) Maximum DHCP message size 1500
OPTION:  61 (  7) Client-identifier         01:c8:2a:14:xx:xx:xx
OPTION:  50 (  4) Request IP address        192.168.248.64
OPTION:  51 (  4) IP address leasetime      7776000 (12w6d)
OPTION:  12 ( 15) Host name                 WorkStation
---------------------------------------------------------------------------

  TIME: 2019-11-07 10:12:00.946
IP: 192.168.248.254 (0:1c:7f:xx:xx:xx) > 192.168.248.64 (c8:2a:14:xx:xx:xx)
    OP: 2 (BOOTPREPLY)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 5c407f63
  SECS: 0
 FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 192.168.248.64
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: c8:2a:14:xxx:xx:xx:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         5 (DHCPACK)
OPTION:  54 (  4) Server identifier         192.168.248.254
OPTION:  51 (  4) IP address leasetime      921600 (1w3d16h)
OPTION:   1 (  4) Subnet mask               255.255.255.0
OPTION: 121 (  8) Classless Static Route    18c0a825c0a8f8fb ...%....
OPTION:   3 (  4) Routers                   192.168.248.254
OPTION:   6 (  4) DNS server                192.168.248.254
---------------------------------------------------------------------------



En espérant que ça puisse aider quelqu'un d'autre.


--
Frederic Dumas
f.du...@ellis.siteparc.fr


Frederic Dumas a écrit :
Quelqu'un pourrait-il m'aider à encoder l'annonce d'une route statique
au format RFC3442 dans le "DHCP Custom option" du Checkpoint ?



---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à