[freebsd] problème de débit avec pf sur ADSL Free

Le
patpro ~ Patrick Proniewski
Bonjour,

nous sommes au moins deux a avoir constaté un phénomène très étrange
avec FreeBSD 6.2 et le firewall pf sur une connexion ADSL FreeBox.

Dans les deux cas :
- la machine FreeBSD est branchée à la freebox et utilise pf pour faire
firewall et NAT.
- le pf.conf est assez simple et n'utilise pas ALTQ.

Nous avons remarqué que sur des requêtes vers
<http://test-debit.free.fr/>, la vitesse de téléchargement est très
inférieure à ce qu'elle devrait être (autour de 140 Ko/s pour moi), mais
qu'on peut cumuler plusieurs téléchargements (3 fichiers simultanément à
120 ko/s par exemple).
Si on désactive pf (soit en déchargeant le module du kernel, soit en
ajoutant "set skip on $ext_if" dans pf.conf), le débit que je constate
atteint 650-700 ko/s pour le même fichier.

Deux choses sont troublantes :

- pf semble faire du throttling tout seul, de manière tout à fait
inappropriée
- pf ne se comporte pas de cette manière avec tous les serveurs ! Dans
certains cas, on constate qu'on atteint bien le taux de transfert
maximum "malgré" pf, alors que test-debit.free.fr va toujours donner un
transfert plus lent que la normale avec pf activé.

J'en suis venu à la conclusion qu'il y a quelque chose qui change dans
la gestion TCP quand pf est activé, et que ce changement induit une
chute de débit quand on interagit avec certains serveurs, dont ceux de
free (mais pas uniquement, malheureusement).

Je n'ai aucun sysctl particuliers, ALTQ n'est pas actif (et qu'il soit
ou non compilé dans le kernel ne change rien au résultat). Nous avons
aussi testé des pf.conf sans "scrub in all" : pas mieux.

Toute idée est la bienvenue !

patpro

--
http://www.patpro.net/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #895692
À (at) Wed, 01 Aug 2007 12:08:15 +0200,
patpro ~ Patrick Proniewski
nous sommes au moins deux a avoir constaté un phénomène très étrange
avec FreeBSD 6.2 et le firewall pf sur une connexion ADSL FreeBox.


J'ai ce type de configuration.

Dans les deux cas :
- la machine FreeBSD est branchée à la freebox et utilise pf pour faire
firewall et NAT.


Mon pf fait firewall mais de NAT (celui de la Freebox me suffit).

- le pf.conf est assez simple et n'utilise pas ALTQ.


Mon noyau est configuré pour pouvoir faire du ALTQ mais je ne l'ai
utilisé dans pf que pour faire des essais ponctuels.

Nous avons remarqué que sur des requêtes vers
inférieure à ce qu'elle devrait être (autour de 140 Ko/s pour moi), mais
qu'on peut cumuler plusieurs téléchargements (3 fichiers simultanément à
120 ko/s par exemple).
Si on désactive pf (soit en déchargeant le module du kernel, soit en
ajoutant "set skip on $ext_if" dans pf.conf), le débit que je constate
atteint 650-700 ko/s pour le même fichier.


Je n'ai pas vraiment constaté ce comportement bien qu'effectivement le
débit mesuré via l'interface "officielle" (sur le console) soit très
inférieur au débit réel. Mais comme d'autres tests par ailleurs
montraient que mon débit était correct, j'avais attribué cela à
l'encombrement du serveur lui-même.. Je ferai des test plus précis ce
soir (avec ou sans pf et différentes règles).

Deux choses sont troublantes :

- pf semble faire du throttling tout seul, de manière tout à fait
inappropriée


Ou d'une manière qui perturbe le serveur en face... Mais ce serait
tout de même bizarre.

- pf ne se comporte pas de cette manière avec tous les serveurs ! Dans
certains cas, on constate qu'on atteint bien le taux de transfert
maximum "malgré" pf, alors que test-debit.free.fr va toujours donner un
transfert plus lent que la normale avec pf activé.

