Vyatta OFR supports multiple VPN Clients(either L2TP/IPsec and/or PPTP) located behind it(when NAT-ing)
Many people ask: "Does ISA 2006 support multiple VPN clients located behind the same NAT device at a time?", "If not, do you know a good VPN server that support this feature?"
The answer is: "Yes, ISA 2006, installed on Windows 2003 R2 SP2, supports multiple VPN clients located behind the same NAT device, L2TP/IPsec VPN Clients or/and PPTP VPN Clients."
However, the NAT device must also "support" these clients. Some NAT devices interfere and only one VPN client can successfully connect to ISA 2006 VPN server at a time, in both cases, PPTP or L2TP/IPsec connections.
Without entering in technical details we can quickly summarize the problems that might appear when multiple L2TP/IPsec or PPTP clients behind a NAT device attempt to connect to ISA 2006 behind the same NAT device at a time.
In case of L2TP/IPsec, the NAT device must resume to the simple job of NAT-ing and forwarding packets. ISA 2006 and Microsoft VPN clients in Windows XP or Windows Vista are NAT-T aware.
RFC3715, which "does not specify an Internet standard of any kind", describes known incompatibilities between NetworkAddress Translation (NAT) and IPsec, and describes the requirements for addressing them.
NAT-T modifies existing protocols instead of adjusting NAT devices.
RFC3947, Negotiation of NAT-Traversal in the IKE, an "Internet Official Protocol Standards ", describes how two peers can discover the presence of a NAT device between them and how to negotiate the use of UDP encapsulated IPsec packets in IKE's Quick Mode.
RFC3948, UDP Encapsulation of IPsec ESP Packets, an "Internet Official Protocol Standards ", defines methods to encapsulate and decapsulate IP Encapsulating Security Payload (ESP) packets inside UDP packets for traversing Network Address Translators.
The NAT-T implementation on ISA 2006 is based on the draft-ietf-ipsec-nat-t-ike-02. Same thing can be said about Windows XP SP2 and Windows 2003 VPN clients. Only the VPN client from Vista is using the RFC3947 NAT-T implementation along with the draft implementation.
UDP encapsulation is required to fix the inability to handle IPsec ESP traffic by NATs(Network Address Translations).
Doing so the NAT device will never see any IPsec ESP packets because these packets are encapsulated inside UDP packets.
However, some NAT devices, especially cheap ones, home devices, recongnize IPsec traffic even when both peers are NAT-T aware. They implement an IPsec pass-through feature that is IPsec aware. In theory this non-RFC feature should not disturb the NAT-T process since IPsec ESP packets will never be seen by the NAT device, being encapsulated inside UDP packets. In reality things might be different though.
Also, some NAT devices monitor UDP ports like 500, IKE UDP port. They actually require the IPsec pass-through feature to be enabled in order to be able to connect to the VPN server.
In case of PPTP VPN clients, NAT devices have problems tracking the GRE connection and the Call ID for PPTP. Vyatta had an issue with the scenario from this lab, issue which was fixed:
So many people simply ask: "Do you know a good router/firewall which supports multiple VPN clients behind it when doing NAT ?"
The answer is "Yes, I do".
The inability to just prove these points(ISA 2006 case and NAT device case) without requiring the already cautious customer to pay some extra money in order to find out if it's so, can lead to frustration.
Luckily a straight answer can be given: Vyatta is such a router that supports multiple VPN clients behind it when doing NAT, either L2TP/IPsec or/and PPTP VPN clients and this can be proven in a second using VMware Server for example.
Both ISA 2006 and Vyatta can be installed as VMs in VMware Server so you can test their features and even more important if they actually do what you want them to do. For example, ISA 2006 is offered as a trial on Microsoft's site and Vyatta can be downloaded as a VMware appliance from Vyatta's site.
Figure1 describes the Network Diagram for this lab test:
Figure1: The Network Diagram
Vyatta OFR VC3.0 and ISA 2006 Std installed on Windows 2003 R2 SP2 are used within this lab.
The network behind Vyatta is 192.168.40.0/24(private IP addresses), thus Vyatta is configured with a NAT rule type Masquerade(see Figure2). The outside-address is 192.168.22.79.
Figure2: Vyatta NAT Rule
The VPN Clients used within this lab are Windows XP SP2, Windows 2003 R2 and Windows Vista Business.
First test is with four L2TP/IPsec VPN clients behind Vyatta. Figure3 shows the four VPN clients connected to ISA.
Figure3: ISA Monitoring Sessions L2TP/IPsec
Figure4 shows a Wireshark capture with VPN traffic from the four VPN Clients behind Vyatta(note the different SPIs).
Figure4: Wireshark Capture for L2TP/IPsec VPN Clients
Second test is with four PPTP VPN clients behind Vyatta. Figure5 shows the four VPN clients connected to ISA.
Figure5: ISA Monitoring Sessions PPTP
Third test is with two L2TP/IPsec VPN clients and two PPTP VPN clients behind Vyatta. Figure6 shows the four VPN clients connected to ISA.
Figure6: ISA Monitoring Sessions Mixed
All the above tests were done using pre-shared keys authentication for IKE(machine authentication) and respectively ms-chapv2 for user authentication(both L2TP/IPsec and PPTP).
We are going to repeat these tests using certificates authentication for IKE(machine authentication) and respectively EAP-TLS for user authentication(both L2TP/IPsec and PPTP).
So here we go again:
First test is with four L2TP/IPsec VPN clients behind Vyatta. Figure7 shows the four VPN clients connected to ISA.
Figure7: ISA Monitoring Sessions L2TP/IPsec Certificates(both machine and user)
Second test is with four PPTP VPN clients behind Vyatta. Figure8 shows the four VPN clients connected to ISA.
Figure8: ISA Monitoring Sessions PPTP EAP-TLS
Third test is with two L2TP/IPsec VPN clients and two PPTP VPN clients behind Vyatta. Figure9 shows the four VPN clients connected to ISA.
Figure9: ISA Monitoring Sessions Mixed Certificates(both machine and user)
As you can see there was no problem with this scenario either with ISA 2006 or with Vyatta OFR 3.0. Also, as said before you can easily reproduce it in your own lab.
Obviously if we replace Vyatta with an ISA Firewall the outcome would remain the same.
Since it was out of the scope of this article we did not enter in too many technical details.
And here is a little rant for some folks who might think I have forgetten about the bit by bit explanation of L2TP/IPsec in relation with ISA 2006, guess what, I did not, it's going to be called L2TP/IPsec in Pictures because you just love seeing pictures rather than boring long text, don't cha ?
Vyatta configuration can be found here.