IPNAT(4)				Fichiers spéciaux de FreeBSD

 

NOM

ipnat - Interface noyau de la traduction d'adresses réseau (NAT)

 

SYNOPSIS

#include <netinet/ip_compat.h>

#include <netinet/ip_fil.h>

#include <netinet/ip_proxy.h>

#include <netinet/ip_nat.h>

 

IOCTLS

Pour ajouter et retirer des règles à la liste de NAT, deux ioctls de base sont fournis. Les appels sont :

ioctl(fd, SIOCADNAT, struct ipnat *)

ioctl(fd, SIOCRMNAT, struct ipnat *)

Contrairement à ipf(4), une seule liste est gérée par l'interface NAT du noyau. Il n'existe encore aucun support d'une liste inactive vers laquelle commuter.

Ces ioctls sont implémentés dans le routage. Ainsi, les mêmes règles et descripteur de fichiers sont employés pour divers routages ioctls. Principalement, le fd doit être celui des périfériques qui correspond au module (par exemple /dev/ipl).

La structure utilisée avec l'interface NAT est la suivante :

typedef struct ipnat {
struct ipnat *in_next;
void        *in_ifp;
u_short      in_flags;
u_short      in_pnext;
u_short      in_port[2];
struct       in_addr in_in[2];
struct       in_addr in_out[2];
struct       in_addr in_nextip;
int          in_space;
int          in_redir; /* 1 en cas de redirection, 0 pour un "map"
char         in_ifname[IFNAMSIZ];
} ipnat_t;
 
#define in_pmin   in_port[0] /* Contient aussi le port de redirection statique
#define in_pmax   in_port[1]
#define in_nip    in_nextip.s_addr
#define in_inip   in_in[0].s_addr
#define in_inmsk  in_in[1].s_addr
#define in_outip  in_out[0].s_addr
#define in_outmsk in_out[1].s_addr

 

Les valeurs reconnues de in_redir sont :

#define NAT_MAP         0
#define NAT_REDIRECT    1

 

NAT statistics : Statistiques sur le nombre de paquets traduits, entrants ou sortants, le nombre de fois où des règles ont été ajoutées ou retirées (jusqu'à expiration) à la table NAT et le taux d'utilisation de ces tables.

Pointeurs vers la table NAT interne du noyau aussi bien que vers le haut de la liste NAT interne construite à l'aide de l'ioctls SIOCADNAT. La table elle-même est une table segmentée de taille NAT_SIZE (367 par défaut).

Pour effectuer les statistiques, l'ioctls SIOCGNATS doit être utilisé à l'aide de la structure appropriée, comme dans :

ioctl(fd, SIOCGNATS, struct natstat *)
 
typedef struct  natstat {
u_long   ns_mapped[2];
u_long   ns_added;
u_long   ns_expire;
u_long   ns_inuse;
nat_t    ***ns_table;
ipnat_t  *ns_list;
} natstat_t;

 

BUGS

Il serait appréciable d'avoir plus de flexibilité dans l'ajout et le retrait des gègles de filtrage.

 

FICHIERS

/dev/ipnat

 

VOIR AUSSI

ipf(4), ipnat(5), ipf(8), ipnat(8), ipfstat(8)

 

Version française le 31 juillet 2000 par Guillain SEUILLOT <Guillain@lycosmail.com>

 


NOM | SYNOPSIS | IOCTLS | BUGS | FICHIERS | VOIR AUSSI