NAT Port Mapping Protocol (NAT-PMP) is een protocol dat wordt gebruikt voor transparante peer-to-peer netwerkconnectiviteit van personal computers en netwerkgeschikte intelligente apparaten of toestellen.
Het protocol werkt door het externe IPv4-adres van een NAT-gateway op te halen, waardoor een client zijn externe IPv4-adres en poort bekend kan maken aan peers die met hem willen communiceren, door dynamische NAT-regels aan te maken.
NAT-PMP gebruikt UDP-poortnummer 5350 aan de clientzijde en 5351 aan de serverzijde.
Er zijn twee interfacetypen voor PMP: internal (die waarop lokale clients zijn aangesloten) en external (die waarop het internet is aangesloten). Een router mag slechts één actieve externe interface hebben met een 'publiek' IP-adres erop
Waarschuwing Een router kan slechts één actieve external interface hebben met een 'publiek' IP-adres erop. De NAT-PMP internal interface kan NAT-mapping aanmaken voor elk subnet, niet alleen voor het subnet dat op de interne interface aanwezig is, dus wees voorzichtig bij het instellen van internal interfaces.
Zie voor meer details over NAT PMP RFC 6886
De NAT-PMP-configuratie is toegankelijk via het menu /ip/nat-pmp.
Configuratievoorbeeld

Laten we aannemen dat we de hierboven weergegeven basisopstelling voor thuis al hebben.
Voordat we PMP-NAT inschakelen, moeten we uitgaande LAN-pakketten masquerade'n.
/ip/firewall/nat
add action=masquerade chain=srcnat out-interface=ether1
Nu kunnen we PMP inschakelen en interne en externe interfaces toevoegen:
/ip/nat-pmp/set enable=yes
/ip/nat-pmp/interfaces> add interface=ether1 type=external disabled=no
/ip/nat-pmp/interfaces> add interface=ether2 type=internal disabled=no
Wanneer de client aan de kant van de interne interface een PMP-verzoek stuurt, worden er dynamische NAT-regels op de router aangemaakt:
[admin@MikroTik] > ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=masquerade out-interface=ether1
1 D ;;; nat-pmp 192.168.88.10: ApplicationX
chain=dstnat action=dst-nat to-addresses=192.168.88.10 to-ports=55000 protocol=tcp
dst-address=10.0.0.1 in-interface=ether1 dst-port=55000
2 D ;;; nat-pmp 192.168.88.10: ApplicationX
chain=dstnat action=dst-nat to-addresses=192.168.88.10 to-ports=55000 protocol=udp
dst-address=10.0.0.1 in-interface=ether1 dst-port=55000
Properties
Algemene eigenschappen
Beschikbaar via het menu /ip/nat-pmp.
| Property | Description |
|---|---|
| enabled (yes | no) | Schakelt de NAT-PMP-service in |
NAT PMP Interfaces
Beschikbaar via het menu /ip/nat-pmp/interfaces.
| Property | Description |
|---|---|
| interface (string; Standaard: ) | Interfacenaam waarop PMP zal draaien |
| type (external | internal) | PMP-interfacetype:<code>external</code> - the interface a global IP address is assigned to<code>internal</code> - router's local interface the clients are connected to |
| forced-ip (Ip; Default: ) | Maakt het mogelijk om op te geven welk publiek IP-adres moet worden gebruikt als de externe interface meer dan één IP-adres beschikbaar heeft. |
Waarschuwing In complexere opstellingen met VLAN's, waarbij de VLAN-interface deel uitmaakt van het LAN, moet de VLAN-interface zelf als de interne interface worden opgegeven om PMP correct te laten werken.