Hoe werkt NAT

Het is een feit dat er wereldwijd te weinig IPv4 adressen beschikbaar zijn vanwege de snelle groei van het internet. Om dit probleem op te lossen heeft men destijds NAT bedacht.
NAT staat voor Network Address Translation. Dit principe vertaalt publieke IP adressen naar interne IP adressen en vice versa. Zodoende kan je met meerdere apparaten één publiek IP adres delen. Zo krijgt elk apparaat in het netwerk een intern IP adres toegewezen en zorgt de router ervoor dat alle verkeer bij het juiste interne IP adres terechtkomt.

Een goede werking van NAT is voor VoIP essentieel!

Wanneer er vanaf een intern apparaat een bepaalde server wordt aangeroepen, zorgt de router er voor dat er een vrije poort wordt toegewezen en de server terug kan communiceren.

Voorbeeld netwerk:

ToestelIntern IP adresInterne poort
200192.168.1.105060
201192.168.1.115060
202192.168.1.125060
SIP ServerIP adres: 100.100.100.100SIP Poort 7070

De meeste routers werken met Dynamic NAT, deze maakt automatisch regels aan als er een uitgaande verbinding wordt gemaakt.

Wanneer één toestel verbinding maakt met de SIP (VoIP) server dan gebeurt het volgende:

  1. Toestel 200 stuurt een registratieverzoek naar de router met als desination de SIP server (100.100.100.100:7070) vanaf source 192.168.1.10:5060.
  2. De router ontvangt dit verzoek en vervangt het source IP naar het publieke IP, namelijk source 123.123.123.123:5060 met als destination 100.100.100.100:7070
  3. Hier wordt vervolgens een NAT regel voor aaangemaakt:
Intern source IP + PoortExtern source IP + PoortDestination IP + Poort
192.168.1.10:5060123.123.123.123:5060100.100.100.100:7070

Poort 5060 staat nu open, maar alleen voor het IP van de SIP server. Als er nu verkeer vanaf de SIP Server (100.100.100.100:7070) wordt verstuurd naar 123.123.123.123:5060, weet de router voor welk intern apparaat het verkeer bedoelt is, namelijk toestel 200. Alle andere verkeer naar 5060 wordt geblokkeerd.

Als er nu een tweede toestel wordt aangesloten, gebeurt het volgende:

  1. Toestel 201 stuurt een registratieverzoek naar de router met als desination de SIP server vanaf source 192.168.1.11:5060.
  2. De router ontvangt dit verzoek en vertaald het source IP naar het publieke IP, maar poort 5060 is al bezet, dan een random poort toewijzen bijvoorbeeld source 123.123.123.123:17545 met als destination 100.100.100.100:7070
  3. Hier wordt vervolgens een tweede NAT regel voor aaangemaakt:
Intern source IP + PoortExtern source IP + PoortDestination IP + Poort
192.168.1.10:5060123.123.123.123:5060100.100.100.100:7070
192.168.1.11:5060123.123.123.123:17545100.100.100.100:7070

Nu kan de SIP server communiceren met beide toestellen. Moet toestel 200 gaan rinkelen, dan stuurt de SIP server een invite naar 123.123.123.123:5060. Moet toestel 201 gaan rinkelen, verstuur dan de invite naar 123.123.123.123:17545.

Als er drie toestellen worden aangesloten kan een NAT tabel er als volgt uitzien:

Intern source IP + PoortExtern source IP + PoortDestination IP + Poort
192.168.1.10:5060123.123.123.123:5060100.100.100.100:7070
192.168.1.11:5060123.123.123.123:17545100.100.100.100:7070
192.168.1.12:5060123.123.123.123:19354100.100.100.100:7070

Welke poorten de router gebruikt, vind je terug in de NAT tabel van je router. En voor het gemak ook in TRiNG (Status–>Peers)

UDP Timer

De NAT Tabel wordt automatisch ververst door middel van de UDP Timer, afhankelijk van het type router wordt er gekeken of er nog verkeer over een bepaalde NAT regel plaatsvindt. Zo ja, dan wordt de countdowntimer gereset en blijft de NAT regel behouden. Als er geen informatie wordt uitgewisseld over de desbetreffende regel wordt deze na verloop van tijd automatisch verwijderd. Maar in sommige routers wordt een regel na X aantal seconden verwijderd zonder te kijken of er verkeer plaatsvindt over deze regel. In sommige routers staat deze UDP timer te laag en worden hierdoor verbindingen verbroken waardoor een toestel onbereikbaar wordt.