OVH Cloud OVH Cloud

pb syntaxe macro dans pf.conf

6 réponses
Avatar
Stéphane T.
je souhaite faire quelque chose qui ressemblerait à ceci :
toto = "1.2.3.4"
jean = "5.6.7.8"
paul = "10.20.30.40"
list = "{" $toto $jean $paul "}"
nat on tun0 from $list to any -> tun0


le problème c'est la syntexe qui n'est pas bonne
=> list = "{" $toto $jean $paul "}"

man pf.conf nous dit beaucoup beaucoup de chose ;) ...
.. et ce qui nous interesse c'est tout à la fin "grammar"
.. mais on y trouve un peu de tout


Voici les trucs sympa qui pourrait avoir un rapport avec mon besoin:
ipspec = "any" | host | "{" host-list "}"
host-list = host [ [ "," ] host-list ]

mais quand ils parlent de "host" ... $toto c'est une macro .. "host" ne
serait-il pas ce qu'il y a dans /etc/hosts ?

et puis la notation de host-list (pour ne citer que celle là) est
moyennement compréhensible pour un novice
(perso je me considère + bas que novice ;-) )

bref ça manque de clarté.

si on peut utiliser un host (de /etc/hosts) dans pf.conf alors je passe tout
en host mais la syntaxe pour mettre en palce $list se fait comment?
list = [ toto, jean, paul ] ?
list = [ [toto], [jean], [paul] ] ?
list = host [ [toto], [jean], [paul] ] ?
...

et si je laisse toto = "1.2.3.4" dans pf.conf ça sera comment la syntax pour
$list ?
list = "{" toto jean paul "}" ?
list = "{" $toto $jean $paul "}" ?
...

j'ai essayé toute sorte de syntaxe et ça me met des erreurs

Merci à ceux qui voudront bien me dépatouiller cela car j'y perds mon latin
:)
(coté gout, je préfèrerai tout passer en debut de pf.conf ... )


Stéphane

PS: le coup du NAT c'est un exemple, j'en ai besoin pour d'autres choses
(regles de filtrage, etc..)

6 réponses

Avatar
Stéphane T.
le problème c'est la syntexe qui n'est pas bonne
=> list = "{" $toto $jean $paul "}"


rectification .. la syntaxe est bonne :-) ... mais en testant ça avec la
règle nat, les packets ne passent plus.


nat on tun0 from $list to any -> tun0 <= ne fonctionne pas pour toto, jean,
et paul
nat on tun0 from any to any -> tun0 <= fonctionne
nat on tun0 from $toto to any -> tun0 <= fonctionne pour toto

Avatar
Cyril Guibourg
"Stéphane T." writes:

rectification .. la syntaxe est bonne :-) ... mais en testant ça avec la
règle nat, les packets ne passent plus.


Avec pf, l'expansion des macros n'est pas récursive. C'est clairement dit
dans les man pages.

Avatar
Stéphane T.
Avec pf, l'expansion des macros n'est pas récursive. C'est clairement dit
dans les man pages.


et pourtant dans man pf.conf on peut lire à la section "MACROS" :
For example,

ext_if = "kue0"
all_ifs = "{" $ext_if lo0 "}"
(...)


c'est pour cela que je me suis permi de penser cela ...

Avatar
Cyril Guibourg
"Stéphane T." writes:

c'est pour cela que je me suis permi de penser cela ...


Effectivement cela a changé récemment...

Sinon un liste est définie par la règle suivante:

host-list = host [ [ , ] host-list ]

Avec tes macros, l'expansion reviendra à

list = { 1.2.3.4 5.6.7.8 10.20.30.40 }

ce qui est syntaxiquement faux

je mettrai plutot list = "{" $toto, $jean, $paul "}"

Avatar
Stéphane T.
pour ceux que ça interesse ...

c'est possible:
http://www.openbsd.org/faq/pf/macros.html

(mon erreur se situait ailleur)




"Cyril Guibourg" a écrit dans le message de
news:
"Stéphane T." writes:

rectification .. la syntaxe est bonne :-) ... mais en testant ça avec
la


règle nat, les packets ne passent plus.


Avec pf, l'expansion des macros n'est pas récursive. C'est clairement dit
dans les man pages.



Avatar
Cyril Guibourg
"Stéphane T." writes:

pour ceux que ça interesse ...

c'est possible:
http://www.openbsd.org/faq/pf/macros.html


oui depuis la 3.3, c'est ce que j'écrivais dans un post précédent qui
comporte lui aussi une erreur enaurme:

une liste peut être aussi bien du type a b c que a, b, c