Add a new translated section (NAT).

This commit is contained in:
Marc Fonvieille 2003-11-19 21:27:32 +00:00
parent efa65110f5
commit 826d6b6b86
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=18926

View file

@ -3,7 +3,7 @@
The FreeBSD French Documentation Project The FreeBSD French Documentation Project
$FreeBSD$ $FreeBSD$
Original revision: 1.246 Original revision: 1.248
--> -->
<chapter id="advanced-networking"> <chapter id="advanced-networking">
@ -64,7 +64,7 @@
</listitem> </listitem>
<listitem> <listitem>
<para>Comment configurer la traduction d'adresse <para>Comment configurer la translation d'adresse
r&eacute;seau.</para> r&eacute;seau.</para>
</listitem> </listitem>
@ -153,8 +153,322 @@
</sect1> </sect1>
<sect1 id="network-natd"> <sect1 id="network-natd">
<title>Network Address Translation</title> <sect1info>
<para></para> <authorgroup>
<author>
<firstname>Chern</firstname>
<surname>Lee</surname>
<contrib>Contribution de </contrib>
</author>
</authorgroup>
</sect1info>
<title>Translation d'adresses</title>
<sect2 id="network-natoverview">
<title>G&eacute;n&eacute;ralit&eacute;s</title>
<indexterm>
<primary><application>natd</application></primary>
</indexterm>
<para>Le &ldquo;daemon&rdquo; de translation d'adresses
(&ldquo;Network Address Translation&rdquo;&mdash;NAT) de &os;,
g&eacute;n&eacute;ralement connu sous le nom de &man.natd.8; est
un &ldquo;daemon&rdquo; qui accepte les paquets IP entrants,
change l'adresse de la source par celle de la machine locale et
r&eacute;-injecte les paquets dans le flux sortant des paquets
IP. Le programme &man.natd.8; effectue cela en changeant
l'adresse IP et le port source de sorte quand les donn&eacute;es
r&eacute;ponse arrivent il soit en mesure de d&eacute;terminer
la provenance des donn&eacute;es d'origine et les
transf&eacute;rer &agrave; l'&eacute;metteur original.</para>
<indexterm><primary>Partage de connexion Internet</primary></indexterm>
<indexterm><primary>IP masquerading</primary></indexterm>
<para>L'utilisation classique de NAT est le partage de connexion
Internet.</para>
</sect2>
<sect2 id="network-natsetup">
<title>Architecture du r&eacute;seau</title>
<para>En raison de la diminution du nombre d'adresses IP libres
sous IPv4, et de l'augmentation du nombre d'utilisateurs de
lignes haut-d&eacute;bit comme le c&acirc;ble ou l'ADSL, le
besoin d'utiliser une solution de partage de connexion est
donc en constante augmentation. La possibilit&eacute; de
connecter plusieurs ordinateurs par l'interm&eacute;diaire
d'une connexion et d'une adresse IP fait de &man.natd.8; une
solution de choix.</para>
<para>Plus g&eacute;n&eacute;ralement, un utilisateur dispose
d'une machine connect&eacute; sur la c&acirc;ble ou une ligne
ADSL avec une adresse IP et d&eacute;sire utiliser cet
ordinateur connect&eacute; pour fournir un acc&egrave;s
Internet &agrave; d'autres machines du r&eacute;seau
local.</para>
<para>Pour cela, la machine &os; sur Internet doit jouer le
r&ocirc;le de passerelle. Cette machine passerelle doit avoir
deux cartes r&eacute;seaux&mdash;l'une pour se connecter au
routeur Internet, l'autre est connect&eacute;e au
r&eacute;seau local. Toutes les machines du r&eacute;seau
local sont connect&eacute;es par l'interm&eacute;diaire d'un
hub ou d'un switch.</para>
<mediaobject>
<imageobject>
<imagedata fileref="advanced-networking/natd">
</imageobject>
<textobject>
<literallayout class="monospaced"> _______ __________ _________
| | | | | |
| Hub |-----| Client B |-----| Routeur |----- Internet
|_______| |__________| |_________|
|
____|_____
| |
| Client A |
|__________|</literallayout>
</textobject>
<textobject>
<phrase>Organisation du r&eacute;seau</phrase>
</textobject>
</mediaobject>
<para>Une telle configuration est commun&eacute;ment
utilis&eacute;e pour partager une connexion Internet. Une des
machines du r&eacute;seau local est connect&eacute;e &agrave;
Internet. Le reste des machines acc&egrave;de &agrave;
Internet par l'interm&eacute;diaire de cette machine
&ldquo;passerelle&rdquo;.</para>
</sect2>
<sect2 id="network-natdkernconfiguration">
<indexterm>
<primary>noyau</primary>
<secondary>configuration</secondary>
</indexterm>
<title>Configuration</title>
<para>Les options suivantes doivent &ecirc;tre pr&eacute;sentes
dans le fichier de configuration du noyau:</para>
<programlisting>options IPFIREWALL
options IPDIVERT</programlisting>
<para>De plus, les options suivantes peuvent &eacute;galement
&ecirc;tre utiles:</para>
<programlisting>options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE</programlisting>
<para>Ce qui suit doit figurer dans le fichier
<filename>/etc/rc.conf</filename>:</para>
<programlisting>gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="<replaceable>fxp0</replaceable>"
natd_flags=""</programlisting>
<informaltable frame="none">
<tgroup cols="2">
<tbody>
<row>
<entry>gateway_enable="YES"</entry>
<entry>Configure la machine comme passerelle.
Ex&eacute;cuter
<command>sysctl net.inet.ip.forwarding=1</command>
aurait le m&ecirc;me effet.</entry>
</row>
<row><entry>firewall_enable="YES"</entry>
<entry>Active les r&egrave;gles du coupe-feu se
trouvant dans le fichier
<filename>/etc/rc.firewall</filename> au
d&eacute;marrage.</entry>
</row>
<row><entry>firewall_type="OPEN"</entry>
<entry>Cela sp&eacute;cifie un ensemble de r&egrave;gles
pr&eacute;d&eacute;finies pour le coupe-feu qui autorise
tous les paquets entrant. Consultez le fichier
<filename>/etc/rc.firewall</filename> pour d'autres
ensembles de r&eacute;gles.</entry>
</row>
<row>
<entry>natd_interface="fxp0"</entry>
<entry>Indique &agrave; travers quelle interface
transf&eacute;rer les paquets (l'interface
connect&eacute;e &agrave; l'Internet).</entry>
</row>
<row>
<entry>natd_flags=""</entry>
<entry>Toutes options de configuration
suppl&eacute;mentaires pass&eacute;es &agrave;
&man.natd.8; au d&eacute;marrage.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Le fait d'avoir les options pr&eacute;c&eacute;dentes
d&eacute;finies dans le fichier
<filename>/etc/rc.conf</filename> lancera la commande
<filename>/etc/rc.conf</filename> au d&eacute;marrage. Cette
commande peut &ecirc;tre &eacute;galement
ex&eacute;cut&eacute;e &agrave; la main.</para>
<para>A chaque machine et interface derri&egrave;re le
r&eacute;seau local doit &ecirc;tre assign&eacute; une adresse
IP de l'espace d'adresses priv&eacute;es comme d&eacute;fini
par la <ulink url="ftp://ftp.isi.edu/in-notes/rfc1918.txt">RFC
1918</ulink> et doit disposer d'une passerelle par
d&eacute;faut qui est l'adresse IP interne de la machine
&man.natd.8;.</para>
<para>Par exemple, les clients <hostid>A</hostid> et
<hostid>B</hostid> du r&eacute;seau local ont les adresses IP
<hostid role="ipaddr">192.168.0.2</hostid> et <hostid
role="ipaddr">192.168.0.3</hostid>, tandis que l'interface sur
le r&eacute;seau local de la machine
<application>natd</application> a pour adresse IP <hostid
role="ipaddr">192.168.0.1</hostid>. La passerelle par
d&eacute;faut des clients <hostid>A</hostid> et
<hostid>B</hostid> doit &ecirc;tre l'adresse <hostid
role="ipaddr">192.168.0.1</hostid> de la machine
<application>natd</application>. L'interface externe ou
Internet de cette derni&egrave;re ne demande aucune
modification sp&eacute;cifique pour que &man.natd.8; puisse
fonctionner.</para>
</sect2>
<sect2 id="network-natdport-redirection">
<title>Redirection de ports</title>
<para>L'inconv&eacute;nient avec &man.natd.8; est que les
clients du r&eacute;seau local ne sont pas accessibles depuis
l'Internet. Les clients sur le r&eacute;seau local peuvent
&eacute;tablir des connexions sortantes vers le monde
ext&eacute;rieur mais ne peuvent recevoir de connexions
entrantes. Cela pr&eacute;sente un probl&egrave;me si l'on
tente de faire tourner des services Internet sur une des
machines du r&eacute;seau local. Une solution simple &agrave;
ce probl&egrave;me est de rediriger les ports Internet
s&eacute;lectionn&eacute;s de la machine
<application>natd</application> vers le client sur le
r&eacute;seau local.</para>
<para>Par exemple, un serveur IRC tourne sur le client
<hostid>A</hostid>, et un serveur web sur le client
<hostid>B</hostid>. Pour que cela fonctionne correctement,
les connections re&ccedil;ues sur les ports 6667 (IRC) et 80
(web) doivent &ecirc;tre redirig&eacute;es vers les machines
correspondantes.</para>
<para>L'option <option>-redirect_port</option> doit &ecirc;tre
pass&eacute;e &agrave; &man.natd.8; avec les autres options
ad&eacute;quates. La syntaxe est la suivante:</para>
<programlisting>-redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]</programlisting>
<para>Dans l'exemple pr&eacute;c&eacute;dent, l'argument
pass&eacute; &agrave; la commande devrait &ecirc;tre:</para>
<programlisting>-redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80</programlisting>
<para>Cela va rediriger les ports <emphasis>tcp</emphasis>
voulus vers les machines du r&eacute;seau local.</para>
<para>L'option <option>-redirect_port</option> peut &ecirc;tre
utilis&eacute;e pour indiquer une plage de ports plut&ocirc;t
que des ports individuels. Par exemple <replaceable>tcp
192.168.0.2:2000-3000 2000-3000</replaceable> redirigerait
toutes les connexions re&ccedil;ues sur les ports 2000
&agrave; 3000 vers les ports 2000 &agrave; 3000 du client
<hostid>A</hostid>.</para>
<para>Ces options peuvent &ecirc;tre utilis&eacute;es quand on
ex&eacute;cute directement &man.natd.8; ou plac&eacute;es dans
l'option <literal>natd_flags=""</literal> du fichier
<filename>/etc/rc.conf</filename>.</para>
<para>Pour plus d'&eacute;l&eacute;ments et d'options de
configuration consultez la page de manuel &man.natd.8;</para>
</sect2>
<sect2 id="network-natdaddress-redirection">
<title>Redirection d'adresses</title>
<indexterm><primary>redirection d'adresses</primary></indexterm>
<para>La redirection d'adresses est utile si plusieurs adresses
IP sont disponibles mais doivent se trouver sur une seule
machine. Avec cela, &man.natd.8; peut assigner &agrave;
chaque client du r&eacute;seau local sa propre adresse IP
externe. Le programme &man.natd.8; r&eacute;crit alors les
paquets sortant des clients du r&eacute;seau local avec
l'adresse IP externe correcte et redirige tout le trafic
entrant sur une adresse IP particuli&egrave;re vers la machine
du r&eacute;seau local correspondante. Ce principe est
&eacute;galement connu sous le nom de translation d'adresses
statique. Par exemple, les adresses IP <hostid
role="ipaddr">128.1.1.1</hostid>, <hostid
role="ipaddr">128.1.1.2</hostid>, et <hostid
role="ipaddr">128.1.1.3</hostid> appartiennent &agrave; la
passerelle <application>natd</application>. L'adresse <hostid
role="ipaddr">128.1.1.1</hostid> peut &ecirc;tre
utilis&eacute;e comme adresse IP externe de la passerelle
<application>natd</application>, tandis que <hostid
role="ipaddr">128.1.1.2</hostid> et <hostid
role="ipaddr">128.1.1.3</hostid> sont redirig&eacute;es vers
les machines <hostid>A</hostid> et <hostid>B</hostid> du
r&eacute;seau local.</para>
<para>La syntaxe de l'option <option>-redirect_address</option>
est la suivante:</para>
<programlisting>-redirect_address localIP publicIP</programlisting>
<informaltable frame="none">
<tgroup cols="2">
<tbody>
<row>
<entry>localIP</entry>
<entry>L'adresse IP interne du client sur le
r&eacute;seau local.</entry>
</row>
<row>
<entry>publicIP</entry>
<entry>L'adresse IP externe correspondant au client sur
le r&eacute;seau local.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Dans l'exemple, les arguments pass&eacute;s &agrave; la
commande seraient:</para>
<programlisting>-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3</programlisting>
<para>Comme pour l'option <option>-redirect_port</option>, ces
options peuvent &ecirc;tre plac&eacute;es dans l'option
<literal>natd_flags=""</literal> du fichier
<filename>/etc/rc.conf</filename>. Avec la redirection
d'adresse, il n'y a pas besoin de redirection de ports puisque
toutes les donn&eacute;es re&ccedil;ues sur une IP
particuli&egrave;re sont redirig&eacute;es.</para>
<para>Les adresses IP sur la machine
<application>natd</application> doivent &ecirc;tre active et
pointer sur l'interface externe. Consultez la page de manuel
&man.rc.conf.5; pour cela.</para>
</sect2>
</sect1> </sect1>
<sect1 id="network-inetd"> <sect1 id="network-inetd">