Diferència entre revisions de la pàgina «A7. Adreçament privat. NAT i PAT»
(→Introducció) |
(→Comandes IOS PAT, dinàmic vàries adreces públiques POOL.) |
||
(Hi ha 14 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 26: | Línia 26: | ||
[[Fitxer:pat.png]] | [[Fitxer:pat.png]] | ||
− | |||
Línia 33: | Línia 32: | ||
− | + | <p class="h4">Rangs d'adreces privades (RFC 1918) </p> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<html> | <html> | ||
− | <table class="table"> | + | <div class="table-responsive"> |
+ | <table class="table table-bordered"> | ||
<thead class="thead-dark"> | <thead class="thead-dark"> | ||
<tr> | <tr> | ||
Línia 76: | Línia 61: | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
+ | </div> | ||
</html> | </html> | ||
Línia 95: | Línia 81: | ||
Quan arriben les respostes des de l'exterior es fa el canvi invers abans d'enviar-les a l'equip local. | Quan arriben les respostes des de l'exterior es fa el canvi invers abans d'enviar-les a l'equip local. | ||
+ | |||
+ | |||
+ | [[Fitxer:Nat_estatic.png|none|600px]] | ||
+ | |||
<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 | + | 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 108: | Línia 98: | ||
// Estableix la traducció d'adreces | // Estableix la traducció d'adreces | ||
− | Router(config)#ip nat inside source static 192.168. | + | Router(config)#ip nat inside source static 192.168.100.100 200.200.200.200 |
</code></pre></html> | </code></pre></html> | ||
Línia 124: | Línia 114: | ||
Relació many-to-one, cada IP privada sempre se li assigna la mateixa IP pública (Hi ha overload). | 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> | <html><pre><code> | ||
// Marca la interfície com connectada a l'interior | // Marca la interfície com connectada a l'interior | ||
− | Router(config)#interface | + | 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 137: | Línia 129: | ||
// Definir la llista d'accés | // Definir la llista d'accés | ||
− | Router(config)#access-list | + | Router(config)#access-list 2 permit 192.168.2.0 0.0.0.255 |
− | Router(config)#ip nat inside source list | + | Router(config)#ip nat inside source list 2 interface Serial0/0/0 overload |
</code></pre></html> | </code></pre></html> | ||
Línia 147: | Línia 139: | ||
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. | 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. Tradueix les adreces locals de la llista d'accés a una de les adreces del pool, per exemple seguint una planificació '''round robin'''. | + | 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'''. | ||
+ | |||
+ | [[Fitxer:nat_dinamic.png|none|600px]] | ||
<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 | + | 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 | ||
// Marca la interfície com connectada a l'exterior | // Marca la interfície com connectada a l'exterior | ||
− | Router(config)#interface Serial 0/0/ | + | Router(config)#interface Serial 0/0/1 |
Router(config-if)#ip nat outside | Router(config-if)#ip nat outside | ||
// Definir la llista d'accés | // Definir la llista d'accés | ||
− | Router(config)#access-list | + | 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 | // pool d'adreces públiques, per indicar la màscara també es pot fer servir prefix-length NUM | ||
− | Router(config)# ip nat pool | + | 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 | // Estableix la traducció de les adreces de la llista amb el pool d'adreces públiques | ||
− | Router(config)# ip nat inside source list 1 | + | 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> | </code></pre></html> | ||
Línia 185: | Línia 195: | ||
Quan s'envien les respostes es fa el canvi invers abans d'enviar-les cap a l'exterior. | Quan s'envien les respostes es fa el canvi invers abans d'enviar-les cap a l'exterior. | ||
+ | |||
+ | |||
+ | |||
+ | [[Fitxer:nat_port_forwarding.png|none|600px]] | ||
<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 | + | 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 | ||
Línia 200: | Línia 214: | ||
// Les peticions que arribin al port 8080 de la IP 85.10.15.7 externa del Router, | // 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 | // seran reenviats al port 80 del servidor local 192.168.10.5 | ||
− | Router(config)#ip nat inside source static tcp | + | Router(config)#ip nat inside source static tcp 10.10.10.10 80 199.199.199.2 8080 |
</code></pre></html> | </code></pre></html> | ||
− | + | == Consulta i verificació de les traduccions == | |
+ | Registre de les traduccions actives | ||
<html><pre><code> | <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> | ||
− | |||
− | |||
− | // Esborra totes les traduccions dinàmiques | + | 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> | ||
− | + | ||
+ | Depuració de les traduccions | ||
+ | <html><pre><code> | ||
Router# debug ip nat | Router# debug ip nat | ||
</code></pre></html> | </code></pre></html> |
Revisió de 15:31, 16 maig 2025
torna M7 - Planificació i administració de xarxes
Contingut
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.
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.
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.
// 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).
// 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.
// 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.
// 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