Though CreateNetworkACL  and CreateFirewallRule   APIs  are configuring the 
firewall rules,  but there is difference in the purpose for which it is used.
            CreateNetworkACL  - API  is used for configuring  firewall rules 
per  Network.
            CreateFirewallRule  - API is  used for  configuring  firewall rules 
per  public IP.


Thanks,
Jayapal





Thanks,
Jayapal



> -----Original Message-----
> From: Anthony Xu
> Sent: Monday, October 15, 2012 6:38 AM
> To: cloudstack-dev@incubator.apache.org
> Cc: Jayapal Reddy Uradi
> Subject: RE: Egress firewall rules for guest network.
> 
> > We need to understand how network ACL rules are different from
> >Firewall rules.  The difference comes about when you look at the
> >stateful/stateless nature of traffic being shaped by the router. In
> >most networking parlance I have seen, network ACLs serve only stateless
> >behaviour. Firewalls can do stateful traffic filtering - ingress and
> >egress.
> 
> 
> 1. both firewall rule and network ACL rule are stateful. Stateful means rule
> only check new request , stateless means rule check both request and
> response.
> 2. firewall rule is against public IP, ACL is against guest network, it 
> doesn't
> care which public IP it goes through
> 
> 
> -----Original Message-----
> From: Alena Prokharchyk [mailto:alena.prokharc...@citrix.com]
> Sent: Wednesday, October 10, 2012 9:44 AM
> To: cloudstack-dev@incubator.apache.org
> Cc: Jayapal Reddy Uradi
> Subject: Re: Egress firewall rules for guest network.
> 
> Hi Jayapal,
> 
> See my comments below.
> 
> -Alena.
> 
> On 10/10/12 1:50 AM, "Jayapal Reddy Uradi"
> <jayapalreddy.ur...@citrix.com>
> wrote:
> 
> >Hi Alena,
> >
> >I did evaluate both the options of using current network ACL
> >functionality to implement the egress firewall rules and enhance
> >CreateFirewall API to support both ingress and egress. If we go down
> >the path of implementing egress firewall with Network ACL it increases
> >the scope of the proposed changes to make behaviour consistent across
> APIs.
> >
> >1. First network ACL's implementation is hardcoded for VPC only.Network
> >ACL's implementation will have to be generalised first to support both
> >virtual router and VPC virtual router, and make it work for both VPC
> >networks and non-VPC networks.
> 
> Easy to change. Just make VirtualNetworkRouterElement to implement
> NetworkACLServiceProvider. And move networkACL code from
> VpcVirtualRouterManager to virtualRouterManager.
> 
> 
> >2. Also currently while creating network offering, firewall and network
> >ACL's services are mutually exclusive which tells me that the purpose
> >of each is different.
> 
> Artificial limitation. There is nothing on the backend preventing from 
> applying
> network ACL and Firewall rules. As a part of the fix for that, add capability
> "trafficType" to the NetworkACL service. Regular VR will support Public
> capability (as you create the network ACL for public network only); in VPC is
> going to be Guest.
> 
> 
> > We need to understand how network ACL rules are different from
> >Firewall rules.  The difference comes about when you look at the
> >stateful/stateless nature of traffic being shaped by the router. In
> >most networking parlance I have seen, network ACLs serve only stateless
> >behaviour. Firewalls can do stateful traffic filtering - ingress and
> >egress.
> 
> 
> Anthony Xu can help you to understand how its different as he did the
> scripting for the network ACL calls on the virtualRouter.
> 
> 
> >3. My final concern is the confusion coming about in the APIs and this
> >is the most important - If a user had to use createFirewallRule to
> >allow ingress traffic and then apply egress rules using a
> >createNetworkACL API it makes things inconsistent and unintuitive.
> 
> But you are introducing some other confusion - before publicIPAddress was
> required for createFirewallRule and ingress rule was created for a specific 
> IP;
> now you are dividing it to 2 paths - ingress per IP and ingress per network.
> The DB schema changes have to be made for that, the constructors for
> firewallRule have to be changed, etc.
> 
> >
> >In summary - The scope of this change is limited to VR and SRX firewall
> >filtering. For guest networks right now it is a value-add to allow
> >filtering ingress /egress rules and simplify the view for the user.
> >Implementing ACLs will require a deeper change and rethink of our
> >current firewall/acl behaviour.
> 
> 
> I would still advise to go with networkACLs. The api calls already have all 
> the
> parameters you need, all the backend logic is in place. Plus in the future we
> are planning to enhance the functionality by adding ALLOW/DENY
> permissions and Priority to the network ACLs.
> 
> >
> >Thanks,
> >Jayapal
> >
> >-----Original Message-----
> >From: Alena Prokharchyk [mailto:alena.prokharc...@citrix.com]
> >Sent: Tuesday, October 09, 2012 10:43 PM
> >To: cloudstack-dev@incubator.apache.org
> >Subject: Re: Egress firewall rules for guest network.
> >
> >On 10/9/12 8:10 AM, "David Nalley" <da...@gnsa.us> wrote:
> >
> >>On Tue, Oct 9, 2012 at 5:14 AM, Jayapal Reddy Uradi
> >><jayapalreddy.ur...@citrix.com> wrote:
> >>> The egress firewall rules feature  will configure the egress rules
> >>>for guest network on VR/External firewall to ALLOW
> >>>
> >>> specified traffic to outside and BLOCK the remaining traffic.
> >>>
> >>>
> >>>
> >>> By default  all the traffic is ALLOWED to public network. When you
> >>>specify a egress rule only that rule specific traffic is allowed.
> >>>
> >>>
> >>>
> >>> I have created a functional spec here:
> >>>https://cwiki.apache.org/confluence/display/CLOUDSTACK/Egress+firew
> al
> >>>l
> >>>+ru
> >>>les+for+guest+network
> >>>
> >>>
> >>>
> >>> Please review and provide your comments.
> >>>
> >>> Thanks,
> >>> Jayapal
> >>
> >>
> >>So I noticed you are modifying createFirewallRule in a way which would
> >>break backwards compatibility, or at least make it more difficult.
> >>
> >>I'd suggest that trafficType be optional and default to to ingress -
> >>which means existing calls being issued today should continue to work
> >>as they do now, and folks wishing to take advantage of egress
> >>filtering can pass trafficType=egress for any calls. Is there any
> >>downside to doing it that way that I am missing?
> >>
> >>--David
> >>
> >
> >
> >Agree with David. This is a #1 API modification rule - never ever
> >introduce the required parameter to existing endUser API. Always make
> >it optional, and default it to some value if not specified but required
> >by the backend code.
> >
> >Jayapal, my other question is - why don't you use createNetworkACL
> >instead of createFirewallRule api? createFirewallRule api doesn't quite
> >fit here as it requires publicIpAddress to be passed in. The firewall
> >rule is always created per IP basis, not per network. While in
> >netowrkACL all you need to pass in - networkId and source/dest CIDR
> >(based on the traffic side). And accept id of the public/guest network as the
> networkId.
> >
> >I don't like the idea of splitting the logic for createFirewallRule to
> >a) create a rule for the entire network b) create a rule for a
> >particular publicIpAddress. So I advocate to use createNetworkACL as it
> >already has all the parameters you need + the backend implementation is
> >already in (for VPC case only by now, but should be pretty easy to
> >adopt by the regular virtual router).
> >
> >
> >
> >
> >-Alena.
> >
> >
> >
> 

Reply via email to