Hi with little experimenting i found a solution to my own question. The idea was to treat GCP VyOS instance as firewall behind NAT. Full configuration below for Office VyOS and GCP VyOS the key line there is set vpn ipsec site-to-site peer 3.24.14.19 authentication remote-id '192.168.0.1’
on Office VyOS that allows IPSec tunnel to form on IP that is not the peer IP.
====== Office VyOS configs =======
interface setup:
$ sh int
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
eth0 12.25.9.114/24 u/u OUTSIDE
eth1 1.1.1.1/24 u/u INSIDE
Firewall configs
set firewall name WAN-LOCAL default-action ‘drop’
set firewall name WAN-LOCAL rule 101 action ‘accept’
set firewall name WAN-LOCAL rule 101 state established ‘enable’
set firewall name WAN-LOCAL rule 101 state related ‘enable’
set firewall name WAN-LOCAL rule 102 action ‘drop’
set firewall name WAN-LOCAL rule 102 state invalid ‘enable’
set firewall name WAN-LOCAL rule 103 action ‘accept’
set firewall name WAN-LOCAL rule 103 description ‘SSH remote access’
set firewall name WAN-LOCAL rule 103 destination port ‘22’
set firewall name WAN-LOCAL rule 103 protocol ‘tcp’
set firewall name WAN-LOCAL rule 104 action ‘accept’
set firewall name WAN-LOCAL rule 104 description ‘allow IPSEC’
set firewall name WAN-LOCAL rule 104 destination port ‘500’
set firewall name WAN-LOCAL rule 104 protocol ‘udp’
set firewall name WAN-LOCAL rule 105 action ‘accept’
set firewall name WAN-LOCAL rule 105 description ‘allow ESP’
set firewall name WAN-LOCAL rule 105 protocol ‘esp’
Apply fireall to the “outside” interface
set interfaces ethernet eth0 firewall local name ‘WAN-LOCAL’
Exclude interesting traffic from NAT
set nat source rule 500 description ‘GCP-VPN-TEST’
set nat source rule 500 destination address ‘192.168.6.0/24’
set nat source rule 500 exclude
set nat source rule 500 outbound-interface ‘eth0’
set nat source rule 500 source address ‘1.1.1.0/24’
ESP group configs
set vpn ipsec esp-group cld-esp compression ‘disable’
set vpn ipsec esp-group cld-esp lifetime ‘1800’
set vpn ipsec esp-group cld-esp mode ‘tunnel’
set vpn ipsec esp-group cld-esp pfs ‘enable’
set vpn ipsec esp-group cld-esp proposal 1 encryption ‘aes256’
set vpn ipsec esp-group cld-esp proposal 1 hash ‘sha1’
IKE group configs
set vpn ipsec ike-group cld-ike ikev2-reauth ‘no’
set vpn ipsec ike-group cld-ike key-exchange ‘ikev1’
set vpn ipsec ike-group cld-ike lifetime ‘3600’
set vpn ipsec ike-group cld-ike proposal 1 encryption ‘aes256’
set vpn ipsec ike-group cld-ike proposal 1 hash ‘sha1’
set vpn ipsec ipsec-interfaces interface ‘eth0’
Site-to-Site configs
set vpn ipsec site-to-site peer 3.24.14.19 authentication mode ‘pre-shared-secret’
set vpn ipsec site-to-site peer 3.24.14.19 authentication pre-shared-secret ‘SomePreSharedKey’
set vpn ipsec site-to-site peer 3.24.14.19 authentication remote-id ‘192.168.0.1’
set vpn ipsec site-to-site peer 3.24.14.19 ike-group ‘cld-ike’
set vpn ipsec site-to-site peer 3.24.14.19 local-address ‘12.25.9.114’
set vpn ipsec site-to-site peer 3.24.14.19 tunnel 0 allow-nat-networks ‘disable’
set vpn ipsec site-to-site peer 3.24.14.19 tunnel 0 allow-public-networks ‘disable’
set vpn ipsec site-to-site peer 3.24.14.19 tunnel 0 esp-group ‘cld-esp’
set vpn ipsec site-to-site peer 3.24.14.19 tunnel 0 local prefix ‘1.1.1.0/24’
set vpn ipsec site-to-site peer 3.24.14.19 tunnel 0 remote prefix ‘2.2.2.0/24’
====== GCP VyOS configs =======
interface setup:
~$ sh int
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
eth0 192.168.0.1/24 u/u
dum6 2.2.2.1/24 u/u
Exclude interesting traffic from NAT
set nat source rule 500 description ‘GCP-VPN-TEST’
set nat source rule 500 destination address ‘1.1.1.0/24’
set nat source rule 500 exclude
set nat source rule 500 outbound-interface ‘eth0’
set nat source rule 500 source address ‘2.2.2.0/24’
ESP group configs
set vpn ipsec esp-group offs-esp compression ‘disable’
set vpn ipsec esp-group offs-esp lifetime ‘1800’
set vpn ipsec esp-group offs-esp mode ‘tunnel’
set vpn ipsec esp-group offs-esp pfs ‘enable’
set vpn ipsec esp-group offs-esp proposal 1 encryption ‘aes256’
set vpn ipsec esp-group offs-esp proposal 1 hash ‘sha1’
IKE group configs
set vpn ipsec ike-group offs-ike ikev2-reauth ‘no’
set vpn ipsec ike-group offs-ike key-exchange ‘ikev1’
set vpn ipsec ike-group offs-ike lifetime ‘3600’
set vpn ipsec ike-group offs-ike proposal 1 encryption ‘aes256’
set vpn ipsec ike-group offs-ike proposal 1 hash ‘sha1’
set vpn ipsec ipsec-interfaces interface ‘eth0’
Site-to-Site configs
set vpn ipsec site-to-site peer 12.25.9.114 authentication mode ‘pre-shared-secret’
set vpn ipsec site-to-site peer 12.25.9.114 authentication pre-shared-secret ‘SomePreSharedKey’
set vpn ipsec site-to-site peer 12.25.9.114 ike-group ‘offs-ike’
set vpn ipsec site-to-site peer 12.25.9.114 local-address ‘192.168.0.1’
set vpn ipsec site-to-site peer 12.25.9.114 tunnel 0 allow-nat-networks ‘disable’
set vpn ipsec site-to-site peer 12.25.9.114 tunnel 0 allow-public-networks ‘disable’
set vpn ipsec site-to-site peer 12.25.9.114 tunnel 0 esp-group ‘offs-esp’
set vpn ipsec site-to-site peer 12.25.9.114 tunnel 0 local prefix ‘2.2.2.0/24’
set vpn ipsec site-to-site peer 12.25.9.114 tunnel 0 remote prefix ‘1.1.1.0/24’