J'en suis venu à la conclusion qu'il y a quelque chose qui change dans
la gestion TCP quand pf est activé, et que ce changement induit une
chute de débit quand on interagit avec certains serveurs, dont ceux de
free (mais pas uniquement, malheureusement).

Je n'ai aucun sysctl particuliers, ALTQ n'est pas actif (et qu'il soit
ou non compilé dans le kernel ne change rien au résultat). Nous avons
aussi testé des pf.conf sans "scrub in all" : pas mieux.


J'ai aussi tout de suite pensé à cela mais si ça ne change rien...

Toute idée est la bienvenue !


Malheureusement, pour l'instant, rien de plus. :-(

--
Paul Gaborit -
patpro ~ patrick proniewski
Le #895689
In article Paul Gaborit
Nous avons remarqué que sur des requêtes vers
inférieure à ce qu'elle devrait être (autour de 140 Ko/s pour moi), mais
qu'on peut cumuler plusieurs téléchargements (3 fichiers simultanément à
120 ko/s par exemple).
Si on désactive pf (soit en déchargeant le module du kernel, soit en
ajoutant "set skip on $ext_if" dans pf.conf), le débit que je constate
atteint 650-700 ko/s pour le même fichier.


Je n'ai pas vraiment constaté ce comportement bien qu'effectivement le
débit mesuré via l'interface "officielle" (sur le console) soit très
inférieur au débit réel. Mais comme d'autres tests par ailleurs
montraient que mon débit était correct, j'avais attribué cela à
l'encombrement du serveur lui-même.. Je ferai des test plus précis ce
soir (avec ou sans pf et différentes règles).


ce n'est pas le test de débit "speedtest" accessible via la console
personnelle sur adsl.free.fr, mais un serveur dédié aux tests de
téléchargement. Quoi qu'il en soit, mes débits sont merdiques avec les
deux, et les serveurs pour les quels mon débit se rapproche de mon "max
sans pf", se comptent sur les doigts de la main :/

Toute idée est la bienvenue !


Malheureusement, pour l'instant, rien de plus. :-(


c'est déjà sympa de se poser la question !
merci,

patpro

--
http://www.patpro.net/


kavanier
Le #895686
Bonjour,
Bonjour


un phénomène très étrange avec FreeBSD 6.2 et le firewall pf sur une connexion ADSL FreeBox.


j'ai aussi une machine sous FreeBSD 6.2 avec pf pour le nat et firewall,
j'ai eu un drole de soucis soucis avec pf , contrairement à vous
c'etais pf qui reduisait la vitesse de mon upload que sur certains ports
surtout ceux de ftp , pas plus de 15Ko/s tandis que je pouvais atteindre
105Ko/s en transfert http (aucune différence quand j'enlève les régles
de filtrages de pf).
Peu de temps apres je me suis rendu compte que j'avais des
"xl0: watchdog timedout" dans mon dmesg .
Un passage en 6.2-STABLE à réglé ce problème !

peut-etre y'a t'il aucun rapport avec votre soucis ..

Kevin Vanier

patpro ~ patrick proniewski
Le #895684
In article kavanier
Peu de temps apres je me suis rendu compte que j'avais des
"xl0: watchdog timedout" dans mon dmesg .
Un passage en 6.2-STABLE à réglé ce problème !

peut-etre y'a t'il aucun rapport avec votre soucis ..


cela n'a en effet aucun rapport, mais c'eut été une solution simple :/


patpro

--
http://www.patpro.net/

Paul Gaborit
Le #895681
À (at) Wed, 01 Aug 2007 14:26:36 +0200,
patpro ~ patrick proniewski
ce n'est pas le test de débit "speedtest" accessible via la console
personnelle sur adsl.free.fr, mais un serveur dédié aux tests de
téléchargement. Quoi qu'il en soit, mes débits sont merdiques avec les
deux, et les serveurs pour les quels mon débit se rapproche de mon "max
sans pf", se comptent sur les doigts de la main :/


