I have a working VPN setup between two openbsd 4.2 firewalls.  I'm
trying to add some redundancy (carp, sasyncd, pfsyncd) at site A by
adding a redundant gateway and configuring ipsec to use the external
carp address  When I do this I'm unable to bring up the VPN.    I've
been banging my head against the wall trying to determine why the VPN
won't come up when I use the carp address.  I've searched  for and
used all the available resources I could find.  I'm aware of the
"local" keyword used by ipsec but I must be missing something.  I've
included my ipsec.conf and pf.conf files from both gateways.

Debugs from isakmpd -KvdD A=10 are below.  I would greatly appreciate
any advice or pointers from anyone.

Carp is configured correctly, gateway1a is the MASTER for both
interfaces and gateway1b is the BACKUP.

>From the debugs it appears as if the gateway using carp doesn't get a
response from the peer but I'm unable to identify any blocked packets
with tcpdump on pflog0.

Help/suggestions greatly appreciated.  I don't know where to look next.

192.168.2.0/24   .254                        x.x.x.4
  (Site A) --- bge1[OpenBSD gateway 1a] bge0 -----+
                   carp1 .252                     x.x.x.3 carp0
                  bge1[OpenBSD gateway 1b] bge0 -----+
                        .253                         x.x.x.5
                                                 |
                                            (Internet)
                                                 |
  (Site B) --- em0[OpenBSD gateway2]em0 -----+
172.16.2.0/24   .10                  x.x.x.x232

ipsec.conf from gateway 1a:
ike esp from 192.168.2.0/24 to 172.16.0.0/16 local X.X.X.3 peer X.X.X.232
ike esp from X.X.X.3 to 172.16.0.0/16 local X.X.X.X peer X.X.X.232
ike esp from X.X.X.3 to X.X.X.232

pf.conf from gateway1a:
ext_if="bge0"
int_if="bge1"
sync_if="em0"
ipsec_peer="X.X.X.232"
set skip on { lo $int_if enc0 }
#scrub in
nat on $ext_if from !($ext_if) -> ($ext_if:0)
#nat on $ext_if from !($ext_if) -> carp0
#antispoof quick for lo
block in log
pass on $sync_if keep state ( no-sync )
pass on { $int_if $ext_if } proto carp keep state
pass out all keep state
pass in on $ext_if proto icmp keep state
pass quick on $ext_if from $ipsec_peer # $ext_if of remote peer
pass in on $ext_if proto tcp to ($ext_if) port ssh
pass in on $ext_if proto tcp to carp0 port ssh

ipsec.conf from gateway2
ike passive esp from 172.16.0.0/16 to 192.168.2.0/24 peer X.X.X.3
ike passive esp from X.X.X.232 to 192.168.2.0/24 peer X.X.X.3
ike passive esp from X.X.X.232 to X.X.X.3

pf.conf from gateway2:
ext_if="em0"
int_if="em1"
set skip on { lo $int_if enc0 }
nat on $ext_if from !($ext_if) -> ($ext_if:0)
pass quick on $int_if
block in log
pass out keep state
# required for VPN
pass quick on $ext_if from X.X.X.3 (carp address of remote peer)
pass quick on $ext_if from X.X.X.4 ($ext_if address of remote peer)
pass in on $ext_if proto icmp keep state
pass in on $ext_if proto tcp to ($ext_if) port ssh


