[c-nsp] VPN to Google Cloud, w/ BGP
Tom Storey
tom at snnap.net
Sat Oct 1 11:19:02 EDT 2016
So a bit more stuffing around and I managed to get it working, heres my
(final/working) config in case anyone else wants to do this:
===================
crypto ikev2 proposal gcp-ikev2-proposal-1
encryption aes-cbc-128 aes-cbc-192 aes-cbc-256
integrity sha1 sha256 sha384 sha512
group 2 5 14 15 16
!
crypto ikev2 policy gcp-ikev2-policy-1
match fvrf any
proposal gcp-ikev2-proposal-1
!
crypto ikev2 profile gcp-ikev2-profile-1
match identity remote address gcp.gcp.gcp.gcp 255.255.255.255
identity local address me.me.me.me
authentication remote pre-share key xxxxxxxxxxxx
authentication local pre-share key xxxxxxxxxxxx
lifetime 10800
!
crypto ipsec transform-set gcp-tset-1 esp-aes esp-sha-hmac
mode tunnel
!
crypto ipsec profile gcp-ipsec-profile-1
set transform-set gcp-tset-1
set pfs group14
set ikev2-profile gcp-ikev2-profile-1
!
interface Tunnel0
ip address 169.254.0.2 255.255.255.252
tunnel source me.me.me.me
tunnel mode ipsec ipv4
tunnel destination gcp.gcp.gcp.gcp
tunnel protection ipsec profile gcp-ipsec-profile-1
!
===================
And then configure BGP or maybe static routes as required.
After adding in the Tunnel0 interface config it just started working
straight away. So I guess my config was right all along, its just some
other aspect of IPSEC that wasnt happy with something missing... Yay
misleading debug output. :-/
Hope that helps someone else.
Tom
On 28 September 2016 at 11:18, Tom Storey <tom at snnap.net> wrote:
> Hey everyone.
>
> Has anyone ever deployed a VPN to a Google Cloud "Cloud Router",
> specifically with BGP from an IOS based router (887 in my case)?
>
> Do you have a config you can share, or perhaps some time to spare to help
> me through this?
>
> I seem to be hitting a brick wall, the basic issue is that even though the
> VPN light is coming on on the front of my router, it seems to be failing to
> select a proposal even though Ive configured a proposal that should match
> GCP requirements.
>
> There is very little on the ground in the way of examples except a
> document explaining how to do it on an ASA, which Ive tried translating to
> IOS seemingly without any luck. Its probably really easy, Ive just not done
> a heck of a lot with IPSEC so I dont know what Im doing wrong or what
> obvious things Im missing.
>
> The error reported in the GCP console is:
>
> "Negotiation failed. Encryption, integrity, Diffie-Hellman, and PFS
> parameters on the remote peer must match Compute Engine requirements."
>
> In my debugs I see:
>
> Sep 28 09:33:07.601: IKEv2:IPSec policy validate request sent for profile
> gcp-profile-1 with psh index 2.
>
> Sep 28 09:33:07.601: IKEv2:(SESSION ID = 29646,SA ID = 2):
> Sep 28 09:33:07.601: IKEv2:(SA ID = 2):[IPsec -> IKEv2] Callback received
> for the validate proposal - FAILED.
>
> Sep 28 09:33:07.601: IKEv2:(SESSION ID = 29646,SA ID = 2):Received
> Policies: : Failed to find a matching policyESP: Proposal 1: AES-GCM-128
> Unknown - 19 Unknown - 18 AES-CBC-128 AES-CBC-256 AES-CBC-192 SHA96
> DH_GROUP_2048_MODP/Group 14 Unknown - 23 DH_GROUP_2048_256_MODP/Group 24
> DH_GROUP_1536_MODP/Group 5 DH_GROUP_3072_MODP/Group 15
> DH_GROUP_4096_MODP/Group 16 Unknown - 18 DH_GROUP_1024_MODP/Group 2 Unknown
> - 22 Don't use ESN
> Sep 28 09:33:07.605:
> Sep 28 09:33:07.605:
> Sep 28 09:33:07.605: IKEv2:(SESSION ID = 29646,SA ID = 2):Expected
> Policies: : Failed to find a matching policy
> Sep 28 09:33:07.605: IKEv2:(SESSION ID = 29646,SA ID = 2):: Failed to find
> a matching policy
> Sep 28 09:33:07.605: IKEv2:(SESSION ID = 29646,SA ID = 2):Sending no
> proposal chosen notify
>
> And my config so far looks like:
>
> crypto ikev2 proposal gcp-proposal-1
> encryption aes-cbc-128 aes-cbc-192 aes-cbc-256
> integrity sha1 sha256 sha384 sha512
> group 2 5 14 15 16 24
> !
> crypto ikev2 policy gcp-policy-1
> proposal gcp-proposal-1
> !
> crypto ikev2 profile gcp-profile-1
> match identity remote address x.x.x.x 255.255.255.255
> identity local address y.y.y.y
> authentication remote pre-share key xxxxxxxxxxxxxxxxxx
> authentication local pre-share key xxxxxxxxxxxxxxxxxx
> lifetime 10800
> !
> crypto ipsec transform-set gcp-tset-1 esp-aes esp-sha-hmac
> mode tunnel
> !
> crypto map ipsec-vpns-1 2 ipsec-isakmp
> set peer x.x.x.x
> set transform-set gcp-tset-1
> set pfs group2
> set ikev2-profile gcp-profile-1
> match address gcp-nets
> !
>
> Which as far as I can tell matches the requirements listed here:
> https://cloud.google.com/compute/docs/vpn/advanced
>
> ASA document that I tried to translate from: https://cloud.google.
> com/files/CloudVPNGuide-UsingCloudVPNwithCiscoASA.pdf
>
> Been trying all kinds of different combinations and settings, but I feel
> like Im stabbing in the dark here at the moment, and Im getting confused
> about the mixing of policy and proposal mentioned in the debug...
>
> Thanks!
> Tom
>
More information about the cisco-nsp
mailing list