Port triggering
Port triggering is a configuration option on a NAT-enabled router that allows a host machine to dynamically and automatically forward a specific port back to itself. Port triggering opens an incoming port when the user's computer is using a specified outgoing port for specific traffic.
Description
Port triggering is a way to automate port forwarding in which outbound traffic on predetermined ports ('triggering ports') causes inbound traffic to specific incoming ports to be dynamically forwarded to the initiating host, while the outbound ports are in use. This allows computers behind a NAT-enabled router on a local network to provide services that would normally require the computer to have a fixed address on the local network. Port triggering triggers can open an incoming port when a client on the local network makes an outgoing connection on a predetermined port or range of ports.
Example
As an example of how port triggering operates, when connecting to IRC (Internet Relay Chat), it's common to authenticate a username with the Ident protocol via port 113.
When connecting to IRC, the client computer typically makes an outgoing connection on port 6667 (or any port in the range 6660-7000), causing the IRC server to attempt to verify the username given by making a new connection back to the client computer on port 113. When the computer is behind a NAT, the NAT silently drops this connection because it does not know to which computer behind the NAT it should send the request to connect.
In the case of port triggering, the router is configured so that when an outbound connection is attempted on any port from 6660 to 7000, it should allow inbound connections to that particular computer. This gives it more flexibility than static port forwarding because it is not necessary to set it up for a specific address on your network. Security is also gained in a sense that the inbound port is not left open when not actively in use.
Disadvantages
Port triggering has the disadvantage that it only allows one client on the network to supply a particular service that uses a particular incoming port. Port triggering is unsuitable for servers behind a NAT router because it relies on the local computer to make an outgoing connection before it can receive incoming ones. On some routers it is possible to have more than one client use port triggering and port forwarding, but not simultaneously.