FreeBSD kernel nat ou natd?

Comme je le remarque plus souvent avec FreeBSD, il y a toujours beaucoup de façons qui mènent à un but spécifique.

Après avoir déterminé le pare-feu que je voulais (je choisis ipfw), je suis maintenant complètement incertain sur la façon de faire la traduction d'adresses réseau (NAT).

Comme je l'ai découvert maintenant, il existe deux façons de NAT, je pourrais utiliser l'espace kernel ipfw nat ou je pourrais utiliser l'espace user natd .

Le seul de ceux décrits dans le manuel de FreeBSD est natd .

Ce que je voudrais savoir, c'est quelles sont les principales différences entre celles-ci? Lequel est le plus populaire.

Bien sûr, je voudrais aussi pouvoir pêcher, alors comment find ces différences dans les manuels / manuels?

ipfw nat est généralement préférable, car il s'exécute dans l'espace kernel et consum less de CPU que de détourner + natd . Mais natd peut toujours être utile si vous avez besoin d'append dynamicment des règles pour les connections FTP (searchz l'option natd(8) dans natd(8) ). La page du manuel est gravement obsolète.

Tout d'abord, vous n'êtes pas seul (fil de discussion sur la question) .

J'en ai natd que natd était apparemment le seul choix jusqu'à FreeBSD 7.x et que la page du manuel que vous avez référencée a probablement besoin d'être révisée ( voir cet article ), et que NAT dans le kernel est probablement plus rapide.

En dehors de cela, les deux solutions semblent toujours bien (les deux sont présents dans une installation standard de FreeBSD, après tout) et les arguments habituels kernelspace / userspace s'appliquent … pas la réponse la plus satisfaisante, désolé.

Je ne savais même pas qu'il y avait un kernel nat (rlocation natd) jusqu'à ce soir. Mon natd utilise des quantités stupides de cycles CPU, même quand il n'y a presque pas de trafic. Il semble que vous devez contrôler soigneusement quel type de packages passe par natd pour éviter ce processeur élevé. Et cela dépend de la nature de votre environnement quant aux règles ipfw qui sont les meilleures pour éviter que le trafic indésirable soit détourné vers natd.

Je ne peux pas find un jeu de règles simple qui ne cause pas de problèmes pour moi. Je soupçonne que c'est parce que j'ai des prisons en cours d'exécution sur les adresses IP du réseau local, et cela génère du trafic via natd. Donc, je suis maintenant pour apprendre ipfw + kernel nat.

Le manuel a juste besoin de mentionner cela, même un seul liner serait suffisant pour commencer.