Diferència entre revisions de la pàgina «A7. Adreçament privat. NAT i PAT»

De Wiki IES Marianao. Departament Informàtica
Dreceres ràpides: navegació, cerca
(Comandes IOS NAT, estàtic)
(Comandes IOS PAT, dinàmic vàries adreces públiques POOL.)
 
(Hi ha 29 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
torna [[ M7_-_Planificació_i_administració_de_xarxes#UF3_.E2.80.93_Administraci.C3.B3_avan.C3.A7ada_de_xarxes | M7 - UF3 Administració avançada de Xarxes ]]
+
torna [[ M7 - Planificació i administració de xarxes ]]
  
  
==  Adreçament privat. NAT i PAT  ==
+
=  Adreçament privat. NAT i PAT  =
  
  
=== Introducció ===
+
== Introducció ==
  
  
Línia 26: Línia 26:
  
 
[[Fitxer:pat.png]]
 
[[Fitxer:pat.png]]
 
  
  
Línia 33: Línia 32:
  
  
''Rangs d'adreces privades (RFC 1918) ''
+
<p class="h4">Rangs d'adreces privades (RFC 1918) </p>
  
{| cellspacing="0" cellpadding="3" border="0"
 
| '''Classe '''
 
| '''Interval '''
 
|-
 
| A
 
| 10.0.0.0 - 10.255.255.255
 
|-
 
| B
 
| 172.16.0.0 - 172.31.255.255
 
|-
 
| C
 
| 192.168.0.0 - 192.168.255.255
 
|}
 
  
 +
<html>
 +
<div class="table-responsive">
 +
<table class="table table-bordered">
 +
  <thead class="thead-dark">
 +
    <tr>
 +
      <th scope="col" colspan="3">Classe Interval</th>
 +
    </tr>
 +
  </thead>
 +
  <tbody>
 +
    <tr>
 +
      <th scope="row">A</th>
 +
      <td>10.0.0.0/8</td>
 +
      <td>10.0.0.0 - 10.255.255.255</td>
 +
    </tr>
 +
    <tr>
 +
      <th scope="row">B</th>
 +
      <td>172.16.0.0/12</td>
 +
      <td>172.16.0.0 - 172.31.255.255</td>
 +
    </tr>
 +
    <tr>
 +
      <th scope="row">C</th>
 +
      <td>192.168.0.0/16</td>
 +
      <td>192.168.0.0 - 192.168.255.255</td>
 +
    </tr>
 +
  </tbody>
 +
</table>
 +
</div>
 +
</html>
  
  
 
Els routers mai han d'enrutar aquestes adreces.
 
Els routers mai han d'enrutar aquestes adreces.
  
 +
== Exemples Configuració ==
 +
 +
http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tech_note09186a0080094e77.shtml
 +
 +
Les interfícies locals es marquen com internes (inside) i les públiques com externes (outside)
 +
 +
 +
===  Comandes IOS NAT, estàtic ===
 +
 +
Una adreça local '''privada''' es mapeja a una adreça '''pública'''.
  
 +
Traducció one-to-one. Als paquets que arriben de la xarxa local amb aquesta adreça privada se'ls '''modifica l'adreça IP origen substituint-la per la pública'''.
  
=== Exemples Configuració ===
+
Quan arriben les respostes des de l'exterior es fa el canvi invers abans d'enviar-les a l'equip local.
  
http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tech_note09186a0080094e77.shtml
 
  
Les interfaces locals es marque com internes (inside) i les púliques/sèries com externes (outside)
+
[[Fitxer:Nat_estatic.png|none|600px]]
  
  
====  Comandes IOS NAT, estàtic ====
 
  
 
<html><pre><code>
 
<html><pre><code>
 
// Marca la interfície com connectada a l'interior
 
// Marca la interfície com connectada a l'interior
Router(config)#interface FastEthernet 0/0
+
Router(config)#interface GigabitEthernet 0/0
 
Router(config-if)#ip nat inside
 
Router(config-if)#ip nat inside
 
Router(config-if)#exit
 
Router(config-if)#exit
Línia 75: Línia 98:
  
 
// Estableix la traducció d'adreces
 
// Estableix la traducció d'adreces
Router(config)#ip nat inside source static ''ip-local''  ''ip-publica''         
+
Router(config)#ip nat inside source static 192.168.100.100 200.200.200.200
  
 
</code></pre></html>
 
</code></pre></html>
  
És el mateix que la redirecció, que es veu més endavant, l'adreça local es mappeja amb la pública i tot el que arriba a la pública es dirigeix a la privada.
+
===  Comandes IOS PAT, dinàmic ===
  
====  Comandes IOS PAT, dinàmic ====
 
  
 +
Utilitza '''llistes d'accés ACL''', primerament cal definir una llista per incloure totes les adreces privades que seran traduïdes.
  
Utilitza llistes d'accés
+
Cal recordar que a les llistes les màscares s'indiquen amb el format '''wildcard'''. 
  
<pre>
+
Es poden crear vàries llistes d'accés amb el mateix número per incloure adreces de diferents xarxes.
Router(config)#access-list ''X'' permit ''net wildmask''
 
// pe. access-list ''1'' permit ''192.168.10.0 0.0.0.255
 
Router(config)#ip nat inside source list ''X'' interface ''serial0/0'' overload
 
  
// Marca l'adreça com connectada a l'interior
+
En aquest cas totes les adreces privades es tradueixen per '''una única adreça pública''', normalment la que està configurada a la interfície externa (pública, outside).
Router(config)#interface FastEthernet ''X ''
+
 
 +
Relació many-to-one, cada IP privada sempre se li assigna la mateixa IP pública (Hi ha overload).
 +
 
 +
[[Fitxer:nat_dinamic_overload.png|none|600px]]
 +
 
 +
 
 +
<html><pre><code>
 +
// Marca la interfície com connectada a l'interior
 +
Router(config)#interface GigabitEthernet 0/0
 
Router(config-if)#ip nat inside
 
Router(config-if)#ip nat inside
 
Router(config-if)#exit
 
Router(config-if)#exit
// Tradueix les adreces locals de la llista d'accés a  l'adreça de la interface serial 0/0
 
Router(config)#interface serial ''X ''
 
Router(config-if)#ip nat outside
 
</pre>
 
  
 +
// Marca la interfície com connectada a l'exterior
 +
Router(config)#interface Serial 0/0/0
 +
Router(config-if)#ip nat outside 
 +
 +
// Definir la llista d'accés
 +
Router(config)#access-list 2 permit 192.168.2.0 0.0.0.255
 +
 +
Router(config)#ip nat inside source list 2 interface Serial0/0/0 overload
 +
</code></pre></html>
  
Es poden crear vàries llistes d'accés amb el mateix número per a adreces diferents
+
=== Comandes IOS PAT, dinàmic vàries adreces públiques POOL. ===
  
Relació many-to-one, cada IP privada sempre se li assigna la mateixa IP pública (Hi ha overload)
 
  
==== Comandes IOS PAT, dinàmic vàries adreces públiques POOL. ====
+
En aquest cas l'organització disposa d'un '''rang d'adreces públiques''' (pool) que es van assignant a mesura que els clients surten a l'exterior.
  
 +
Relació many-to-many.
  
<pre>
+
Si hi ha més adreces privades que les disponibles al POOL cal afegir l'opció de sobrecàrrega '''overload'''. Tradueix les adreces locals de la llista d'accés a una de les adreces del pool fins que s'acaben i després torna a començar per la primera, per exemple seguint una planificació '''round robin'''.
Router(config)# ip nat pool ''nom ip-publica_ini ip-publica_fi ''netmask'' mask ''
 
// pool d'adreces públiques
 
Router(config)# access-list ''X'' permit ''net wildmask''
 
  
// pe. ''access-list ''1'' permit ''192.168.10.0 0.0.0.255''
+
[[Fitxer:nat_dinamic.png|none|600px]]
Router(config)# ip nat inside source list ''X'' pool ''nom''
 
  
// Marca l'adreça com connectada a l'interior
+
 
Router(config)#interface FastEthernet ''X ''
+
<html><pre><code>
 +
// Marca la interfície com connectada a l'interior
 +
Router(config)#interface GigabitEthernet 0/0
 
Router(config-if)#ip nat inside
 
Router(config-if)#ip nat inside
 
Router(config-if)#exit
 
Router(config-if)#exit
// Tradueix les adreces locals de la llista d'accés a una de les adreces del pool, round robin
+
 
Router(config)# interface Serial ''X''
+
// Marca la interfície com connectada a l'exterior
Router(config-if)# ip nat outside
+
Router(config)#interface Serial 0/0/1
</pre>
+
Router(config-if)#ip nat outside 
 +
 
 +
// Definir la llista d'accés
 +
Router(config)#access-list 7 permit 172.16.0.0 0.0.255.255
 +
 
 +
 
 +
// pool d'adreces públiques, per indicar la màscara també es pot fer servir prefix-length NUM
 +
Router(config)# ip nat pool adreces201 201.201.201.101 201.201.201.227 netmask 255.255.255.0
 +
 
 +
 
 +
// Estableix la traducció de les adreces de la llista amb el pool d'adreces públiques
 +
Router(config)# ip nat inside source list 7 pool adreces201 [overload]
 +
</code></pre></html>
 +
 
 +
En cas que les adreces del POOL no estiguin configurades a cap interfície del Router, caldria configurar una interfície loopback amb alguna de les adreces del POOL, i afegir aquesta xarxa a qualsevol protocol de Routing que fem servir
 +
 
 +
<html><pre><code>
 +
interface Loopback0
 +
ip address 201.201.201.101 255.255.255.0
 +
!
 +
 
 +
router ospf 1
 +
router-id 1.1.1.1
 +
...
 +
network 201.201.201.0 0.0.0.255 area 0
 +
!
 +
</code></pre></html>
 +
 
 +
=== Reenviament de port. Port forwarding ===
  
  
Relació one-to-one, cada IP privada sempre se li assigna IP pública (No hi ha overload)
+
Per '''redireccionar les comunicacions a un servidor intern'''.
  
==== Port forwarding ====
+
Es tracta d'un NAT invers, les peticions arriben destinades a la '''IP pública del Router''' des de l'exterior i a un port concret.
  
 +
El router reenvia aquestes peticions a l'adreça IP privada d'un dels equips xarxa local (Un servidor generalment), al mateix port o a un altre de diferent.
  
Per redireccionar les comunicacions a un servidor intern. Es tracta d'una NAT invers, les peticions arriben al router des de l'exterior dirigides a un port, i el router les reenvia a un dels hosts interns de la xarxa local (Un servidor generalment).
 
  
<pre>
+
En aquest cas als paquets que arriben de la xarxa pública destinats a l'adreça externa del Router se'ls '''modifica l'adreça IP destí (i opcionalment el port destí) substituint-la per la privada''' de l'equip local (Servidor).  
Router(config)#ip nat inside source static tcp 192.168.10.3 80 85.10.15.7 80
 
  
// Marca l'adreça com connectada a l'interior
+
Quan s'envien les respostes es fa el canvi invers abans d'enviar-les cap a l'exterior.
Router(config)#interface FastEthernet ''X ''
+
 
 +
 
 +
 
 +
[[Fitxer:nat_port_forwarding.png|none|600px]]
 +
 
 +
 
 +
<html><pre><code>
 +
// Marca la interfície com connectada a l'interior
 +
Router(config)#interface GigabitEthernet 0/1
 
Router(config-if)#ip nat inside
 
Router(config-if)#ip nat inside
 
Router(config-if)#exit
 
Router(config-if)#exit
  
Router(config)# interface serial ''X ''
+
// Marca la interfície com connectada a l'exterior
Router(config-if)#ip nat outside
+
Router(config)#interface Serial 0/0/0
 +
Router(config-if)#ip nat outside
 +
 
 +
 
 +
// Les peticions que arribin al port 8080 de la IP 85.10.15.7 externa del Router,
 +
// seran reenviats al port 80 del servidor local 192.168.10.5
 +
Router(config)#ip nat inside source static tcp 10.10.10.10 80 199.199.199.2 8080
  
</pre>
+
</code></pre></html>
  
=== Consulta i verificació de les traduccion ===
+
== Consulta i verificació de les traduccions ==
  
 +
Registre de les traduccions actives
  
<pre>
+
<html><pre><code>
 
Router#show ip nat translations
 
Router#show ip nat translations
 +
Pro Inside global Inside local Outside local Outside global
 +
udp 199.199.199.2:53 10.10.10.10:53 --- ---
 +
udp 199.199.199.2:53 10.10.10.10:53 201.201.201.102:1027 201.201.201.102:1026
 +
udp 199.199.199.2:53 10.10.10.10:53 201.201.201.103:1029 201.201.201.103:1028
 +
</code></pre></html>
 +
  
Router#show ip nat statistics
+
Estadístiques del NAT
 +
<html><pre><code>
 +
Router#sh ip nat statistics
 +
Total translations: 5 (1 static, 4 dynamic, 5 extended)
 +
Outside Interfaces: Serial0/0/0
 +
Inside Interfaces: GigabitEthernet0/0 , GigabitEthernet0/1
 +
Hits: 51 Misses: 109
 +
Expired translations: 8
 +
Dynamic mappings:
 +
</code></pre></html>
  
 +
Esborra totes les traduccions dinàmiques
 +
<html><pre><code>
 
Router#clear ip nat translations *  
 
Router#clear ip nat translations *  
 +
</code></pre></html>
  
// Esborra totes les traduccions dinàmiques
+
 
 +
Depuració de les traduccions
 +
<html><pre><code>
 
Router# debug ip nat
 
Router# debug ip nat
</pre>
+
</code></pre></html>

Revisió de 15:31, 16 maig 2025

torna M7 - Planificació i administració de xarxes


Adreçament privat. NAT i PAT

Introducció

La traducció d'adreces de xarxa NAT/PAT és la solució actual més utilitzada per evitar l'esgotament d'adreces IPv4 públiques.


NAT (Network Address Translation), Un dispositiu de xarxa, router o firewall, canvia les adreces dels paquets que el travessen entre públiques i privades. Aquest funcionament és estàtic, sempre són les mateixes adreces, i és útil per mapejar adreces de dispositius que siguin accessibles des de l'exterior com servidors.


Nat2.png


També facilita l'administració de xarxa perquè l'adreçament IP és independent del proveïdor de serveis (ISP).


PAT (Port Address Translation) és una variació del protocol que fa la traducció d'adreces en ports, de manera que totes les adreces privades es tradueixen en una sola pública però amb un número de port diferent.


Pat.png


En general intenta conservar el port origen, però en cas que els ports origen coincideixin, PAT usa un altre port.


Rangs d'adreces privades (RFC 1918)


Classe Interval
A 10.0.0.0/8 10.0.0.0 - 10.255.255.255
B 172.16.0.0/12 172.16.0.0 - 172.31.255.255
C 192.168.0.0/16 192.168.0.0 - 192.168.255.255


Els routers mai han d'enrutar aquestes adreces.

Exemples Configuració

http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tech_note09186a0080094e77.shtml

Les interfícies locals es marquen com internes (inside) i les públiques com externes (outside)


Comandes IOS NAT, estàtic

Una adreça local privada es mapeja a una adreça pública.

Traducció one-to-one. Als paquets que arriben de la xarxa local amb aquesta adreça privada se'ls modifica l'adreça IP origen substituint-la per la pública.

Quan arriben les respostes des de l'exterior es fa el canvi invers abans d'enviar-les a l'equip local.


Nat estatic.png



// Marca la interfície com connectada a l'interior
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ip nat inside
Router(config-if)#exit

// Marca la interfície com connectada a l'exterior
Router(config)#interface Serial 0/0/0
Router(config-if)#ip nat outside                

// Estableix la traducció d'adreces
Router(config)#ip nat inside source static 192.168.100.100 200.200.200.200

Comandes IOS PAT, dinàmic

Utilitza llistes d'accés ACL, primerament cal definir una llista per incloure totes les adreces privades que seran traduïdes.

Cal recordar que a les llistes les màscares s'indiquen amb el format wildcard.

Es poden crear vàries llistes d'accés amb el mateix número per incloure adreces de diferents xarxes.

En aquest cas totes les adreces privades es tradueixen per una única adreça pública, normalment la que està configurada a la interfície externa (pública, outside).

Relació many-to-one, cada IP privada sempre se li assigna la mateixa IP pública (Hi ha overload).

Nat dinamic overload.png



// Marca la interfície com connectada a l'interior
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ip nat inside
Router(config-if)#exit

// Marca la interfície com connectada a l'exterior
Router(config)#interface Serial 0/0/0
Router(config-if)#ip nat outside  

// Definir la llista d'accés
Router(config)#access-list 2 permit 192.168.2.0 0.0.0.255

Router(config)#ip nat inside source list 2 interface Serial0/0/0 overload

Comandes IOS PAT, dinàmic vàries adreces públiques POOL.

En aquest cas l'organització disposa d'un rang d'adreces públiques (pool) que es van assignant a mesura que els clients surten a l'exterior.

Relació many-to-many.

Si hi ha més adreces privades que les disponibles al POOL cal afegir l'opció de sobrecàrrega overload. Tradueix les adreces locals de la llista d'accés a una de les adreces del pool fins que s'acaben i després torna a començar per la primera, per exemple seguint una planificació round robin.

Nat dinamic.png



// Marca la interfície com connectada a l'interior
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ip nat inside
Router(config-if)#exit

// Marca la interfície com connectada a l'exterior
Router(config)#interface Serial 0/0/1
Router(config-if)#ip nat outside  

// Definir la llista d'accés
Router(config)#access-list 7 permit 172.16.0.0 0.0.255.255


// pool d'adreces públiques, per indicar la màscara també es pot fer servir prefix-length NUM
Router(config)# ip nat pool adreces201 201.201.201.101 201.201.201.227 netmask 255.255.255.0


// Estableix la traducció de les adreces de la llista amb el pool d'adreces públiques
Router(config)# ip nat inside source list 7 pool adreces201 [overload]

En cas que les adreces del POOL no estiguin configurades a cap interfície del Router, caldria configurar una interfície loopback amb alguna de les adreces del POOL, i afegir aquesta xarxa a qualsevol protocol de Routing que fem servir


interface Loopback0
 ip address 201.201.201.101 255.255.255.0
!

router ospf 1
 router-id 1.1.1.1
 ...
 network 201.201.201.0 0.0.0.255 area 0
!

Reenviament de port. Port forwarding

Per redireccionar les comunicacions a un servidor intern.

Es tracta d'un NAT invers, les peticions arriben destinades a la IP pública del Router des de l'exterior i a un port concret.

El router reenvia aquestes peticions a l'adreça IP privada d'un dels equips xarxa local (Un servidor generalment), al mateix port o a un altre de diferent.


En aquest cas als paquets que arriben de la xarxa pública destinats a l'adreça externa del Router se'ls modifica l'adreça IP destí (i opcionalment el port destí) substituint-la per la privada de l'equip local (Servidor).

Quan s'envien les respostes es fa el canvi invers abans d'enviar-les cap a l'exterior.


Nat port forwarding.png



// Marca la interfície com connectada a l'interior
Router(config)#interface GigabitEthernet 0/1
Router(config-if)#ip nat inside
Router(config-if)#exit

// Marca la interfície com connectada a l'exterior
Router(config)#interface Serial 0/0/0
Router(config-if)#ip nat outside  


// Les peticions que arribin al port 8080 de la IP 85.10.15.7 externa del Router, 
// seran reenviats al port 80 del servidor local 192.168.10.5
Router(config)#ip nat inside source static tcp 10.10.10.10 80 199.199.199.2 8080

Consulta i verificació de les traduccions

Registre de les traduccions actives


Router#show ip nat translations
Pro Inside global	Inside local	Outside local		Outside global
udp 199.199.199.2:53	10.10.10.10:53	---			---	
udp 199.199.199.2:53	10.10.10.10:53	201.201.201.102:1027	201.201.201.102:1026
udp 199.199.199.2:53	10.10.10.10:53	201.201.201.103:1029	201.201.201.103:1028


Estadístiques del NAT


Router#sh ip nat statistics
Total translations: 5 (1 static, 4 dynamic, 5 extended)
Outside Interfaces: Serial0/0/0
Inside Interfaces: GigabitEthernet0/0 , GigabitEthernet0/1
Hits: 51 Misses: 109
Expired translations: 8
Dynamic mappings:

Esborra totes les traduccions dinàmiques


Router#clear ip nat translations * 


Depuració de les traduccions


Router# debug ip nat