isakmpd debug from gateway1a
213702.351659 Default log_debug_cmd: log level changed from 0 to 10
for class 0 [priv]
213702.351787 Default log_debug_cmd: log level changed from 0 to 10
for class 1 [priv]
213702.351845 Default log_debug_cmd: log level changed from 0 to 10
for class 2 [priv]
213702.351900 Default log_debug_cmd: log level changed from 0 to 10
for class 3 [priv]
213702.351956 Default log_debug_cmd: log level changed from 0 to 10
for class 4 [priv]
213702.352033 Default log_debug_cmd: log level changed from 0 to 10
for class 5 [priv]
213702.352089 Default log_debug_cmd: log level changed from 0 to 10
for class 6 [priv]
213702.352145 Default log_debug_cmd: log level changed from 0 to 10
for class 7 [priv]
213702.352224 Default log_debug_cmd: log level changed from 0 to 10
for class 8 [priv]
213702.352280 Default log_debug_cmd: log level changed from 0 to 10
for class 9 [priv]
213702.352353 Default log_debug_cmd: log level changed from 0 to 10
for class 10 [priv]
213702.400373 Misc 10 monitor_init: privileges dropped for child process
213728.717213 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213728.718339 Timr 10 timer_remove_event: removing event ui_conn_reinit(0x0)
213728.718425 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213728.718807 Timr 10 timer_remove_event: removing event ui_conn_reinit(0x0)
213728.718876 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213728.719236 Timr 10 timer_remove_event: removing event ui_conn_reinit(0x0)
213728.719305 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213728.719643 Timr 10 timer_remove_event: removing event ui_conn_reinit(0x0)
213728.719711 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213733.720875 Timr 10 timer_handle_expirations: event ui_conn_reinit(0x0)
213733.720958 Timr 10 timer_add_event: event
connection_checker(0x8749b8b0) added last, expiration in 0s
213733.721066 Timr 10 timer_add_event: event
connection_checker(0x8749bae0) added last, expiration in 0s
213733.721159 Timr 10 timer_add_event: event
connection_checker(0x8749b430) added last, expiration in 0s
213733.721272 Timr 10 timer_add_event: event
connection_checker(0x8749bcb0) added last, expiration in 0s
213733.721380 Timr 10 timer_add_event: event
connection_checker(0x8749bd60) added last, expiration in 0s
213733.721478 Timr 10 timer_handle_expirations: event
connection_checker(0x8749b8b0)
213733.721550 Timr 10 timer_add_event: event
connection_checker(0x8749b8b0) added last, expiration in 60s
213733.721688 Timr 10 timer_add_event: event
exchange_free_aux(0x86a4e800) added last, expiration in 120s
213733.721777 Exch 10 exchange_establish_p1: 0x86a4e800
peer-X.X.X..232 mm-X.X.X.232 policy initiator phase 1 doi 1 exchange 2
step 0
213733.721855 Exch 10 exchange_establish_p1: icookie 8281230f864863db
rcookie 0000000000000000
213733.721913 Exch 10 exchange_establish_p1: msgid 00000000
213733.722167 Timr 10 timer_handle_expirations: event
connection_checker(0x8749bae0)
213733.722239 Timr 10 timer_add_event: event
connection_checker(0x8749bae0) added before
exchange_free_aux(0x86a4e800), expiration in 60s
213733.722303 Timr 10 timer_handle_expirations: event
connection_checker(0x8749b430)
213733.722371 Timr 10 timer_add_event: event
connection_checker(0x8749b430) added before
exchange_free_aux(0x86a4e800), expiration in 60s
213733.722434 Timr 10 timer_handle_expirations: event
connection_checker(0x8749bcb0)
213733.722524 Timr 10 timer_add_event: event
connection_checker(0x8749bcb0) added before
exchange_free_aux(0x86a4e800), expiration in 60s
213733.722588 Timr 10 timer_handle_expirations: event
connection_checker(0x8749bd60)
213733.722675 Timr 10 timer_add_event: event
connection_checker(0x8749bd60) added before
exchange_free_aux(0x86a4e800), expiration in 60s
213733.722812 Timr 10 timer_add_event: event
message_send_expire(0x87a34300) added before
connection_checker(0x8749b8b0), expiration in 7s
213733.754997 Timr 10 timer_add_event: event
exchange_free_aux(0x86a4ea00) added last, expiration in 120s
213733.755079 Exch 10 exchange_setup_p1: 0x86a4ea00 <unnamed> <no
policy> policy responder phase 1 doi 1 exchange 5 step 0
213733.755138 Exch 10 exchange_setup_p1: icookie a30a8f95d2f12e8d
rcookie 952b9c0e8af0883d
213733.755193 Exch 10 exchange_setup_p1: msgid 00000000
213733.755270 Exch 10 ipsec_responder: got NOTIFY of type NO_PROPOSAL_CHOSEN
213733.755329 Exch 10 exchange_finalize: 0x86a4ea00 <unnamed> <no
policy> policy responder phase 1 doi 1 exchange 5 step 0
213733.755404 Exch 10 exchange_finalize: icookie a30a8f95d2f12e8d
rcookie 952b9c0e8af0883d
213733.755460 Exch 10 exchange_finalize: msgid 00000000
213733.755515 Timr 10 timer_remove_event: removing event
exchange_free_aux(0x86a4ea00)
213740.730999 Timr 10 timer_handle_expirations: event
message_send_expire(0x87a34300)
213740.731223 Timr 10 timer_add_event: event
message_send_expire(0x87a34300) added before
connection_checker(0x8749b8b0), expiration in 9s
213749.741159 Timr 10 timer_handle_expirations: event
message_send_expire(0x87a34300)
213749.741390 Timr 10 timer_add_event: event
message_send_expire(0x87a34300) added before
connection_checker(0x8749b8b0), expiration in 11s
213800.751353 Timr 10 timer_handle_expirations: event
message_send_expire(0x87a34300)
213800.751568 Default transport_send_messages: giving up on exchange
peer-X.X.X..232, no response from peer X.X.X.232:500
213833.726073 Timr 10 timer_handle_expirations: event
connection_checker(0x8749b8b0)
213833.726156 Timr 10 timer_add_event: event
connection_checker(0x8749b8b0) added last, expiration in 60s
213833.726223 Timr 10 timer_handle_expirations: event
connection_checker(0x8749bae0)
213833.726291 Timr 10 timer_add_event: event
connection_checker(0x8749bae0) added last, expiration in 60s
213833.726355 Timr 10 timer_handle_expirations: event
connection_checker(0x8749b430)
213833.726443 Timr 10 timer_add_event: event
connection_checker(0x8749b430) added last, expiration in 60s
213833.726507 Timr 10 timer_handle_expirations: event
connection_checker(0x8749bcb0)
213833.726593 Timr 10 timer_add_event: event
connection_checker(0x8749bcb0) added last, expiration in 60s
213833.726657 Timr 10 timer_handle_expirations: event
connection_checker(0x8749bd60)
213833.726724 Timr 10 timer_add_event: event
connection_checker(0x8749bd60) added last, expiration in 60s

