About the use of security groups with neutron ports

Slawek Kaplonski skaplons at redhat.com
Fri Dec 27 09:28:11 UTC 2019


Hi,

> On 27 Dec 2019, at 00:14, ahmed.zaky.abdallah at gmail.com wrote:
> 
> Hi All,
>  
> I am trying to wrap my head around something I came across in one of the OpenStack deployments. I am running Telco VNFs one of them is having different VMs using SR-IOV interfaces. 
>  
> On one of my VNFs on Openstack, I defined a wrong IPv6 Gm bearer interface to be exactly the same as the IPv6 Gateway. As I hate re-onboarding, I decided to embark on a journey of changing the IPv6 of the Gm bearer interface manually on the application side, everything went on fine.
>  
> After two weeks, my customer started complaining about one way RTP flow. The customer was reluctant to blame the operation I carried out because everything worked smooth after my modification. 
> After days of investigation, I remembered that I have port-security enabled and this means AAP “Allowed-Address-Pairs” are defined per vPort (AAP contain the floating IP address of the VM so that  the security to allow traffic to and from this VIP). I gave it a try and edited AAP “Allowed-Address-Pairs” to include the correct new IPv6 address. Doing that everything started working fine.
>  
> The only logical explanation at that time is security group rules are really invoked. 
>  
> Now, I am trying to understand how the iptables are really invoked. I did some digging and it seems like we can control the firewall drivers on two levels:
>  
> 	• Nova compute 
> 	• ML2 plugin
>  
> I was curious to check nova.conf and it has already the following line: firewall_driver=nova.virt.firewall.NoopFirewallDriver
>  
> However, checking the ml2 plugin configuration, the following is found:
>  
>     230 [securitygroup]
>     231
>     232 #
>     233 # From neutron.ml2
>     234 #
>     235
>     236 # Driver for security groups firewall in the L2 agent (string value)
>     237 #firewall_driver = <None>
>     238 firewall_driver = openvswitch
>  
> So, I am jumping to a conclusion that ml2 plugin is the one responsible for enforcing the firewall rules in my case.
>  
> Have you had a similar experience?
> Is my assumption correct: If I comment out the ml2 plugin firewall driver then the port security carries no sense at all and security groups won’t be invoked?

Firewall_driver config option has to be set to some value. You can set “noop” as firewall_driver to completely disable this feature for all ports.
But please remember that You need to set it on agent’s side so it’s on compute nodes, not on neutron-server side.
Also, if You want to disable it only for some ports, You can set “port_security_enabled” to False and than SG will not be applied for such port and You will not need to configure any additional IPs in allowed address pairs for this port.

>  
> Cheers,
> Ahmed

— 
Slawek Kaplonski
Senior software engineer
Red Hat




More information about the openstack-discuss mailing list