Bonjour,

Le 07/11/2019 à 15:51, Michel Py a écrit :
> Le truc qui me chiffonne avec RFC3442, c'est comment mettre 2 routes.
> 
> Destination 1 : 192.168.37.0/24  passerelle 192.168.248.251
> Destination 2 : 172.16.0.0/12    passerelle 192.168.248.251
> 
> Avec M$, la valeur de l'option est 24 192 168 37 192 168 248 251 12 172 16 
> 192 168 248 251
> 
> Quand je lis RFC3442, je ne vois pas ou mettre le "12". Dans Destination 2, 
> il n'y a pas de "Len", pas de "n", ce qui laisserait supposer que n est la 
> même valeur pour toutes les destinations. Tu mettrais quoi comme valeur, en 
> se basant sur RFC3442 ?
> 
>     Code  Len  Destination 1    Router 1
>    +-----+---+----+-----+----+----+----+----+----+
>    | 121 | n | d1 | ... | dN | r1 | r2 | r3 | r4 |
>    +-----+---+----+-----+----+----+----+----+----+
> 
>     Destination 2       Router 2
>    +----+-----+----+----+----+----+----+
>    | d1 | ... | dN | r1 | r2 | r3 | r4 |
>    +----+-----+----+----+----+----+----+
> 
>    In the above example, two static routes are specified.

La longueur n n'est pas associée au premier préfixe, c'est la longueur
totale de l'option (hors champs code et longueur), ça donc correspond à
la longueur de destination1+router1+destination2+router2...

Chaque destination est codée avec un premier octet longueur de préfixe,
suivi par 0 à 4 octets pour les octets significatifs du préfixe.

Par exemple :
24 192 168 37 192 168 248 251 12 172 16 192 168 248 251

- 24 192 168 37 192 168 248 251
La longueur du préfixe est 24, il y a donc 3 octets significatifs pour
le préfixe, donc 192 168 37 -> 192.168.37.0/24
Destination1 : 24 192 168 37

- 12 172 16 192 168 248 251
La longueur du préfixe est 12, il y a donc 2 octets significatifs pour
le préfixe, donc 172 16 -> 172.16.0.0/12
Destination2 : 12 172 16

Le soft du destinataire analyse le premier octet de l'option (taille du
préfixe), il en déduit sur combien d'octets est codé le préfixe. Ensuite
il trouve les 4 octets du routeur. Et il recommence jusqu'à ce qu'il ait
traité n octets.

Le RFC indique que la taille n minimale est de 5 octets, ça correspond à :
1 octet taille de préfixe de valeur 0, aucun octet significatif pour le
préfixe (0.0.0.0/0), 4 octets pour le routeur

C'est le même codage pour l'option RFC3442 et celle de M$ :
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dhcpe/f9c19c79-1c7f-4746-b555-0c0fc523f3f9

La note indique que :
"Windows XP and Windows Server 2003 DHCPv4 clients and servers use
Option Code 249 for requesting and sending Classless Static Routes
(CSRs) instead of Option Code 121, as specified in [RFC3442]. These
clients and servers ignore Option 121 if included in a DHCPv4 message.
Otherwise, Windows DHCPv4 clients use both Option 121 and Option 249."

Patrick.


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

Répondre à