Other side of connection:

213708.101541 Default log_debug_cmd: log level changed from 0 to 10
for class 0 [priv]
213708.101767 Default log_debug_cmd: log level changed from 0 to 10
for class 1 [priv]
213708.101829 Default log_debug_cmd: log level changed from 0 to 10
for class 2 [priv]
213708.101898 Default log_debug_cmd: log level changed from 0 to 10
for class 3 [priv]
213708.101958 Default log_debug_cmd: log level changed from 0 to 10
for class 4 [priv]
213708.102026 Default log_debug_cmd: log level changed from 0 to 10
for class 5 [priv]
213708.102093 Default log_debug_cmd: log level changed from 0 to 10
for class 6 [priv]
213708.102151 Default log_debug_cmd: log level changed from 0 to 10
for class 7 [priv]
213708.102218 Default log_debug_cmd: log level changed from 0 to 10
for class 8 [priv]
213708.102277 Default log_debug_cmd: log level changed from 0 to 10
for class 9 [priv]
213708.102346 Default log_debug_cmd: log level changed from 0 to 10
for class 10 [priv]
213708.105684 Misc 10 monitor_init: privileges dropped for child process
213721.894044 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213721.895626 Timr 10 timer_remove_event: removing event ui_conn_reinit(0x0)
213721.895713 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213721.896054 Timr 10 timer_remove_event: removing event ui_conn_reinit(0x0)
213721.896122 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213721.896490 Timr 10 timer_remove_event: removing event ui_conn_reinit(0x0)
213721.896559 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213721.896892 Timr 10 timer_remove_event: removing event ui_conn_reinit(0x0)
213721.896961 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added
last, expiration in 5s
213726.903492 Timr 10 timer_handle_expirations: event ui_conn_reinit(0x0)
213733.723194 Timr 10 timer_add_event: event
exchange_free_aux(0x7c158900) added last, expiration in 120s
213733.723343 Exch 10 exchange_setup_p1: 0x7c158900 Default-phase-1
Default-phase-1-configuration policy responder phase 1 doi 1 exchange
2 step 0
213733.723409 Exch 10 exchange_setup_p1: icookie 8281230f864863db
rcookie 8a5a71a3170b74fc
213733.723479 Exch 10 exchange_setup_p1: msgid 00000000
213733.723569 Exch 10 check_vendor_openbsd: OpenBSD (OpenBSD-4.0)
213733.723633 Exch 10 nat_t_check_vendor_payload: NAT-T capable peer detected
213733.723695 Exch 10 nat_t_check_vendor_payload: NAT-T capable peer detected
213733.723756 Exch 10 nat_t_check_vendor_payload: NAT-T capable peer detected
213733.723826 Exch 10 dpd_check_vendor_payload: DPD capable peer detected
213733.723906 Default attribute_unacceptable: ENCRYPTION_ALGORITHM:
got AES_CBC, expected 3DES_CBC
213733.723978 Default message_negotiate_sa: no compatible proposal found
213733.724049 Default dropped message from X.X.X.4 port 63065 due to
notification type NO_PROPOSAL_CHOSEN
213733.724122 Timr 10 timer_add_event: event
exchange_free_aux(0x7c158b00) added last, expiration in 120s
213733.724191 Exch 10 exchange_establish_p1: 0x7c158b00 <unnamed> <no
policy> policy initiator phase 1 doi 1 exchange 5 step 0
213733.724254 Exch 10 exchange_establish_p1: icookie a30a8f95d2f12e8d
rcookie 0000000000000000
213733.724325 Exch 10 exchange_establish_p1: msgid 00000000
213733.724492 Exch 10 exchange_finalize: 0x7c158b00 <unnamed> <no
policy> policy initiator phase 1 doi 1 exchange 5 step 1
213733.724555 Exch 10 exchange_finalize: icookie a30a8f95d2f12e8d
rcookie 0000000000000000
213733.724613 Exch 10 exchange_finalize: msgid 00000000
213733.724681 Timr 10 timer_remove_event: removing event
exchange_free_aux(0x7c158b00)

Reply via email to