VPNaaS with multiple endpoint groups

Eugen Block eblock at nde.ag
Fri Feb 14 07:37:52 UTC 2020


Hi all,

is anyone here able to help with a vpn issue?
It's not really my strong suit but I'll try to explain.
In a Rocky environment (using openvswitch) a customer has setup a VPN  
service successfully, but that only seems to work if there's only one  
local and one peer endpoint group. According to the docs it should  
work with multiple endpoint groups, as far as I could tell the setup  
looks fine and matches the docs (don't create the subnet when creating  
the vpn service but use said endpoint groups).

What we're seeing is that as soon as the vpn site connection is  
created with multiple endpoints only one of the destination IPs is  
reachable. And it seems as if it's always the first in the list of EPs  
(see below).

This seems to be reflected in the iptables where we also only see one  
of the required IP ranges. Also neutron reports duplicate rules if we  
try to use both EPs:

2020-02-12 14:14:27.638 16275 WARNING  
neutron.agent.linux.iptables_manager  
[req-92ff6f06-3a92-4daa-aeea-9c02dc9a31c3  
ba9bf239530d461baea2f6f60bd301e6 850dad648ce94dbaa5c0ea2fb450bbda - -  
-] Duplicate iptables rule detected. This may indicate a bug in the  
iptables rule generation code. Line: -A neutron-l3-agent-POSTROUTING  
-s X.X.252.0/24 -d Y.Y.0.0/16 -m policy --dir out --pol ipsec -j ACCEPT

These are the configured endpoints:

root at control:~ # openstack vpn endpoint group list
+--------------------------------------+-----------------+--------+------------------------------------------------------------------------------------+
| ID                                   | Name            | Type   |  
Endpoints                                                               
             |
+--------------------------------------+-----------------+--------+------------------------------------------------------------------------------------+
| 0f853567-e4bf-4019-9290-4cd9f94a9793 | peer-ep-group-1 | cidr   |  
[u'X.X.253.0/24']                                                       
          |
| 152a0f9e-ce49-4769-94f1-bc0bebedd3ec | peer-ep-group-2 | cidr   |  
[u'X.X.253.0/24', u'Y.Y.0.0/16']                                        
       |
| 791ab8ef-e150-4ba0-ac2c-c044659f509e | local-ep-group1 | subnet |  
[u'38efad5e-0f1e-4e36-8995-74a611bfef41']                               
             |
| 810b0bf2-d258-459b-9b57-ae5b491ea612 | local-ep-group2 | subnet |  
[u'38efad5e-0f1e-4e36-8995-74a611bfef41',  
u'9e35d80f-029e-4cc1-a30b-1753f7683e16'] |
| b5c79e08-41e4-441c-9ed3-9b02c2654173 | peer-ep-group-3 | cidr   |  
[u'Y.Y.0.0/16']                                                         
          |
+--------------------------------------+-----------------+--------+------------------------------------------------------------------------------------+


Has anyone experience with this and could help me out?

Another follow-up question: how can we gather some information  
regarding the ipsec status? Althoug there is a active tunnel we don't  
see anything with 'ipsec statusall', I've checked all namespaces on  
the control node.

Any help is highly appreciated!

Best regards,
Eugen




More information about the openstack-discuss mailing list