A) Architecture :
3) NAT+ PROXY :
l'utilisation de l'option "export de services" permet de rendre accessible
des serveurs ayant des adresses masquées.
Note : les serveurs sont ici "à cheval" entre 2 réseaux
"privé" : 192.168.1.0 et 192.168.0.0.1 (Physiquement = 2 interfaces
réseau)
4) NAT+ PROXY :
L'option "alias réseau" autorise la redirection
vers différents réseaux privés.
Note : Les serveurs sont sur un réseau.
+-#----Source IP Addr----Dest IP
Addr------Proto-Src.Port-D.Port--On?-Fwd-+
+--------------------------------------------------------------------------------------------------+
| 1
0.0.0.0
0.0.0.0
UDP =137 NC
Yes No |
| 2
0.0.0.0
0.0.0.0
UDP =138 NC
Yes No |
| 3
0.0.0.0
0.0.0.0
TCP NC =139
Yes No |
+-------------------------------------------------------------------------------------------------+
nbname 137/udp
nbdatagram 138/udp
nbsession 139/tcp
+-#----Source IP Addr----Dest IP
Addr------Proto-Src.Port-D.Port--On?-Fwd-+
+-------------------------------------------------------------------------------------------------+
| 1
0.0.0.0
0.0.0.0
TCP NC =2000 Yes
No |
| 2
0.0.0.0
0.0.0.0
TCP NC =6000 Yes
No |
| 3
0.0.0.0
0.0.0.0
ICMP NC NC
Yes Yes |
| 4
0.0.0.0
0.0.0.0
TCP NC >1023 Yes
Yes |
| 5
0.0.0.0
0.0.0.0
UDP NC >1023 Yes
Yes |
+-------------------------------------------------------------------------------------------------+
C) Translation d'adresse et "Port Mapping" :
1) Exemple d'une connexion FTP:
Connexions actives côté Serveur :
Proto
Adresse locale Adresse extérieure
Etat
===============================================
TCP 192.168.0.1:2100
193.252.58.163:1625 ETABLIE
TCP 192.168.0.1:2100
193.252.58.163:1630 ETABLIE
TCP 192.168.0.1:2100
193.252.58.163:1638 ETABLIE
===============================================
Connexions actives côté Client :
Proto
Adresse locale Adresse extérieure
Etat
===============================================
TCP 193.252.58.163:1625
193.251.60.38:2100 ETABLIE
TCP 193.252.58.163:1630
193.251.60.38:2100 ETABLIE
TCP 193.252.58.163:1638
193.251.60.38:2100 ETABLIE
===============================================
Exemple d'une communication entre 2 machines situées
derrière deux réseaux LAN "Translatés"
Application : "Netmeeting"
La machine désignée "serveur" est celle acceptant
l'appel.
La machine "cliente" étant l'appelant.
IP NETWORK serveur = 193.253.209.122
IP LAN serveur = 192.168.200.29
IP NETWORK "appelant" = 193.251.60.193
IP LAN serveur = 192.168.0.20
Détail des connexions établies sur chacune des machines éxécutant les services Netmeeting.
Station Serveur:
========================================================================
Protocole | Adresse locale | Port | Adresse distante | Port | Etat liaison |
TCP TCP TCP TCP TCP |
192.168.200.29 192.168.200.29 192.168.200.29 192.168.200.29 192.168.200.29 |
1720 1709 1503 1503 1503 |
193.251.60.193 193.251.60.193 193.251.60.193 193.251.60.193 193.251.60.193 |
55421 55425 55505 55510 55511 |
Etablie Etablie Etablie Etablie Etablie |
Station Cliente :
========================================================================
Protocole | Adresse locale | Port | Adresse distante | Port | Etat liaison |
TCP TCP TCP TCP TCP |
192.168.200.20
192.168.200.20 192.168.200.20 192.168.200.20 192.168.200.20 |
1056
1057 1059 1060 1061 |
193.253.209.122
193.253.209.122 193.253.209.122 193.253.209.122 193.253.209.122 |
1720
1709 1503 1503 1503 |
Etablie
Etablie Etablie Etablie Etablie |
Tout paquet traversant un routeur dans le sens
interne vers l'extérieur ou inversement subit une traduction qui peut-être plus
ou moins complexe suivant le protocole. L'adresse IP dans l'en-tête IP est traduite
et remplacée par la nouvelle adresse.
De plus, le checksum IP doit être recalculé et
vérifié. Ensuite, le checksum TCP, combinaison de l'adresse IP et du port, soit
être modifié également.
Enfin, pour rendre le mécanisme transparent au
niveau des applications, NAT doit également convertir des paquets pour certains
protocoles ou applications.
Overloading ou PAT (Port Address Translation)
ou adressage dynamique étendu :
Les adresses internes sont traduites par l'association
d'une adresse interne et d'un port .
Cette adresse "étendue" est alors traduite en adresse
externe associée au port. Cette fonctionnalité permet d'utiliser la même adresse
externe pour différentes adresses internes.
Est-ce que tous les services sont supportés?
En particulier toute application qui transporte
et utilise une adresse IP dans la partie des données ne sera pas supportée par
NAT, sauf si NAT connait l'emplacement et sait le traduire.
Par exemple, le service FTP est supporté bien que
la commande PORT contienne une adresse IP dans la partie des données.
Mais des services tels que talk , bootp et surtout
IP Multicast ne sont pas supportés.
D'autres services peuvent être supportés partiellement
: le service SMTP ne pourra pas fonctionner lorsque une adresse IP est utilisé
dans l'adresse électronique plutôt qu'un nom complet de domaine. De même pour
le service DNS (pas de traduction des transferts de zone). Mais Secure DNS peut
être traité
Adresse IP / Type de classes :
de 10.0.0.0 à 10.255.255.255
(classe A, masque 255.0.0.0)
de 172.16.0.0 à 172.31.255.255
(classe B, masque 255.255.0.0)
de 192.168.0.0 à 192.168.255.255 (classe
C, masque 255.255.255.0)
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
qotd 17/udp quote
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
rlp 39/udp resource # resource location
name 42/tcp nameserver
name 42/udp nameserver
whois 43/tcp nicname # usually to sri-nic
domain 53/tcp nameserver # name-domain server
domain 53/udp nameserver
nameserver 53/tcp domain # name-domain server
nameserver 53/udp domain
mtp 57/tcp # deprecated
bootp 67/udp # boot program server
tftp 69/udp
rje 77/tcp netrjs
finger 79/tcp
link 87/tcp ttylink
supdup 95/tcp
hostnames 101/tcp hostname # usually from sri-nic
iso-tsap 102/tcp
dictionary 103/tcp webster
x400 103/tcp # ISO Mail
x400-snd 104/tcp
csnet-ns 105/tcp
pop 109/tcp postoffice
pop2 109/tcp # Post Office
pop3 110/tcp postoffice
portmap 111/tcp
portmap 111/udp
sunrpc 111/tcp
sunrpc 111/udp
auth 113/tcp authentication
sftp 115/tcp
path 117/tcp
uucp-path 117/tcp
nntp 119/tcp usenet # Network News Transfer
ntp 123/udp ntpd ntp # network time protocol (exp)
nbname 137/udp
nbdatagram 138/udp
nbsession 139/tcp
NeWS 144/tcp news
sgmp 153/udp sgmp
tcprepo 158/tcp repository # PCMAIL
snmp 161/udp snmp
snmp-trap 162/udp snmp
print-srv 170/tcp # network PostScript
vmnet 175/tcp
load 315/udp
vmnet0 400/tcp
sytek 500/udp
biff 512/udp comsat
exec 512/tcp
login 513/tcp
who 513/udp whod
shell 514/tcp cmd # no passwords used
syslog 514/udp
printer 515/tcp spooler # line printer spooler
talk 517/udp
ntalk 518/udp
efs 520/tcp # for LucasFilm
route 520/udp router routed
timed 525/udp timeserver
tempo 526/tcp newdate
courier 530/tcp rpc
conference 531/tcp chat
rvd-control 531/udp MIT disk
netnews 532/tcp readnews
netwall 533/udp # -for emergency
broadcasts
uucp 540/tcp uucpd # uucp daemon
klogin 543/tcp # Kerberos
authenticated rlogin
kshell 544/tcp cmd # and remote shell
new-rwho 550/udp new-who # experimental
remotefs 556/tcp rfs_server rfs # Brunhoff remote
filesystem
rmonitor 560/udp rmonitord # experimental
monitor 561/udp # experimental
garcon 600/tcp
maitrd 601/tcp
busboy 602/tcp
acctmaster 700/udp
acctslave 701/udp
acct 702/udp
acctlogin 703/udp
acctprinter 704/udp
elcsd 704/udp # errlog
acctinfo 705/udp
acctslave2 706/udp
acctdisk 707/udp
kerberos 750/tcp kdc # Kerberos
authentication--tcp
kerberos 750/udp kdc # Kerberos
authentication--udp
kerberos_master 751/tcp # Kerberos authentication
kerberos_master 751/udp # Kerberos authentication
passwd_server 752/udp # Kerberos passwd server
userreg_server 753/udp # Kerberos userreg server
krb_prop 754/tcp # Kerberos slave
propagation
erlogin 888/tcp # Login and environment
passing
kpop 1109/tcp # Pop with Kerberos
phone 1167/udp
ingreslock 1524/tcp
maze 1666/udp
nfs 2049/udp # sun nfs
knetd 2053/tcp # Kerberos
de-multiplexor
eklogin 2105/tcp # Kerberos encrypted
rlogin
rmt 5555/tcp rmtd
mtb 5556/tcp mtbd # mtb backup
man 9535/tcp # remote man server
w 9536/tcp
mantst 9537/tcp # remote man server,
testing
bnews 10000/tcp
rscs0 10000/udp
queue 10001/tcp
rscs1 10001/udp
poker 10002/tcp
rscs2 10002/udp
gateway 10003/tcp
rscs3 10003/udp
remp 10004/tcp
rscs4 10004/udp
rscs5 10005/udp
rscs6 10006/udp
rscs7 10007/udp
rscs8 10008/udp
rscs9 10009/udp
rscsa 10010/udp
rscsb 10011/udp
qmaster 10012/tcp
qmaster 10012/udp