Hi Mahmood,

Only TCP and UDP are reflected.

The unit tests in test/test_acl_plugin_conns.py illustrate the usage of reflect 
with UDP.

For the "stateful firewall" mental model in the head, imagine VPP as a router, 
having potentially a small independent 2-interface firewall on every interface.

--a

> On 9 May 2017, at 10:47, mahmood gholipour <mahmood.gholip...@gmail.com> 
> wrote:
> 
> Hi Andrew,
> 
> First of all thanks for your answer.
> 
> In a common state-full scenario , a state  table of all the connections 
> initiated from the internal LAN maintains. For example it would only allow a 
> TCP request from the outside world if it is a response to an outgoing 
> request. 
> 
> So, I tested upon fact on ICMP protocol. I defined an Input ACL with 
> permit+reflect action and set it as input ACL for interface A.  then,  
> defined a deny ACL  and set it as output ACL for interface A. I expected 
> reply ping egress interface A and output ACL doesn't drop this packet but it 
> happened. In fact, permit+reflect action acts same as permit action. Is this 
> true? If not, please provide me a config example that shows this difference 
> between permit and permit+reflect action.
> 
> Best Regards
> 
> 
>> On Mon, May 8, 2017 at 9:01 PM, Andrew 👽 Yourtchenko <ayour...@gmail.com> 
>> wrote:
>> Hi,
>> 
>> Reflect is not evaluated across multiple interfaces, both ACLs must be on 
>> the same interface. Mentally you can imagine like a tiny firewall attached 
>> sitting inline with the VPP interface.
>> 
>> You can look at the test/test_acl_plugin*.py files which are the unit tests 
>> for more specifics on how it is configured and tested.
>> 
>> --a
>> 
>>> On 8 May 2017, at 13:59, mahmood gholipour <mahmood.gholip...@gmail.com> 
>>> wrote:
>>> 
>>> Hi,
>>> 
>>> I tested statefull ACL by writing an ACL rule with action of permit+reflect 
>>> and it didn't work. Is this feature completed in 17.04  and is expected to 
>>> work properly?
>>> I define one deny ACL rule and set it as inbound ACL for interface B and 
>>> also define a permit+reflect ACL rule and set it as inbound ACL for 
>>> interface A. I expected a ssh  session to be established successfully. In 
>>> this scenario interface A is ingress interface  and interface B is egress 
>>> interface. But packets are dropped by inbound ACL on interface B.
>>> 
>>> Best Regards,
>>>  
>>> -- 
>>> Mahmood Gholipour
>>> M.Sc Candidate,
>>> School of Electrical and Computer Engineering,
>>> College of Engineering,
>>> University of Tehran
>>> 
>>> 
>>>  
>>> 
>>> _______________________________________________
>>> vpp-dev mailing list
>>> vpp-dev@lists.fd.io
>>> https://lists.fd.io/mailman/listinfo/vpp-dev
> 
> 
> 
> -- 
> 
> 
> Mahmood Gholipour
> M.Sc Candidate,
> School of Electrical and Computer Engineering,
> College of Engineering,
> University of Tehran
> 
> 
>  
> 
> <acl.png>
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to