Bonjour la liste,

Je ne sais pas si c'est tout à fait l'endroit, mais je me lance : Je me
casse les dents sur un petit soucis de config de PF en IPv6.

Le but est de router les paquets sur deux passerelles différentes en
fonction de leur classification : "TOS" en IPv4 et "Traffic class" en IPv6.

En IPv4 cela fonctionne parfaitement avec les deux règles suivantes :

pass in quick on $int_if inet proto tcp from $lan_nets to !
<localnets_v4> port { 80 , 443 } *tos 0x10* route-to ( $ext1_if $gw_ext1
) keep state

pass in quick on $int_if inet proto tcp from $lan_nets to !
<localnets_v4> port { 80 , 443 } *tos 0x00* route-to ( $ext2_if $gw_ext2
) keep state

Par contre, je n'ai pas trouvé le moyen de le faire en IPv6 sur ce même
principe : vu de tcpdump l'entête des paquets contient bien la bonne
valeur (entête "class" et non "tos" du coup) mais je ne trouve pas la
bonne syntaxe dans PF pour les prendre en compte (malgré un parcours
intensif du man et des documentations relatives que j'ai pu trouver).

Tenté (cas 1), ce qui semblait assez naturel d'un premier abord :

pass in quick on $int_if inet6 proto tcp from $v6_lan_nets to !
<localnets_v6> port { 80,443 } *tos 0x10* route-to ($ext1_if
$v6_host_gwnet1) keep state

pass in quick on $int_if inet6 proto tcp from $v6_lan_nets to !
<localnets_v6> port { 80,443 } *tos 0x00* route-to ($ext2_if
$v6_host_gwnet2) keep state

Tenté (cas 2), un peu au pif au vu du résultat de tcpdump (qui indiquait
"class" plutôt que "tos") :

pass in quick on $int_if inet6 proto tcp from $v6_lan_nets to !
<localnets_v6> port { 80,443 } *class 0x10* route-to ($ext1_if
$v6_host_gwnet1) keep state

pass in quick on $int_if inet6 proto tcp from $v6_lan_nets to !
<localnets_v6> port { 80,443 } *class 0x00* route-to ($ext2_if
$v6_host_gwnet2) keep state

Aucun des deux cas ne génère d'erreur de syntaxe .

Mais :
Dans le cas 1, seule la deuxième règle matche tous les paquets (quelque
soit la valeur de l'entête "class").
Dans le cas 2, aucune des deux règles ne matche, les paquets sont tout
bonnement jetés par la règle par défaut.

A préciser qu'il s'agit de la version 4.8 d'OpenBSD.

Auriez vous une idée ?

@+
Christophe.


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

Répondre à