Public bug reported:

When we create different security group logging objects referencing the
same port group, they don’t apply as expected, and it is not consistent.

This happens because the Log object relationship to ACLs is “one to
many”. In the implementation, in order to modify ACLs, the driver
searches for ACLs associated with the log object name. If it’s already
associated, it will be skipped.

Details:
If we create a security group logging object for that logs accepted packets for 
a single security group, 3 rules set their logging properties (with log == 
True): 
"outport == @pg_5f45afc8_cb14_4439_9859_8524a219d477 && ip4 && ip4.src == 
0.0.0.0/0 && icmp4"
"inport == @pg_5f45afc8_cb14_4439_9859_8524a219d477 && ip6"
"inport == @pg_5f45afc8_cb14_4439_9859_8524a219d477 && ip4"

# openstack network log create --resource-type security_group --resource
test_sg --event ACCEPT test_log_1

After that we create a sec group logging object for dropped packets referencing 
that same security group, two new acls are added 
"inport == @neutron_pg_drop && ip",  
"outport == @neutron_pg_drop && ip", and this will work correctly.

# openstack network log create --resource-type security_group --resource
test_sg --event DROP test_log_2


If we do it the other way around, first we add the drop object and therefore 5 
ACLs get the logging feature set (the same that were listed before), but those 
related to accepted traffic get a “log: false” property. This property won’t 
get updated when we create the “accept” log object (because the logging object 
associated is the previous rule), therefore causing the accepted traffic to not 
be logged.

# openstack network log create --resource-type security_group --resource 
test_sg --event DROP test_log_1
# openstack network log create --resource-type security_group --resource 
test_sg --event ACCEPT test_log_2

If we don’t set any specific security group in the security group
logging (don't specify the "--resource" property), only the first object
we create will be used.

# openstack network log create --resource-type security_group --event ACCEPT 
test_log_1
# openstack network log create --resource-type security_group --event DROP 
test_log_2


Although I think the existence of multiple network log objects for the same 
security group is questionable (I cannot think of use cases where it can be 
useful), I assume that there might be some reason for them to exists, therefore 
I limit the scope of this bug to just make this co-existence of multiple 
network log objects work correctly.


Taken from Red Hat's Bugzilla: 
https://bugzilla.redhat.com/show_bug.cgi?id=1988833

** Affects: neutron
     Importance: Undecided
     Assignee: Elvira García Ruiz (elviragr)
         Status: New

** Changed in: neutron
     Assignee: (unassigned) => Elvira García Ruiz (elviragr)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1956763

Title:
   [OVN] Overlapping configuration for security group logging is not
  applied correctly

Status in neutron:
  New

Bug description:
  When we create different security group logging objects referencing
  the same port group, they don’t apply as expected, and it is not
  consistent.

  This happens because the Log object relationship to ACLs is “one to
  many”. In the implementation, in order to modify ACLs, the driver
  searches for ACLs associated with the log object name. If it’s already
  associated, it will be skipped.

  Details:
  If we create a security group logging object for that logs accepted packets 
for a single security group, 3 rules set their logging properties (with log == 
True): 
  "outport == @pg_5f45afc8_cb14_4439_9859_8524a219d477 && ip4 && ip4.src == 
0.0.0.0/0 && icmp4"
  "inport == @pg_5f45afc8_cb14_4439_9859_8524a219d477 && ip6"
  "inport == @pg_5f45afc8_cb14_4439_9859_8524a219d477 && ip4"

  # openstack network log create --resource-type security_group
  --resource test_sg --event ACCEPT test_log_1

  After that we create a sec group logging object for dropped packets 
referencing that same security group, two new acls are added 
  "inport == @neutron_pg_drop && ip",  
  "outport == @neutron_pg_drop && ip", and this will work correctly.

  # openstack network log create --resource-type security_group
  --resource test_sg --event DROP test_log_2

  
  If we do it the other way around, first we add the drop object and therefore 
5 ACLs get the logging feature set (the same that were listed before), but 
those related to accepted traffic get a “log: false” property. This property 
won’t get updated when we create the “accept” log object (because the logging 
object associated is the previous rule), therefore causing the accepted traffic 
to not be logged.

  # openstack network log create --resource-type security_group --resource 
test_sg --event DROP test_log_1
  # openstack network log create --resource-type security_group --resource 
test_sg --event ACCEPT test_log_2

  If we don’t set any specific security group in the security group
  logging (don't specify the "--resource" property), only the first
  object we create will be used.

  # openstack network log create --resource-type security_group --event ACCEPT 
test_log_1
  # openstack network log create --resource-type security_group --event DROP 
test_log_2

  
  Although I think the existence of multiple network log objects for the same 
security group is questionable (I cannot think of use cases where it can be 
useful), I assume that there might be some reason for them to exists, therefore 
I limit the scope of this bug to just make this co-existence of multiple 
network log objects work correctly.

  
  Taken from Red Hat's Bugzilla: 
https://bugzilla.redhat.com/show_bug.cgi?id=1988833

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1956763/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to