Alors c'est celui qui propose de charger, par exemple, une image iso
(donc un fichier assez gros pour voir le débit se stabiliser).

Dans ce cas, mon FreeBSD 6.2 avec pf n'a pas de problème avec ce
serveur : j'atteinds le 1100ko/s. Alors que le speedtest de la console
me donne max 500ko/s. Ça dépend des jours et du sens du vent.

La seule différence (à laquelle je pense) est que mon pf ne fait pas
de NAT (il faudrait quand même comparer plus finement les autres
règles pf). Ah si... j'ai une freebox v5 en mode routeur !

--
Paul Gaborit -
patpro ~ patrick proniewski
Le #895679
In article Paul Gaborit
La seule différence (à laquelle je pense) est que mon pf ne fait pas
de NAT (il faudrait quand même comparer plus finement les autres
règles pf). Ah si... j'ai une freebox v5 en mode routeur !


je pense que c'est là un facteur de première importante. Ma freebox
n'est pas configurée en routeur.


patpro

--
http://www.patpro.net/

Paul Gaborit
Le #895676
À (at) Wed, 01 Aug 2007 16:12:52 +0200,
patpro ~ patrick proniewski
In article Paul Gaborit
La seule différence (à laquelle je pense) est que mon pf ne fait pas
de NAT (il faudrait quand même comparer plus finement les autres
règles pf). Ah si... j'ai une freebox v5 en mode routeur !


je pense que c'est là un facteur de première importante. Ma freebox
n'est pas configurée en routeur.


C'est alors, peut-être, un problème de MTU... mais je ne vois pas le
lien direct avec pf.

--
Paul Gaborit -

Erwan David
Le #895674
Paul Gaborit
À (at) Wed, 01 Aug 2007 16:12:52 +0200,
patpro ~ patrick proniewski
In article Paul Gaborit
La seule différence (à laquelle je pense) est que mon pf ne fait pas
de NAT (il faudrait quand même comparer plus finement les autres
règles pf). Ah si... j'ai une freebox v5 en mode routeur !


je pense que c'est là un facteur de première importante. Ma freebox
n'est pas configurée en routeur.


C'est alors, peut-être, un problème de MTU... mais je ne vois pas le
lien direct avec pf.


Tu ne filtrerais pas les ICMP par hasard ?

--
Erwan



patpro ~ patrick proniewski
Le #895671
In article Paul Gaborit
À (at) Wed, 01 Aug 2007 16:12:52 +0200,
patpro ~ patrick proniewski
In article Paul Gaborit
La seule différence (à laquelle je pense) est que mon pf ne fait pas
de NAT (il faudrait quand même comparer plus finement les autres
règles pf). Ah si... j'ai une freebox v5 en mode routeur !


je pense que c'est là un facteur de première importante. Ma freebox
n'est pas configurée en routeur.


C'est alors, peut-être, un problème de MTU... mais je ne vois pas le
lien direct avec pf.


j'y crois moyen, mais pour ne rien rater, j'ai mouillé les types de
freebsd-pf ;)
Si tu veux jeter un ¦il :


Malheureusement, ça m'a quand même bien l'air lié aux équipements Free
et à leur config. Je ne sais pas si l'aide internationale va trouver
l'origine du problème...

patpro

--
http://www.patpro.net/



patpro ~ patrick proniewski
Le #895392
In article Erwan David
Tu ne filtrerais pas les ICMP par hasard ?


$ grep -i icmp /etc/pf.conf
icmp_types = "echoreq"
pass in inet proto icmp all icmp-type $icmp_types keep state
pass out on $ext_if proto { udp, icmp } all keep state

je les filtre donc en partie

Mon ruleset est inspiré de
patpro

--
http://www.patpro.net/

Publicité
Poster une réponse
Anonyme