Hi Andrew,

On Fri, 2017-06-09 at 13:53 +0200, Andrew 👽  Yourtchenko wrote:
> Hi Marco,
> 
> Yes, this works as expected, assuming after deletion *all* the traffic
> is denied, rather than just the SSH traffic.
> 
> If you apply to an interface the ACL# that does not exist, that is the
> same as if there was an ACL with just the "deny all" semantics, to
> avoid the perception that a given policy is enforced when it isn't -
> so I erred on the side of caution.
> 
> The way to remove the ACL: you would ensure the ACL is not applied to
> the interface(s) first, then remove the ACL (or replace it with a
> different policy in-place).
Ok, which function would allow me to unset the ACL from an interface?
I see on the documentation that 'acl_interface_add_del' is marked as "not
recommended" hence I wonder whether it will soon be marked as deprecated and
eventually removed.

> 
> Alternatively, you can just replace the existing ACL in-place with
> "permit any" for IPv4 and IPv6 - this way you explicitly state that
> there is a policy to permit all the traffic.
> 
> I've been bitten myself and seen several times in my career when an
> applied but non-existent ACL caused problems later on, in the worst
> possible moment. The current behaviour IMHO makes the config
> discrepancy clear - what do you think ?
In the past, when I had to work on ACL implementation, I approached the solution
differently: an ACL (whether deny or permit) which is referenced (e.g. applied
to one or multiple interfaces) if deleted would see a cascading effect (please,
allow me the expression) of that deletion onto any interface which was
referencing it. 

The "problem" I see - with the current approach - is that once an ACL is deleted
it's much harder to understand / debug why a given flow is either permitted or
not (depending on the action of the ACL). If you have hundreds or thousands of
ACL/rules then things get complicated very quickly.
Instead, by applying the "cascading" effect hence freeing the interfaces from
the previous behaviour, things would have a 1:1 mapping between what you see in
configuration (acl_dump) with the flows you see on the network.

> 
> --a
Cheers,
Marco

> 
> On 6/9/17, Marco Varlese <marco.varl...@suse.com> wrote:
> > 
> > Hi,
> > 
> > I am trying the ACL functionality and I found a "strange" behaviour.
> > 
> > The steps I follow to use an ACL are:
> > * I create an ACL to deny SSH traffic between VMs (via the 'acl_add_replace'
> > function)
> > * Set that ACL to the interfaces involved (via the
> > 'acl_interface_set_acl_list'
> > function)
> > 
> > After performing the above steps the traffic was correctly being blocked.
> > 
> > However, when I decided to enable the SSH traffic again, I simply deleted
> > the
> > ACL (via the 'acl_del' function) with the consequence though that the
> > traffic
> > was still being denied.
> > 
> > Is this behaviour correct?
> > If so what would be the right way to unset hence disable a given ACL from an
> > interface (or multiple)?
> > 
> > 
> > Thanks,
> > Marco
> > 
> > _______________________________________________
> > vpp-dev mailing list
> > vpp-dev@lists.fd.io
> > https://lists.fd.io/mailman/listinfo/vpp-dev
> 
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to