Hi,
I have to prepare an investigation on IPSec High Availability as an
assignment at my College.
After investigating various possibilities ranging between implementations of
VRRP, HSRP and CARP (+ I took a look at Linux-HA too), I set up a test
environment using pfSense and CARP. Following is a schematic overview of the
net config I'm using (best viewed with fixed size fonts):
----
Internet
|
|
WAN virtual IP: 192.168.201.250
|
192.168.201.0/24
|
+- x.x.x.251 ----------------------+-------------------- x.x.x.252 -+
| |
| |
pfSense-1 -- x.x.x.251 ------ 10.250.250.0/24 ----- x.x.x.252 -- pfSense-2
| |
| |
+- x.x.x.251 ----------------------+-------------------- x.x.x.252 -+
|
192.168.30.0/24
|
LAN virtual IP: 192.168.30.250
----
I tested the above configuration both with the pfSense v1.2.1 and Aug 26th
alpha snapshot.
Of course I unchecked the 'filter out private networks' checkbox on the WAN
interface.
I'm using the Shrew Soft Windows VPN client for testing on Windows XP sp2.
Following are the findings using pfSense v1.2.1
- The WAN and IPSec fail over seems to work pfSense transits from CARP
Backup to CARP Active after pfSense-1 is turned off;
- I'm able to connect to the pfSense* VPN using any of the WAN IPs;
however, the trafic passes the VPN tunnel ONLY if I connect using the real
IP-s (192.168.201.251 and 192.168.201.252), whiles when connection to the
virtual one (192.168.201.250) all pings to 192.168.30.250, 192.168.30.251and
192.168.30.252 are failing. The packed tracking at pfSense-1 of a
connection to the virtual IP shows ping Echo Req. are coming in, but there
is no reply.
- An additional note is I was unable to get the DHCP fail over working,
but this isn't critical to my tests.
- BTW: I didn't set any MAC address manually. I realized the virtual IP-s
are supposed to use MAC from the 00-00-5e-00-01-XX scope; however, I didn't
see this. The 'arp -a' executed on Windows showed the pfSense interfaces use
the MAC address bb-bb-bb-bb-bb-00 (both the real and the virtual one).
Using the last alpha snapshot I first bumped in a bug when trying to
configure the WAN interface IP-s. I workaround it by modifying the
interfaces_wan.php script which overides the $if variable after calling an
include.
I was unable to connect to the VPN using the last pfSense alpha. After few
hours of testing I gave up.
I would appreciate hints how to get the demo working :)
Additionally any hint on following topics will be welcome too:
- I'm wondering if a TCP connection over VPN to IPSec-HA gateway would
survive a fail over? Let say I have a SSH connection open + I'm copying a
file from an IntrAnet server to my Windows machine using CIFS (Windows
sharing). At this point the pfSense-1 is turned off (please correct me) -
the IPSec connection will be reestablished meaning the VPN tunnel will be
turned off and on again (well ... this is my understanding of data
encryption - I guess the current encrypted data isn't synced between the HA
nodes and so the encryption can't continue). If the VPN tunnel
reestablishment will NOT bring down the Windows network interface, the
copying and SSH session will just continue after the IPSec Phase-2 will be
reestablished (guess Phase-1 don't need to be reestablished).
- Doesn't AH and ESP have any IP payload (their packets) flow control
built in like TCP has? << I'm wondering how the IPSec-HA takes care of just
continuing the IPSec session if e.g. a sequence number is embedded into the
AH / ESP packets?
Thanks,
Damir Dezeljin