NAT32 Version 2 contains advanced Dial-Up Networking support based on the Microsoft RAS API. The behaviour of the NAT32 Dialer is controlled by two distinct sets of variables: the master dialer variables and the interface-specific dialer variables.
Master Dialer Variables
Master Autodial is the master autodial switch. When this variable is 0, no autodial will take place, even if autodial is enabled on one or more PPP Client interfaces.
Autodial Default Connection is the name of the connection to be auto-dialled if no other connection name was specified. This variable defaults to the Windows Default Connection name as specified in the Internet Explorer settings on your computer. The global dialer variables can be viewed and modified using the autodial command.
Interface-specific Dialer Variables
Autodial controls autodialing on a specific PPP Client interface.
Autodial Connection is the name of the connection to be auto-dialled on this particular PPP Client interface. The interface-specific dialer variables can be viewed and modified using the dialcfg command.
Various toolbar icons and menu items are available for your convenience.
Multiple connections can be in place at any given time in order to boost Internet throughput. Booster connections can be dialed automatically when total load reaches a certain level for a certain period of time. The booster connections can also be disconnected automatically as the total load decreases.
Connection Aggregation is supported (see the setis command), allowing multiple connections to be shared by all machines, or certain connections to be reserved for use by specific machines or subnets. Because of this route selection by source address capability, NAT32 connection aggregation is superior to other forms of connection aggregation such as Multilink, which require ISP support and which cannot allocate traffic to connections dynamically.
Note that connection aggregation increases total throughput only. It does not increase connection speed. Connection aggregation can increase the total number of packets per second being transferred, but each packet is transferred at the speed supported by the connection it is using.
Keepalive is enabled per default and ensures that a connection, once established, is not disconnected when idle. This may result in excessive call charges in regions with timed local calls, so the command:
kill activecan be used to disable the feature.
An alternative keepalive method is to issue the command:
alive [off | minutes]The alive thread will then regularly send a UDP packet to 126.96.36.199 (a non-existant Internet address) in order to force dialing or to keep an existing connection connected.
Script files are supported which allow user-defined actions to be carried out before a connection is dialled (dialup.txt) and after a connection has been established (connect). Similarly, file hangup.txt is executed before a hangup takes place and file disconnect.txt is executed after a connection has been disconnected.
NAT32 Builds 22216 and later behave differently in that the startup.txt file first checks for a file with the same name as the connection being dialled, and, if it exists, executes that file instead. The same applies to the disconnect.txt file.
Windows supports a variable number of NDISWANIP instances. The implication of this is that NAT32 must recalculate interface bindings at runtime, i.e. when connections are established. NAT32 therefore monitors the relevant TCP/IP Registry settings and recalculates all PPP Client Interface bindings whenever Windows changes those settings. The binding for an established connection remains fixed for the duration of that connection, but subsequent connections may use totally different NDISWANIP instances. NAT32 will always attempt to bind an NDISWANIP instance to the NAT32 interface with a matching connection name, but this is not possible if the connection was already in place when NAT32 started. In all other cases, the first NDISWANIP instance found will be bound to the first available NAT32 PPP Client interface, the second to the second and so on. It can occur that Windows creates additional NDISWANIP instances at runtime, in which case NAT32 must be reconfigured, if those additional instances are to be used within NAT32. The maximum number of NAT32 PPP interfaces is 8.
Note that the connect.txt file is not executed for PPP connections already in place when NAT32 starts. This is because, per definition, the connect.txt file is executed only when a connection is established, and at no time thereafter. However, if such a connection is disconnected while NAT32 is running, the disconnect.txt file will be executed.
NAT32 treats VPN connections somewhat differently because users generally establish such connections for a specific purpose. Two common scenarios are:
NAT32 supports a special DNS Resolver list for such purposes. If a full (or partial) domain name is added to the special list, then traffic for all matching domains is routed via the current VPN connection.
When a VPN connection is established, the file vpn.txt is executed instead of connect.txt. This files sets the Interface Selection algorithm to main so that all Internet traffic for special names is routed via the VPN and all other Internet traffic is routed via the main Internet interface.
NOTE: Users of Windows XP should ensure that the NDISWANIP adapter is at the top of the TCP/IP Binding List. Please see this Microsoft Support Page for details.
The NAT32 dialer uses the default RAS Phonebook rasphone.pbk as well as one additional phonebook as specified with the command:
setpbkf "path"where "path" is the full pathname of the desired additional phonebook file.
Note that the default phonebook file is specific to the account under which the NAT32 application or service runs. If that account has no phonebook file, any available phonebook file can be selected by adding the following commands to file user.txt:
if app setpbkf "path"
if service setpbkf "path"
The NAT32 Dialer also supports the following RAS Dialogs:
rasentry [phonebook | * [entry]
raspbk [phonebook | * [entry]]Command rasentry can be used to view or edit the Properties of a specified entry in a specified phonebook, to create a new connection in a specified phonebook, or to just run the Network Connection Wizard. The special phonebook name '*' denotes either phonebook, 'D' denotes the default phonebook, 'A' denotes the additional phonebook.
Command raspbk displays the main Windows Dialing dialog box for a specified phonebook (or * for both phonebooks). The dialog can be used to either dial a connection or view the Properties of a connection. Command raspbk 'phonebook' 'entry' displays the same dialog box but selects the specified connection entry in the specified phonebook in the dialog box.
Windows RAS Server, autodial, dial, dialcfg, dialn, desktop, hangup, hangupn, sethtx (Host Transfer Mode), setis (Interface Selection)