The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This module describes
the Cisco unidirectional firewall policy between groups of interfaces known as
zones. Prior to the release of the Cisco unidirectional firewall policy, Cisco
firewalls were configured only as an inspect rule on interfaces. Traffic
entering or leaving the configured interface was inspected based on the
direction in which the inspect rule was applied.
Note
Cisco IOS XE
supports Virtual Fragmentation Reassembly (VFR) on zone-based firewall
configuration. When you enable the firewall on an interface by adding the
interface to a zone, VFR is configured automatically on the same interface.
Finding Feature Information
Your software release may not support all the features documented in this module. For the latest caveats and feature information,
see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module,
and to see a list of the releases in which each feature is supported, see the feature information table.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature
Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Prerequisites for
Zone-Based Policy Firewalls
Before you create
zones, you should group interfaces that are similar when they are viewed from a
security perspective.
Restrictions for
Zone-Based Policy Firewalls
In a Cisco Wide Area Application Services (WAAS) and Cisco IOS XE firewall configuration, all packets processed by a Wide
Area Application Engine (WAE) device must go over the Cisco IOS XE firewall in both directions to support the Web Cache Coordination
Protocol (WCCP) generic routing encapsulation (GRE) redirect. This situation occurs when a Layer 2 redirect is not available.
If a Layer 2 redirect is configured on the WAE, the system defaults to the GRE redirect to continue to function.
The zone-based firewall cannot interoperate with WAAS and WCCP, when WCCP is configured with Layer 2 redirect method.
Zone-based Firewall configuration cannot be applied on Bridge Domain Interfaces (BDI) that involves a vCUE call flow.
The self zone is the only exception to the default deny all policy. All traffic to any router interface is allowed until traffic
is explicitly denied.
In a WAAS and Cisco IOS XE firewall configuration, WCCP does not support traffic redirection using policy-based routing (PBR).
WCCP traffic redirection does not work when zone-based policy firewall enabled with generic GRE is configured on a Cisco Aggregation
Services Router that is configured with Cisco ISR-WAAS I/O modules. It is a Wide-Area Networking optimization solution. For
WCCP traffic redirection to work, remove the zone-based policy firewall configuration from interfaces. If you are using a
WAE device, WCCP traffic redirection works correctly.
In the context of WAAS, generic GRE is an out-of-path deployment mechanism that helps to return packets from the WAAS WAE,
through the GRE tunnel to the same device from which they were originally redirected, after completing optimization.
Stateful inspection support for multicast traffic is not supported between any zones, including the self zone. Use Control
Plane Policing for protection of the control plane against multicast traffic.
When an in-to-out zone-based policy is configured to match the Internet Control Message Protocol (ICMP) on a Windows system,
the traceroute command works. However, the same configuration on an Apple system does not work because it uses a UDP-based
traceroute. To overcome this issue, configure an out-to-in zone-based policy using theicmp time-exceeded andicmp host unreachable commands with the pass command (not the inspect command). This restriction applies to Cisco IOS XE Release 3.1S and previous releases.
Access control lists (ACLs) in a class map is supported. However, the ACL based packet count is disabled by default. Perfilter
statistics is available in zone-based firewalls from Cisco IOS XE Release 3.13S and later releases.
Access control lists (ACLs) statements using object groups are ignored for packets that are sent to rendezvous point (RP)
for processing.
Bridge domain interfaces do not support zone-based firewall inspection, including all Layer 4 and Layer 7 inspection.
The ZBF cannot inspect traffic when NAT NVI is enabled on the device.
When traffic enters a zone pair, the firewall examines the entire connection table and matches the traffic with any connection
in the table even if the ingress interface does not match the zone pair. In this scenario, asymmetrically routed traffic on
the firewall may drop packets, if the inspect action is configured.
In Cisco IOS XE Release 3.15S and later releases, zone-mismatch drop is configured in the class parameter map. If zone-mismatch drop is set, then the zones are checked against the original zones used when the packet is classified. If the zone is not part
of the zone pair, the packet is dropped. If zone-mismatch drop is not set, then the zones are not checked.
When ZBF is configured, all interfaces that are a part of a zone pair much have rii configured. Interfaces that match the
peer device must have the same rii configured. Additionally, flows that are initiated between two interfaces and either of
them does not have an RII assigned, it does not sync to the standby.
The zone-based firewall is supported with dynamic interfaces only in the default zone. These interfaces are created or deleted
dynamically when traffic is tunneled into tunnels such as IPsec or VPN secure tunnels. Virtual templates are used to support
certain types of dynamic interfaces. For more information, see Virtual Interfaces as Members of Security Zones.
To disable the zone-based firewall configurations that have been applied on the interfaces, use the platform inspect disable-all command. Similarly, to enable zone-based firewall on the interfaces, use the no platform inspect disable-all command.
To verify if the platform inspect disable-all command has been applied, use the following show running configuration:
show run | sec disable
platform inspect disable-all
Note
By default, zone-based firewall is always enabled.
When the drop log command is configured under a user-defined class or the default class of a policy, disabling the logging of dropped packets
by configuring the drop command does not stop the log messages. This is a known issue and the workaround is to configure the no drop log command before configuring the drop command to stop the logging of messages. This issue applies to the pass command as well. The following example shows the issue:
! Logging of dropped packets is enabled by configuring the drop log command.
policy-map type inspect INT-EXT
class type inspect INT-EXT
pass
class class-default
drop log
!
The following example shows the workaround:
! In this example, the no drop log command is configured before the drop command.
policy-map type inspect INT-EXT
class type inspect INT-EXT
pass
class class-default
drop log
no drop log
drop
!
Information About Zone-Based
Policy Firewalls
Top-Level Class Maps and Policy Maps
Top-level class maps allow you to identify the traffic stream at a high level. This is accomplished by using the match access-group and match protocol commands. Top-level class maps are also referred to as Layer 3 and Layer 4 class maps. Top-level policy maps allow you to
define high-level actions by using the inspect, drop, and pass commands. You can attach policy maps to a target (zone pair).
Note
Only inspect type policies can be configured on a zone pair.
Overview of Zones
A zone is a group of interfaces that have similar functions or features. They help you specify where a Cisco IOS XE firewall
should be applied.
For example, on a device, Gigabit Ethernet interface 0/0/0 and Gigabit Ethernet interface 0/0/1 may be connected to the local
LAN. These two interfaces are similar because they represent the internal network, so they can be grouped into a zone for
firewall configurations.
By default, the traffic between interfaces in the same zone is not subject to any policy and passes freely. Firewall zones
are used for security features.
Note
Zones may not span interfaces in different VPN routing and forwarding (VRF) instances.
Note
Because the Cisco IOS XE zone-based firewall is implemented as an egress feature on a
zone you must match the traffic before it leaves the zone.
For example, if a Dynamic Multipoint VPN (DMVPN) tunnel terminates on the outside zone, you must allow
generic routing encapsulation (GRE) traffic into the router through the zone pair that connects the outside zone with
the self zone, because packets are decrypted
before the firewall checks the traffic.
Security Zones
A security zone is a
group of interfaces to which a policy can be applied.
Grouping interfaces
into zones involves two procedures:
Creating a zone
so that interfaces can be attached to it.
Configuring an
interface to be a member of a given zone.
By default, traffic
flows among interfaces that are members of the same zone.
When an interface is
a member of a security zone, all traffic (except traffic going to the device or
initiated by the device) between that interface and an interface within a
different zone is dropped by default. To permit traffic to and from a
zone-member interface and another interface, you must make that zone part of a
zone pair and apply a policy to that zone pair. If the policy permits traffic
through
inspect or
pass actions,
traffic can flow through the interface.
The following are
basic rules to consider when setting up zones:
Traffic from a zone interface to a nonzone interface or from a nonzone interface to a zone interface is always dropped; unless
default zones are enabled (default zone is a nonzone interface).
Traffic between two zone interfaces is inspected if there is a zone pair relationship for each zone and if there is a configured
policy for that zone pair.
By default, all
traffic between two interfaces in the same zone is always allowed.
A zone pair can be configured with a zone as both source and destination zones. An inspect policy can be configured on this
zone pair to inspect, pass or drop the traffic between the two zones.
An interface can
be a member of only one security zone.
When an interface
is a member of a security zone, all traffic to and from that interface is
blocked unless you configure an explicit interzone policy on a zone pair
involving that zone.
For traffic to
flow among all interfaces in a device, these interfaces must be members of one
security zone or another. It is not necessary for all device interfaces to be
members of security zones.
All interfaces associated with a zone must be contained in the same VRF (Virtual Routing Forwarding).
The figure below
illustrates the following:
Interfaces E0 and
E1 are members of security zone Z1.
Interface E2 is a
member of security zone Z2.
Interface E3 is
not a member of any security zone.
The following
situations exist:
The zone pair and
policy are configured in the same zone. Traffic flows freely between interfaces
E0 and E1 because they are members of the same security zone (Z1).
If no policies
are configured, traffic will not flow between any other interfaces (for
example, E0 and E2, E1 and E2, E3 and E1, and E3 and E2).
Traffic can flow
between E0 or E1 and E2 only when an explicit policy permitting traffic is
configured between zone Z1 and zone Z2.
Traffic can never
flow between E3 and E0/E1/E2 unless default zones are enabled.
Note
On the Cisco ASR 1000 Series Aggregation Services Routers the firewall supports a maximum of 4000 zones.
Overview of Security Zone Firewall Policies
A class identifies a set of packets based on its contents. Normally, you define a class so that you can apply an action on
the identified traffic that reflects a policy. A class is designated through class maps.
An action is a functionality that is typically associated with a traffic class. Firewall supports the following type of actions:
inspect — once classified, firewall session is created in the connection table and the packets content is examined.
pass — the packet is simply classified and the traffic is allowed to pass through the system without further inspection.
drop — the packet is classified and dropped.
To create security zone firewall policies, you must complete the following tasks:
Define a match criterion (class map).
Associate actions to the match criterion (policy map).
Attach the policy map to a zone pair (service policy).
The
class-map command creates a class map to be used for matching packets to a specified class. Packets that arrive at targets (such as
the input interface, output interface, or zone pair), determined by how the
service-policy command is configured, are checked against match criteria configured for a class map to determine if the packet belongs to
that class.
The
policy-map command creates or modifies a policy map that can be attached to one or more targets to specify a service policy. Use the
policy-map command to specify the name of the policy map to be created, added to, or modified before you can configure policies for
classes whose match criteria are defined in a class map.
Virtual Interfaces as
Members of Security Zones
A virtual template
interface is a logical interface configured with generic configuration
information for a specific purpose or for a configuration common to specific
users, plus device-dependent information. The template contains Cisco software
interface commands that are applied to virtual access interfaces. To configure
a virtual template interface, use the
interface virtual-template command.
Zone member
information is acquired from a RADIUS server and the dynamically created
interface is made a member of that zone. The
zone-member security command adds the dynamic interface to the
corresponding zone.
A zone pair allows you to specify a unidirectional firewall policy between two security zones.
To define a zone pair, use the
zone-pair security command. The direction of the traffic is specified by source and destination zones. The source and destination zones of a
zone pair must be security zones.
You can select the default or self zone as either the source or the destination zone. The self zone is a system-defined zone
which does not have any interfaces as members. A zone pair that includes the self zone, along with the associated policy,
applies to traffic directed to the device or traffic generated by the device. It does not apply to traffic through the device.
The default zone is applicable to interfaces where no security zone is associated. Default zones are by default not enabled.
To enable default zones use the zone security default configuration command to create the default zone.
The most common usage of firewall is to apply them to traffic through a device, so you need at least two zones. For traffic
to and from the device, ZBF supports the concept of a self-zone.
To permit traffic between zone member interfaces, you must configure a policy permitting (inspecting or passing) traffic
between that zone and another zone. To attach a firewall policy map to the target zone pair, use the service-policy type inspect command.
The figure below shows the application of a firewall policy to traffic flowing from zone Z1 to zone Z2, which means that
the ingress interface for the traffic is a member of zone Z1 and the egress interface is a member of zone Z2.
If there are two zones and you may require policies for traffic going in both directions (from Z1 to Z2 and Z2 to Z1). If
traffic is initiated from either direction, you must configure two zone pairs.
If a policy is not configured between zone pairs, traffic is dropped. However, it is not necessary to configure a zone pair
and a service policy solely for the return traffic. By default, return traffic is not allowed. If a service policy inspects
the traffic in the initiator direction and there is no zone pair and service policy for the return traffic, the return traffic
is inspected.
If a service policy passes the traffic in the forward direction and there is no zone pair and service policy for the return
traffic, the return traffic is dropped. In both these cases, you need to configure a zone pair and a service policy to allow
the return traffic. In the above figure, it is not mandatory that you configure a zone pair source and destination for allowing
return traffic from Z2 to Z1. The service policy on Z1 to Z2 zone pair takes care of it. For the pass action, a policy must
exist for packets in each direction and for inspect a policy need to exist for traffic from the initiator.
A zone-based firewall drops a packet if it is not explicitly allowed by a rule or policy in contrast to a legacy firewall,
which permits a packet if it is not explicitly denied by a rule or policy by default.
A zone-based firewall behaves differently when handling intermittent Internet Control Message Protocol (ICMP) responses generated
within a zone because of the traffic flowing between in-zones and out-zones.
A policy is not required for Internet Control Message Protocol (ICMP) error packets.
Note
A policy is required for ICMP informational messages such as ICMP_ECHO (ping) for packet arriving from an initiator.
In a configuration where an explicit policy is configured for the self zone to go out of its zone and for the traffic moving
between the in-zone and out-zone, if any informational ICMP packets, such as ICMP_EHCO_REQUEST are generated, then the zone-based
firewall looks for an explicit permit rule for the ICMP in the self zone to go out of its zone. An explicit inspect rule for
the ICMP for the self zone to go out-zone may not help because there is no session associated with the intermittent ICMP responses.
Zones and Inspection
Zone-based policy firewalls examine source and destination zones from the ingress and egress interfaces for a firewall policy.
It is not necessary that all traffic flowing to or from an interface be inspected; you can designate that individual flows
in a zone pair be inspected through your policy map that you apply across the zone pair. The policy map will contain class
maps that specify individual flows. Traffic with the inspect action will create a connection in the firewall table and be
subject to state checking. Traffic with the pass action will bypass the zone firewall completely, not creating any sessions.
Once a firewall connection is created, the packets are no longer classified. That is, if the policy map changes, the underlying
connections are not noticed. As connection is not established, a mirrored policy with a pass action must be created packets
in the reverse direction.
You can also configure inspect
parameters like TCP thresholds and timeouts on a per-flow basis.
Zones and ACLs
Access control lists (ACLs) applied to interfaces that are members of zones are processed before the policy is applied on
the zone pair. You must ensure that interface ACLs do not interfere with the policy firewall traffic when there are policies
between zones. If a class map only contains an access list and does not contain a match protocol, then firewall attempts to
match the flow protocol to known ALGs and process it as required.
Pinholes (ports opened through a firewall that allows applications-controlled access to a protected network) are not punched
for return traffic in interface ACLs.
Class Maps and Policy Maps for Zone-Based Policy Firewalls
Quality of service (QoS) class maps have numerous match criteria; firewalls have fewer match criteria. Firewall class maps
are of type inspect and this information controls what shows up under firewall class maps.
A policy is an association of traffic classes and actions. It specifies what actions should be performed on defined traffic
classes. An action is a specific function, and it is typically associated with a traffic class. For example, inspect , pass and drop are actions.
Layer 3 and Layer 4 Class
Maps and Policy Maps
Layer 3 and Layer 4
class maps identify traffic streams on which different actions should be
performed.
A Layer 3 or Layer 4
policy map is sufficient for the basic inspection of traffic.
The following example
shows how to configure class map c1 with the match criteria of ACL 101 and the
HTTP protocol, and create an inspect policy map named p1 to specify that
packets will be dropped on the traffic at c1:
Device(config)# class-map type inspect match-all c1
Device(config-cmap)# match access-group 101
Device(config-cmap)# match protocol http
Device(config-cmap)# exit
Device(config)# policy-map type inspect p1
Device(config-pmap)# class type inspect c1
Device(config-pmap-c)# drop
Note
On the Cisco ASR 1000 Series Aggregation Services Routers the firewall supports a maximum of 1000 policy maps and 8 classes
inside a policy map. You can configure a maximum of 16 match statements in a class map and 1000 globally.
Class-Map Configuration Restriction
If traffic meets multiple match criteria, these match criteria must be applied in the order of specific to less specific.
For example, consider the following class map:
class-map type inspect match-any my-test-cmap
match protocol http
match protocol tcp
In this example, HTTP traffic must first encounter the
match protocol http command to ensure that the traffic is handled by the service-specific capabilities of HTTP inspection. If the “match” lines
are reversed, and the traffic encounters the
match protocol tcp command before it is compared to the
match protocol http command, the traffic will be classified as TCP traffic and inspected according to the capabilities of the TCP inspection
component of the firewall. If match protocol TCP is configured first, it will create issues for services such as FTP and TFTP
and for multimedia and voice signaling services such as H.323, Real Time Streaming Protocol (RTSP), Session Initiation Protocol
(SIP), and Skinny. These services require additional inspection capabilities to recognize more complex activities.
Note
Configure zone-based firewall on the device such that the TCP traffic flow does not exceed 65k in the window size.
Class-Default Class
Map
In addition to
user-defined classes, a system-defined class map named class-default represents
all packets that do not match any of the user-defined classes in a policy. The
class-default class is always the last class in a policy map.
You can define
explicit actions for a group of packets that does not match any of the
user-defined classes. If you do not configure any actions for the class-default
class in an inspect policy, the default action is
drop .
Note
For a class-default
in an inspect policy, you can configure only
drop action or
pass action.
The following example
shows how to use class-default in a policy map. In this example, HTTP traffic
is dropped and the remaining traffic is inspected. Class map c1 is defined for
HTTP traffic, and class-default is used for a policy map p1.
Device(config)# class-map type inspect match-all c1
Device(config-cmap)# match protocol http
Device(config-cmap)# exit
Device(config)# policy-map type inspect p1
Device(config-pmap)# class type inspect c1
Device(config-pmap-c)# drop
Device(config-pmap-c)# exit
Device(config-pmap)# class class-default
Device(config-pmap-c)# drop
Supported Protocols for Layer 3 and Layer 4
The following protocols are supported:
FTP
H.323
Real-time Streaming Protocol (RTSP)
SCCP (Skinny Client Control Protocol)
Session Initiation Protocol (SIP)
Trivial File Transfer Protocol (TFTP)
RCMD
Lightweight Directory Access Protocol (LDAP)
Hypertext Transfer Protocol (HTTP)
Domain Name System (DNS)
Simple Mail Transfer Protocol (SMTP/ESMTP)
Post Office Protocol 3 (POP3)
Internet Mail Access Protocol (IMAP)
SUN Remote Procedure Call (SUNRPC)
GPRS Tunnel Protocol version 0/1 (GTPv1)
GPRS Tunnel Protocol version 2 (GTPv2)
Point to Point Tunneling Protocol (PPTP)
Access Control Lists and Class Maps
Access lists are packet-classifying mechanisms. Access lists define the actual network traffic that is permitted or denied
when an ACL is applied to a specific class map. Thus, the ACL is a sequential collection of permit and deny conditions that
applies to a packet. A router tests packets against the conditions set in the ACL one at a time. A deny condition is interpreted
as “do not match.” Packets that match a deny access control entry (ACE) cause an ACL process to terminate and the next match
statement within the class to be examined.
Note
You can configure the range of variables in an ACL as match criteria for a class-map. Because the firewall supports only the
5-tuple match criteria, only source address, source port, destination address, destination port and protocol match criteria
are supported. Any other match criteria that is configured and accepted by the CLI, will not be supported by the firewall
Class maps are used to match a range of variables in an ACL based on the following criteria:
If a class map does not match a permit or a deny condition, then the ACL fails.
The match-all or match-any are applied to the match statements contained within the class map. ACLs are processed as normal
and the result is used when comparing against match-all or match-any.
If a match-all attribute is specified and any match condition, ACL, or protocol fails to match the packet, further evaluation
of the current class is stopped, and the next class in the policy is examined.
If any match in a match-any attribute succeeds, the class map criteria are met and the action defined in the policy is performed.
If an ACL matches the match-any attribute, the firewall attempts to ascertain the Layer 7 protocol based on the destination
port.
If you specify the match-all attribute in a class map, the Layer 4 match criteria (ICMP, TCP, and UDP) are set and the Layer
7 match criteria are not set. Hence, the Layer 4 inspection is performed and Layer 7 inspection is omitted.
Access lists come in different forms: standard and extended access lists. Standard access lists are defined to permit or deny
an IP address or a range of IP addresses. Extended access lists define both the source and the destination IP address or an
IP address range. Extended access lists can also be defined to permit or deny packets based on ICMP, TCP, and UDP protocol
types and the destination port number of the packet.
The following example shows how a packet received from the IP address 10.2.3.4 is matched with the class test1. In this example,
the access list 102 matches the deny condition and stops processing other entries in the access list. Because the class map
is specified with a match-all attribute, the “class-map test1” match fails. However, the class map is inspected if it matches
one of the protocols listed in test1 class map.
If the class map test1 had a match-any attribute (instead of match-all), then the ACL would have matched deny and failed,
but then the ACL would have matched the HTTP protocol and performed the inspection using “pmap1.”
access-list 102 deny ip 10.2.3.4 0.0.0.0 any
access-list 102 permit any any
class-map type inspect match-all test1
match access-list 102
match protocol http
!
class-map type inspect match-any test2
match protocol sip
match protocol ftp
match protocol http
!
parameter-map type inspect pmap1
tcp idle-time 15
!
parameter-map type inspect pmap2
udp idle-time 3600
!
policy-map type inspect test
class type inspect test1
inspect pmap1
!
class type inspect test2
inspect pmap2
!
class type inspect class-default
drop log
Hierarchical Policy Maps
A policy can be nested within a policy. A policy that contains a nested policy is called a hierarchical policy.
To create a hierarchical policy, attach a policy directly to a class of traffic. A hierarchical policy contains a child and
a parent policy. The child policy is the previously defined policy that is associated with the new policy through the use
of the
service-policy command. The new policy that uses the preexisting policy is the parent policy.
Note
There can be a maximum of two levels in a hierarchical inspect service policy.
Define two access lists, Marketing and Engineering. Create a class-map that does a match-any on the two access groups. Then,
create another class-map that includes the previous class-map with a match-all and match protocol http.
Parameter Maps
A parameter map allows you to specify parameters that control the behavior of actions and match criteria specified under
a policy map and a class map, respectively.
There are two types of parameter maps:
Inspect parameter map
An inspect parameter map is optional. If you do not configure a parameter map, the software uses default parameters. Parameters
associated with the inspect action apply to all maps. If parameters are specified in both the top and lower levels, parameters
in the lower levels override those in the top levels.
Protocol-specific parameter map
A parameter map that is
required for an Instant Messenger (IM) application (Layer 7) policy map.
Firewall and Network Address Translation
Network Address Translation (NAT) enables private IP internetworks that use nonregistered IP addresses to connect to the
Internet. NAT operates on a device, usually connecting two networks, and translates private (not globally unique) addresses
in the internal network into legal addresses before packets are forwarded to another network. NAT can be configured to advertise
only one address for the entire network to the outside world. A device configured with NAT will have at least one interface
to the inside network and one to the outside network.
In a typical environment, NAT is configured at the exit device between a stub domain and the backbone. When a packet leaves
the domain, NAT translates the locally significant source address to a global unique address. When a packet enters the domain,
NAT translates the globally unique destination address into a local address. If more than one exit point exists, each NAT
must have the same translation table. If the software cannot allocate an address because it has run out of addresses, it drops
the packet and sends an Internet Control Message Protocol (ICMP) host unreachable packet.
With reference to NAT, the term “inside” refers to those networks that are owned by an organization and that must be translated.
Inside this domain, hosts will have addresses in one address space. When NAT is configured and when the hosts are outside,
hosts will appear to have addresses in another address space. The inside address space is referred to as the local address
space and the outside address space is referred to as the global address space.
Consider a scenario where NAT translates both source and destination IP addresses. A packet is sent to a device from inside
NAT with the source address 192.168.1.1 and the destination address 10.1.1.1. NAT translates these addresses and sends the
packet to the external network with the source address 209.165.200.225 and the destination address 209.165.200.224.
Similarly, when the response comes back from outside NAT, the source address will be 209.165.200.225 and the destination
address will be 209.165.200.224. Therefore, inside NAT, the packets will have a source address of 10.1.1.1 and a destination
address of 192.168.1.1.
In this scenario, if you want to create an Application Control Engine (ACE) to be used in a firewall policy, the pre-NAT
IP addresses (also known as inside local and outside global addresses) 192.168.1.1 and 209.165.200.224 must be used. In general,
mapping outside global addresses is not recommended.
WAAS Support for the Cisco Firewall
Depending on your release, the Wide Area Application Services (WAAS) firewall software provides an integrated firewall that
optimizes security-compliant WANs and application acceleration solutions with the following benefits:
Integrates WAAS networks transparently.
Protects transparent WAN accelerated traffic.
Optimizes a WAN through full stateful inspection capabilities.
Simplifies Payment Card Industry (PCI) compliance.
Supports the Network Management Equipment (NME)-Wide Area Application Engine (WAE) modules or standalone WAAS device deployment.
WAAS has an automatic discovery mechanism that uses TCP options during the initial three-way handshake to identify WAE devices
transparently. After automatic discovery, optimized traffic flows (paths) experience a change in the TCP sequence number to
allow endpoints to distinguish between optimized and nonoptimized traffic flows.
Note
Paths are synonymous with connections.
WAAS allows the Cisco firewall to automatically discover optimized traffic by enabling the sequence number to change without
compromising the stateful Layer 4 inspection of TCP traffic flows that contain internal firewall TCP state variables. These
variables are adjusted for the presence of WAE devices.
If the Cisco firewall notices that a traffic flow has successfully completed WAAS automatic discovery, it permits the initial
sequence number shift for the traffic flow and maintains the Layer 4 state on the optimized traffic flow.
Note
Stateful Layer 7 inspection on the client side can also be performed on nonoptimized traffic.
The following sections describe two different WAAS traffic flow optimization scenarios for branch office deployments. WAAS
traffic flow optimization works with the Cisco firewall feature on a Cisco Integrated Services Router (ISR). ZBF inspects
the clear text after WAAS has unoptimized the packet.
The figure below shows an example of an end-to-end WAAS traffic flow optimization with the Cisco firewall. In this particular
deployment, a Network Management Equipment (NME)-WAE device is on the same device as the Cisco firewall. Web Cache Communication
Protocol (WCCP) is used to redirect traffic for interception.
WAAS Branch Deployment with an Off-Path Device
A Wide Area Application Engine (WAE) device can be either a standalone WAE device or an NME-WAE that is installed on an Integrated
Services Router (ISR) as an integrated service engine (as shown in the figure Wide Area Application Service [WAAS] Branch
Deployment).
The figure below shows a WAAS branch deployment that uses Web Cache Communication Protocol (WCCP) to redirect traffic to
an off-path, standalone WAE device for traffic interception. The configuration for this option is the same as the WAAS branch
deployment with an NME-WAE.
WAAS Branch Deployment with an Inline Device
The figure below shows a Wide Area Application Service (WAAS) branch deployment that has an inline Wide Area Application
Engine (WAE) device that is physically in front of the Integrated Services Router (ISR). Because the WAE device is in front
of the device, the Cisco firewall receives WAAS optimized packets, and as a result, Layer 7 inspection on the client side
is not supported.
An edge WAAS device with the Cisco firewall is applied at branch office sites that must inspect the traffic moving to and
from a WAN connection. The Cisco firewall monitors traffic for optimization indicators (TCP options and subsequent TCP sequence
number changes) and allows optimized traffic to pass, while still applying Layer 4 stateful inspection and deep packet inspection
to all traffic and maintaining security while accommodating WAAS optimization advantages.
Note
If the WAE device is in the inline location, the device enters its bypass mode after the automatic discovery process. Although
the device is not directly involved in WAAS optimization, the device must be aware that WAAS optimization is applied to the
traffic in order to apply the Cisco firewall inspection to network traffic and make allowances for optimization activity if
optimization indicators are present.
Out-of-Order Packet Processing Support in the Zone-Based Firewalls
By default, the Cisco IOS XE firewall drops all out-of-order (OoO) packets when Layer 7 deep packet inspection (DPI) is enabled
or when Layer 4 inspection with Layer 7 protocol match is enabled. Dropping out-of-order packets can cause significant delays
in end applications because packets are dropped only after the retransmission timer expires (on behalf of the sender). Layer
7 inspection is a stateful packet inspection and it does not work when TCP packets are out of order.
In Cisco IOS XE Release 3.5S, if a session does not require DPI, OoO packets are allowed to pass through the router and reach
their destination. All Layer 4 traffic with OoO packets are allowed to pass through to their destination. However, if a session
requires Layer 7 inspection, OoO packets are still dropped. By not dropping OoO packets when DPI is not required, the need
to retransmit dropped packets and the bandwidth needed to retransmit on the network is reduced.
Severity Levels of Debug Messages
The severity level of debug messages specifies the types of issues for which a message is logged. While enabling firewall
debugging, you can specify the level of messages that should be logged. The following table provides details about severity
levels of debug messages.
Table 1. Severity Levels of Firewall Debug Messages
Trace Level
Severity Levels
Description
Critical
1
Applies to issues that make the zone-based policy firewall unusable or not forward packets. This is the default.
Examples of critical events are:
Back pressure triggered by the log mechanism.
Resource limit exceeded.
Memory allocation failure.
High availability state not allowing new sessions.
Error
2
Applies to all error conditions and packet-drop conditions.
Examples of error events are:
Synchronized (SYN) cookie—the number of maximum destination reached.
Not
an initiator packet.
Could not send packets.
Application layer gateway (ALG) error condition.
Information
3
Applies to informational messages.
Examples of information events are:
Packet drop due to incorrect policy configuration, zone-check failure, malformed packets, or hardcoded limit or threshold.
State machine transition.
Session or imprecise channel database information, search results and so on.
Packet classification status or result.
Packet pass or drop status.
Session hit or miss.
Packet that is sent is a TCP reset (RST) packet.
SYN cookie event.
Detail
4
All log messages are printed.
Examples of detailed events are:
Data structures.
Ternary content-addressable memory (TCAM) search keys and result structure.
Firewall event details.
Smart Licensing Support for Zone-Based Policy Firewall
Zone-Based Policy Firewall features for Cisco ASR 1000 Series Aggregation Services Routers are packaged separately from the
security package and hence Zone-Based Policy Firewall requires separate license to enable and disable features. The Smart
License support for Zone Based Firewall on ASR1000 feature implements support for smart licensing at a feature level for on
Cisco ASR 1000 Series Aggregation Services Routers via the Universal K9 software image.
The device need not be reloaded to enable this feature. Smart licensing is not turned on by default. Smart Licensing is toggled
on or off globally via the license smart enable command or when configuring a Zone-Based Policy Firewall via the zone security command. The show license all command displays the status of smart license when smart licensing is implemented. The following is a sample output from the
show license all command when smart licensing is enabled globally.
Device# show license all
License Store: Primary License Storage
StoreIndex: 0 Feature: internal_service Version: 1.0
License Type: Evaluation
License State: Active, In Use
Evaluation total period: 1 day 0 hour
Evaluation period left: 18 hours 57 minutes
Period used: 5 hours 2 minutes
Expiry date: Mar 18 2016 14:15:02
License Count: Non-Counted
License Priority: Low
License Store: Built-In License Storage
StoreIndex: 0 Feature: adventerprise Version: 1.0
License Type: EvalRightToUse
License State: Active, In Use
Evaluation total period: 8 weeks 4 days
Evaluation period left: 8 weeks 3 days
Period used: 5 hours 13 minutes
Transition date: May 16 2016 14:03:52
License Count: Non-Counted
License Priority: Low <-- (CSL mode license)
Device(config)# license smart enable
Device(config)# zone security z1
Device(config)# exit
Device# show license all
Smart Licensing Status
––––––––––––––––––––––––––
Smart Licensing is ENABLED
Registration:
Status: UNREGISTERED
Export-Controlled Functionality: Not Allowed
License Authorization:
Status: EVAL MODE
Evaluation Period Remaining: 65 days, 14 hours, 19 minutes, 47 seconds
License Usage
–––-----------
(ASR_1000_AdvEnterprise):
Description:
Count: 1
Version: 1.0
Status: EVAL MODE
(ASR_1000_firewall):
Description:
Count: 1
Version: 1.0
Status: EVAL MODE
Product Information
––––––––––––––––––––--
UDI: PID:ASR1013,SN:NWG165000A9
Agent Version
–––––––––––––--
Smart Agent for Licensing: 1.5.1_rel/29
Component Versions: SA:(1_3_dev)1.0.15, SI:(dev22)1.2.1, CH:(rel5)1.0.3, PK:(dev18)1.0.3
The following is a sample output when smart licensing is disabled.
Device(config)# no zone security z1
Device(config)# exit
Device# show license all
Smart Licensing Status
----------------------
Smart Licensing is ENABLED
Registration:
Status: UNREGISTERED
Export-Controlled Functionality: Not Allowed
License Authorization:
Status: EVAL MODE
Evaluation Period Remaining: 65 days, 14 hours, 18 minutes, 58 seconds
License Usage
–––––––-------
(ASR_1000_AdvEnterprise):
Description:
Count: 1
Version: 1.0
Status: EVAL MODE
Product Information
--------------------
UDI: PID:ASR1013,SN:NWG165000A9
Agent Version
-------------
Smart Agent for Licensing: 1.5.1_rel/29
Component Versions: SA:(1_3_dev)1.0.15, SI:(dev22)1.2.1, CH:(rel5)1.0.3, PK:(dev18)1.0.3
Device(config)# no license smart enable
Device(config)# exit
Device# show license all
License Store: Primary License Storage
StoreIndex: 0 Feature: internal_service Version: 1.0
License Type: Evaluation
License State: Active, Not in Use, EULA accepted
Evaluation total period: 1 day 0 hour
Evaluation period left: 18 hours 54 minutes
Period used: 5 hours 5 minutes
License Count: Non-Counted
License Priority: Low
License Store: Built-In License Storage
StoreIndex: 0 Feature: adventerprise Version: 1.0
License Type: EvalRightToUse
License State: Active, Not in Use, EULA accepted
Evaluation total period: 8 weeks 4 days
Evaluation period left: 8 weeks 3 days
Period used: 5 hours 17 minutes
License Count: Non-Counted
License Priority: Low <--- (back to CSL mode)
How to Configure Zone-Based
Policy Firewalls
Configuring Layer 3 and Layer 4 Firewall Policies
Layer 3 and Layer 4 policies are “top-level” policies that are attached to the target (zone pair). Perform the following
tasks to configure Layer 3 and Layer 4 firewall policies:
Configuring a Class Map for a Layer 3 and Layer 4 Firewall Policy
Use the following task to configure a class map for classifying network traffic.
Note
You must perform at least one match step from Step 4, 5, or 6.
When packets are matched to an access group, a protocol, or a class map, a traffic rate is generated for these packets. In
a zone-based firewall policy, only the first packet that creates a session matches the policy. Subsequent packets in this
flow do not match the filters in the configured policy, but match the session directly. The statistics related to subsequent
packets are shown as part of the inspect action.
SUMMARY STEPS
enable
configure terminal
class-map type inspect [match-any |
match-all ]
class-map-name
match access-group {access-group |
name access-group-name}
match protocol protocol-name [signature ]
match class-map class-map-name
end
show policy-map type inspect zone-pair session
DETAILED STEPS
Command or Action
Purpose
Step 1
enable
Example:
Device> enable
Enables privileged EXEC mode.
Enter your password if prompted.
Step 2
configure terminal
Example:
Device# configure terminal
Enters global configuration mode.
Step 3
class-map type inspect [match-any |
match-all ]
class-map-name
Example:
Device(config)# class-map type inspect match-all c1
Creates a Layer 3 or Layer 4 inspect type class map and enters class-map configuration mode.
Step 4
match access-group {access-group |
name access-group-name}
Example:
Device(config-cmap)# match access-group 101
Configures the match criterion for a class map based on the access control list (ACL) name or number.
Step 5
match protocol protocol-name [signature ]
Example:
Device(config-cmap)# match protocol http
Configures the match criterion for a class map on the basis of a specified protocol.
Only Cisco stateful packet inspection-supported protocols can be used as match criteria in inspect type class maps.
Step 6
match class-map class-map-name
Example:
Device(config-cmap)# match class-map c1
Specifies a previously defined class as the match criteria for a class map.
Step 7
end
Example:
Device(config-cmap)# end
Exits class-map configuration mode and returns to privileged EXEC mode.
Step 8
show policy-map type inspect zone-pair session
Example:
Device(config-cmap)# show policy-map type inspect zone-pair session
(Optional) Displays Cisco stateful packet inspection sessions created because a policy map is applied on the specified zone
pair.
Note
The information displayed under the class-map field is the traffic rate (bits per second) of the traffic that belongs to
the connection-initiating traffic only. Unless the connection setup rate is significantly high and is sustained for multiple
intervals over which the rate is computed, no significant data is shown for the connection.
Creating a Policy Map for a
Layer 3 and Layer 4 Firewall Policy
Use this task to
create a policy map for a Layer 3 and Layer 4 firewall policy that will be
attached to zone pairs.
Note
You must perform
at least one step from Step 5, 8, 9, or 10.
SUMMARY STEPS
enable
configure terminal
policy-map type inspect policy-map-name
class type inspect class-name
inspect [parameter-map-name]
drop [log ]
pass
service-policy type inspect policy-map-name
end
DETAILED STEPS
Command or Action
Purpose
Step 1
enable
Example:
Device> enable
Enables
privileged EXEC mode.
Enter your
password if prompted.
Step 2
configure terminal
Example:
Device# configure terminal
Enters global
configuration mode.
Step 3
policy-map type inspect policy-map-name
Example:
Device(config)# policy-map type inspect p1
Creates a Layer
3 and Layer 4 inspect type policy map and enters policy-map configuration mode.
Step 4
class type inspect class-name
Example:
Device(config-pmap)# class type inspect c1
Specifies the
traffic class on which an action to perform and enters policy-map class
configuration mode.
Step 5
inspect [parameter-map-name]
Example:
Device(config-pmap-c)# inspect inspect-params
Enables Cisco
stateful packet inspection.
Step 6
drop [log ]
Example:
Device(config-pmap-c)# drop
(Optional)
Drops packets that are matched with the defined class.
Note
Actions drop and pass are exclusive, and actions inspect and drop are mutually exclusive; that is, you cannot specify both of them at the same time. Only one can be specified.
Step 7
pass
Example:
Device(config-pmap-c)# pass
(Optional)
Allows packets that are matched with the defined class.
Step 8
service-policy type inspect policy-map-name
Example:
Device(config-pmap-c)# service-policy type inspect p1
Attaches a
firewall policy map to a zone pair.
Step 9
end
Example:
Device(config-pmap-c)# end
Exits
policy-map class configuration mode and returns to privileged EXEC mode.
Creating an Inspect Parameter Map
SUMMARY STEPS
enable
configure terminal
parameter-map type inspect {parameter-map-name |
global |
default }
parameter-map type inspect {parameter-map-name |
global |
default }
Example:
Device(config)# parameter-map type inspect eng-network-profile
Configures an inspect parameter map for connecting thresholds, timeouts, and other parameters that pertains to the
inspect action and enters parameter map type inspect configuration mode.
(Optional) Configures packet logging during the firewall activity.
Note
This command is visible in parameter map type inspect configuration mode only.
Step 5
alert {on |
off }
Example:
Device(config-profile)# alert on
(Optional) Enables Cisco stateful packet inspection alert messages that are displayed on the console.
Step 6
audit-trail {on |
off }
Example:
Device(config-profile)# audit-trail on
(Optional) Enables audit trail messages.
Step 7
dns-timeout seconds
Example:
Device(config-profile)# dns-timeout 60
(Optional) Specifies the domain name system (DNS) idle timeout (the length of time for which a DNS lookup session will be
managed while there is no activity).
Step 8
icmp idle-timeout seconds
Example:
Device(config-profile)# icmp idle-timeout 90
(Optional) Configures the timeout for Internet Control Message Protocol (ICMP) sessions.
Step 9
max-incomplete {low |
high }
number-of-connections
Example:
Device(config-profile)# max-incomplete low 800
(Optional) Defines the number of existing half-open sessions that will cause the Cisco firewall to start and stop deleting
half-open sessions.
Step 10
one-minute {low |
high }
number-of-connections
Example:
Device(config-profile)# one-minute low 300
(Optional) Defines the number of new unestablished sessions that will cause the system to start deleting half-open sessions
and stop deleting half-open sessions.
Step 11
sessions maximum sessions
Example:
Device(config-profile)# sessions maximum 200
(Optional) Sets the maximum number of allowed sessions that can exist on a zone pair.
Use this command to limit the bandwidth used by the sessions.
Step 12
tcp finwait-time seconds
Example:
Device(config-profile)# tcp finwait-time 5
(Optional) Specifies the length of time a TCP session will be managed after the Cisco firewall detects a finish (FIN)-exchange.
Step 13
tcp idle-time seconds
Example:
Device(config-profile)# tcp idle-time 90
(Optional) Configures the timeout for TCP sessions.
(Optional) Disables the window scale option check in the parameter map for a TCP packet that has an invalid window scale
option under the zone-based policy firewall.
Step 17
udp idle-time seconds
Example:
Device(config-profile)# udp idle-time 75
(Optional) Configures an idle timeout of UDP sessions that are going through the firewall.
Step 18
end
Example:
Device(config-profile)# end
Exits parameter map type inspect configuration mode and returns to privileged EXEC configuration mode.
Creating Security Zones and Zone Pairs and Attaching a Policy Map to a Zone Pair
You need two security zones to create a zone pair. However, you can create only one security zone and use a system-defined
security zone called “self.” Note that if you select a self zone, you cannot configure inspect policing.
A zone pair can have the same zone for source and destination zone. By default, traffic staying within a zone is not inspected.
In addition, there is the default zone (interfaces with no zone assignment) which can also be specified.
Use this process to complete the following tasks:
Assign interfaces to security zones.
Attach a policy map to a zone pair.
Create at least one security zone.
Define zone pairs.
Tip
Before you create zones, think about what should constitute the zones. The general guideline is that you should group interfaces
that are similar when they are viewed from a security perspective.
Creates a security zone to which interfaces can be assigned and enters security zone configuration mode.
Step 4
description line-of-description
Example:
Device(config-sec-zone)# description Internet Traffic
(Optional) Describes the zone.
Step 5
exit
Example:
Device(config-sec-zone)# exit
Exits security zone configuration mode and returns to global configuration mode.
Step 6
interface typenumber
Example:
Device(config)# interface GigabitEthernet 0/0/0
Configures an interface and enters interface configuration mode.
Step 7
zone-member security zone-name
Example:
Device(config-if)# zone-member security zone1
Assigns an interface to a specified security zone.
Note
When you make an interface a member of a security zone, all traffic in and out of that interface (except traffic bound for
the device or initiated by the device) is dropped by default. To let traffic through the interface, you must make the zone
part of a zone pair to which you should apply a policy. If the policy permits traffic, traffic can flow through that interface.
Step 8
exit
Example:
Device(config-if)# exit
Exits interface configuration mode and returns to global configuration mode.
To enable per-filter statistics on the device, do the following:
RELOAD the device.
OR
Remove all the service-policies and re-apply the changes to the statistics. To activate the platform inspect match-statistics per-filter command, re-apply all service-policies.
Step 13
end
Example:
Device(config-sec-zone-pair)# end
Exits security zone-pair configuration mode and returns to privileged EXEC mode.
Configuring NetFlow Event Logging
Global parameter maps are used for NetFlow event logging. With NetFlow event logging enabled, logs are sent to an off-box,
high-speed log collector. By default, this functionality is not enabled. (If this functionality is not enabled, firewall logs
are sent to a logger buffer located in the Route Processor or console.)
SUMMARY STEPS
enable
configure terminal
parameter-map type inspect-global
log dropped-packets
log flow-export v9 udp destination ipv4-address port
log flow-export template timeout-rate seconds
end
show parameter-map type inspect-global
DETAILED STEPS
Command or Action
Purpose
Step 1
enable
Example:
Device> enable
Enables Privileged EXEC mode.
Enter your password if prompted.
Step 2
configure terminal
Example:
Device# configure terminal
Enters global configuration mode.
Step 3
parameter-map type inspect-global
Example:
Device(config)# parameter-map type inspect-global
Configures a global parameter map and enters parameter-map type inspect configuration mode.
Step 4
log dropped-packets
Example:
Device(config-profile)# log dropped-packets
Enables logging for all packets dropped by firewall.
Step 5
log flow-export v9 udp destination ipv4-address port
Exits global configuration mode and returns to privileged EXEC mode.
Step 8
show parameter-map type inspect-global
Example:
Device# show parameter-map type inspect-global
Displays global inspect-type parameter map information.
Configuring the Firewall with
WAAS
Perform the
following task to configure an end-to-end Wide Area Application Services (WAAS)
traffic flow optimization for the firewall that uses ) to redirect traffic to a
Wide Area Application Engine (WAE) device for traffic interception. When
configuring WCCP in ZBFW enviornment, pay attention using L2 redirection as GRE
is required for zone based firewall.
Note
Configuring the firewall with WAAS (steps 5 to 13) is not required post Cisco IOS XE Release 3.5S. The commands in steps 5
to 12 have been deprecated post Cisco IOS XE Release 3.5S.
Exits security
zone configuration mode and returns to global configuration mode.
Step 23
interface typenumber
Example:
Device(config)# interface ethernet 0
Specifies an
interface and enters interface configuration mode.
Step 24
description line-of-description
Example:
Device(config-if)# description zone interface
(Optional)
Describes an interface.
Step 25
zone-member security zone-name
Example:
Device(config-if)# zone-member security zone1
Assigns an
interface to a specified security zone.
Note
When you
make an interface a member of a security zone, all traffic in and out of that
interface (except the traffic bound for the device or initiated by the device)
is dropped by default. To let traffic through the interface, you must make the
zone part of a zone pair to which you apply a policy. If the policy permits
traffic, traffic can flow through that interface.
Step 26
ip address ip-address
Example:
Device(config-if)# ip address 10.70.0.1 255.255.255.0
Assigns an
interface IP address for the security zone.
Step 27
ip wccp
service-id
{group-listen
|
redirect
{in
|
out }}
Example:
Device(config-if)# ip wccp 61 redirect in
Specifies
WCCP parameters on the interface.
Step 28
exit
Example:
Device(config-if)# exit
Exits
interface configuration mode and returns to global configuration mode.
Creates a
zone pair and enters security zone-pair configuration mode.
Step 30
service-policy type inspect policy-map-name
Example:
Device(config-sec-zone-pair)# service-policy type inspect p2
Attaches a
firewall policy map to the destination zone pair.
Note
If a policy
is not configured between a pair of zones, traffic is dropped by default.
Step 31
end
Example:
Device(config-sec-zone-pair)# end
Exits
security zone-pair configuration mode and returns to privileged EXEC mode.
Configuration Examples for
Zone-Based Policy Firewalls
Example: Configuring Layer 3
and Layer 4 Firewall Policies
The following
example shows a Layer 3 or Layer 4 top-level policy. The traffic is matched to
the access control list (ACL) 199 and deep-packet HTTP inspection is
configured. Configuring the
match access-group
101 enables Layer 4 inspection. As a result, Layer 7 inspection
is omitted unless the class-map is of type
match-all .
class-map type inspect match-all http-traffic
match protocol http
match access-group 101
!
policy-map type inspect mypolicy
class type inspect http-traffic
inspect
service-policy http http-policy
Example: Creating an Inspect Parameter Map
parameter-map type inspect eng-network-profile
alert on
audit-trail on
dns-timeout 60
icmp idle-timeout 90
max-incomplete low 800
one-minute low 300
sessions maximum 200
tcp finwait-time 5
tcp idle-time 90
tcp max-incomplete host 500 block-time 10
tcp synwait-time 3
udp idle-time 75
Example: Creating Security Zones and Zone Pairs and Attaching a Policy Map to a Zone Pair
Example: Creating a Security Zone
The following example shows how to create security zone z1, which is called finance department networks, and security zone
z2, which is called engineering services network:
zone security z1
description finance department networks
!
zone security z2
description engineering services network
Example: Creating Zone Pairs
The following example shows how to create zones z1 and z2 and specifies that the firewall policy map is applied in zone z2
for traffic flowing between zones:
The following configuration example shows how to prevent memory shortage when a large number of firewall filters are created.
To prevent memory shortage, you can enable the zone-based firewall per-filter statistics with the platform inspect match-statistics per-filter command. In the example, for each filter (ACL or UDP), there are statistics available for the number of packets and the number
of bytes traversed through zone-based firewall.
Per-filter statistics are available only for match-any filters and are not applicable for match-all cases.
Note
For Cisco IOS XE 16.3 and Cisco IOS XE 16.4 releases, to enable per-filter statistics, either reload the device or remove
the service-policies and then reapply the service policies on the zone pair before the platform inspect match-statistics per-filter command is activated.
For Cisco IOS XE 3.17 release, you must save the configuration and reload the system to activate this command.
Note
Similarly, to disable per-filter statistics, either reload the device or remove the service-policies and then reapply the
service policies on the zone pair.
To check the TCAM memory used in a device, use the show platform hardware qfp active classification feature-manager shm-stats-counter command.
Device# show platform hardware qfp active classification feature-manager shm-stats-counter
Shared Memory Information:
Total shared memory size: 16777216
Used shared memory size: 14703656
Note
If traffic drops or per-filter statistics counters are not displayed, then probabilty is the TCAM shared memory used is more
than 75% of the total TCAM.
Note
If the shared memory used in the device is more than 75% of the capacity, the following warning message is displayed :
%CPP_FM-3-CPP_FM_TCAM_WARNING: SIP1: cpp_sp_svr: TCAM limit
exceeded: Already used 75 percent shared memory for per-filter stats.
If the shared memory used in the device is 100%, the following warning message is displayed:
parameter-map type inspect global
log dropped-packets
log flow-export v9 udp destination 192.0.2.0 5000
log flow-export template timeout rate 5000
Example: Configuring the
Cisco Firewall with WAAS
The following is a
sample of an end-to-end Wide Area Application Services (WAAS) traffic flow
optimization configuration for the firewall that uses Web Cache Communication
Protocol (WCCP) to redirect traffic to a Wide Area Application Engine (WAE)
device for traffic interception.
The following
configuration example prevents traffic from being dropped between security zone
members because the integrated-service-engine interface is configured on a
different zone and each security zone member is assigned an interface.
! Zone-based firewall configuration on your router.
ip wccp 61
ip wccp 62
parameter-map type inspect global
log dropped-packets enable
max-incomplete low 18000
max-incomplete high 20000
!
class-map type inspect match-any most-traffic
match protocol icmp
match protocol ftp
match protocol tcp
match protocol udp
!
policy-map type inspect p1
class type inspect most-traffic
inspect
!
class class-default
drop
!
zone security in
!
zone security out
!
zone security waas
!
zone-pair security in-out source in destination out
service-policy type inspect p1
!
zone-pair security out-in source out destination in
service-policy type inspect p1
!
zone-pair security waas-out source waas destination out
service-policy type inspect p1
!
zone-pair security in-waas source in destination waas
service-policy type inspect p1
!
interface GigabitEthernet0/0
description WAN Connection
no ip dhcp client request tftp-server-address
no ip dhcp client request router
ip address dhcp
ip wccp 62 redirect in
ip wccp 61 redirect out
ip flow ingress
ip nat outside
ip virtual-reassembly in
ip virtual-reassembly out
zone-member security out
load-interval 30
delay 30
duplex auto
speed auto
!
interface GigabitEthernet0/1
description Clients
ip address 172.25.50.1 255.255.255.0
ip pim sparse-mode
ip nat inside
ip virtual-reassembly in
zone-member security in
ip igmp version 3
delay 30
duplex auto
speed auto
!
interface Vlan1
description WAAS Interface
ip address 172.25.60.1 255.255.255.0
ip wccp redirect exclude in
ip nat inside
ip virtual-reassembly in
zone-member security waas
load-interval 30
!
The following example shows the configuration on the WAE for
zone-based firewall support:
Note
This configuration cannot be done on the router; but only on the
WAE.
!Configuration on the WAE.
primary-interface Virtual 1/0
interface Virtual 1/0
ip address 172.25.60.12 255.255.255.0
!
ip default-gateway 172.25.60.1
wccp router-list 1 172.25.60.1
wccp tcp-promiscuous service-pair 61 62
router-list-num 1
redirect-method gre
egress-method ip-forwarding
enable
!
Example:
Configuring Firewall with FlexVPN and DVTI Under the Same Zone
The following
example shows a firewall with FlexVPN and Dynamic Virtual Tunnel Interfaces
(DVTI) configured under the same zone.
crypto ikev2 proposal PROP
encryption 3des
integrity sha256
group 5
crypto ikev2 policy POL
match fvrf any
proposal PROP
crypto ikev2 keyring keyring1
peer peer
address 0.0.0.0 0.0.0.0
pre-shared-key cisco
crypto ikev2 profile prof1
authentication remote pre-share
authentication local pre-share
match identity remote address 0.0.0.0
match address local interface loopback1
keyring local keyring1
no shutdown
Virtual-Template 1
class-map type inspect match-any cmap
match protocol icmp
match protocol tcp
match protocol udp
policy-map type inspect pmap
class type inspect cmap
inspect
class class-default
drop log
zone security in
zone security zone1
zone-pair security zp1 source zone1 destination in
service-policy type inspect pmap
crypto ipsec profile ipsec1
set ikev2-profile prof1
interface Loopback1
ip address 51.1.1.1 255.255.255.0
interface Gi0/0/0.2
encapsulation dot1q 2
ip address 100.1.1.1 255.255.255.0
zone-member security in
interface Gi0/0/0.3
encapsulation dot1q 3
ip address 100.1.2.1 255.255.255.0
zone-member security in
interface Gi0/0/0.4
encapsulation dot1q 4
ip address 100.1.3.1 255.255.255.0
zone-member security in
interface Gi0/0/0.5
encapsulation dot1q 5
ip address 100.1.4.1 255.255.255.0
zone-member security in
interface Gi0/0/0.6
encapsulation dot1q 6
ip address 100.1.5.1 255.255.255.0
zone-member security in
interface Virtual-Template1 type tunnel
ip unnumbered loopback1
zone-member security zone1
tunnel source loopback1
tunnel mode ipsec ipv4
tunnel protection ipsec profile ipsec1
ip route 60.0.0.0 255.0.0.0 192.168.2.2
Example:
Configuring Firewall with FlexVPN and DVTI Under a Different Zone
The following
example shows a firewall with FlexVPN and Dynamic Virtual Tunnel Interfaces
(DVTI) configured under a different zone.
crypto ikev2 proposal PROP
encryption 3des
integrity sha256
group 5
crypto ikev2 policy POL
match fvrf any
proposal PROP
crypto ikev2 keyring keyring1
peer peer1
address 0.0.0.0 0.0.0.0
pre-shared-key cisco1
crypto ikev2 keyring keyring2
peer peer2
address 0.0.0.0 0.0.0.0
pre-shared-key cisco2
crypto ikev2 keyring keyring3
peer peer3
address 0.0.0.0 0.0.0.0
pre-shared-key cisco3
crypto ikev2 keyring keyring4
peer peer4
address 0.0.0.0 0.0.0.0
pre-shared-key cisco4
crypto ikev2 keyring keyring5
peer peer5
address 0.0.0.0 0.0.0.0
pre-shared-key cisco5
crypto ikev2 profile prof1
authentication remote pre-share
authentication local pre-share
match identity remote address 0.0.0.0
match address local interface loopback1
keyring local keyring1
no shutdown
Virtual-Template 1
crypto ikev2 profile prof2
authentication remote pre-share
authentication local pre-share
match identity remote address 0.0.0.0
match address local interface loopback2
keyring local keyring2
no shutdown
Virtual-Template 2
crypto ikev2 profile prof3
authentication remote pre-share
authentication local pre-share
match identity remote address 0.0.0.0
match address local interface loopback3
keyring local keyring3
crypto ikev2 profile prof4
authentication remote pre-share
authentication local pre-share
match identity remote address 0.0.0.0
match address local interface loopback4
keyring local keyring4
no shutdown
Virtual-Template 4
crypto ikev2 profile prof5
authentication remote pre-share
authentication local pre-share
match identity remote address 0.0.0.0
match address local interface loopback5
keyring local keyring5
no shutdown
Virtual-Template 5
class-map type inspect match-any cmap
match protocol icmp
match protocol tcp
match protocol udp
policy-map type inspect pmap
class type inspect cmap
inspect
class class-default
drop log
zone security in
zone security zone1
zone security zone2
zone security zone3
zone security zone4
zone security zone5
zone-pair security zp1 source zone1 destination in
service-policy type inspect pmap
zone-pair security zp2 source zone2 destination in
service-policy type inspect pmap
zone-pair security zp3 source zone3 destination in
service-policy type inspect pmap
zone-pair security zp4 source zone4 destination in
service-policy type inspect pmap
zone-pair security zp5 source zone5 destination in
service-policy type inspect pmap
crypto ipsec profile ipsec1
set ikev2-profile prof1
crypto ipsec profile ipsec2
set ikev2-profile prof2
crypto ipsec profile ipsec3
set ikev2-profile prof3
crypto ipsec profile ipsec4
set ikev2-profile prof4
crypto ipsec profile ipsec5
set ikev2-profile prof5
interface Loopback1
ip address 50.1.1.1 255.255.255.0
interface Loopback2
ip address 50.1.2.1 255.255.255.0
interface Loopback3
ip address 50.1.3.1 255.255.255.0
interface Loopback4
ip address 50.1.4.1 255.255.255.0
interface Loopback5
ip address 50.1.5.1 255.255.255.0
interface Gi0/0/0.2
encapsulation dot1q 2
ip address 100.1.1.1 255.255.255.0
zone-member security in
interface Gi0/0/0.3
encapsulation dot1q 3
ip address 100.1.2.1 255.255.255.0
zone-member security in
interface Gi0/0/0.4
encapsulation dot1q 4
ip address 100.1.3.1 255.255.255.0
zone-member security in
interface Gi0/0/0.5
encapsulation dot1q 5
ip address 100.1.4.1 255.255.255.0
zone-member security in
interface Gi0/0/0.6
encapsulation dot1q 6
ip address 100.1.5.1 255.255.255.0
zone-member security in
interface Virtual-Template1 type tunnel
ip unnumbered loopback1
zone-member security zone1
tunnel source loopback1
tunnel mode ipsec ipv4
tunnel protection ipsec profile ipsec1
interface Virtual-Template2 type tunnel
ip unnumbered loopback2
zone-member security zone2
tunnel source loopback2
tunnel mode ipsec ipv4
tunnel protection ipsec profile ipsec2
interface Virtual-Template3 type tunnel
ip unnumbered loopback3
zone-member security zone3
tunnel source loopback3
tunnel mode ipsec ipv4
tunnel protection ipsec profile ipsec3
interface Virtual-Template4 type tunnel
ip unnumbered loopback4
zone-member security zone4
tunnel source loopback4
tunnel mode ipsec ipv4
tunnel protection ipsec profile ipsec4
interface Virtual-Template5 type tunnel
ip unnumbered loopback5
zone-member security zone5
tunnel source loopback5
tunnel mode ipsec ipv4
tunnel protection ipsec profile ipsec5
ip route 60.0.0.0 255.0.0.0 192.168.2.2
Additional
References for Zone-Based Policy Firewalls
The
Cisco Support website provides extensive online resources, including
documentation and tools for troubleshooting and resolving technical issues with
Cisco products and technologies.
To
receive security and technical information about your products, you can
subscribe to various services, such as the Product Alert Tool (accessed from
Field Notices), the Cisco Technical Services Newsletter, and Really Simple
Syndication (RSS) Feeds.
Access
to most tools on the Cisco Support website requires a Cisco.com user ID and
password.
Feature
Information for Zone-Based Policy Firewalls
The following table provides release information about the feature or features described in this module. This table lists
only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise,
subsequent releases of that software release train also support that feature.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco
Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Table 2. Feature Information for
Zone-Based Policy Firewalls
Feature
Name
Releases
Feature
Information
Debuggability Enhancement in Zone Based Firewall (Phase-II)
Cisco IOS
XE Release 3.10S
The
Debuggability Enhancement Zone-Based Firewall provides severity levels for
debug logs.
Firewall—NetMeeting Directory (LDAP) ALG Support
Cisco IOS XE Release 3.1S
LDAP is an
application protocol that is used for querying and updating information stored
on directory servers. The Firewall—Netmeeting Directory ALG Support feature
enables Cisco firewalls to support Layer 4 LDAP inspection by default.
The
following command was introduced or modified by this feature:
match protocol .
IOS-XE
ZBFW interop with crypto VPN
Cisco
IOS XE Release 3.17S
The
IOS-XE ZBFW interop with crypto VPN feature supports enabling zone-based
firewall under FlexVPN DVTI.
No
commands were introduced or updated by this feature.
Out-of-Order Packet Handling in Zone-Based Policy Firewall
Cisco IOS
XE Release 3.5S
The
Out-of-Order Packet Handling feature allows OoO packets to pass through the
router and reach their destination if a session does not require DPI. All Layer
4 traffic with OoO packets are allowed to pass through to their destination.
However, if a session requires Layer 7 inspection, the OoO packets are still
dropped.
Smart License support for Zone Based Firewall on ASR1000
IOS XE Denali 16.3.1
Zone-Based Policy Firewall features for Cisco ASR 1000 Series Aggregation Services Routers are packaged separately from the
security package and hence Zone-Based Policy Firewall requires separate license to enable and disable features. The Smart
License support for Zone Based Firewall on ASR1000 feature implements support for smart licensing at a feature level for on
Cisco ASR 1000 Series Aggregation Services Routers via the Universal K9 software image.
The following command was modified: show license all .
Zone-Based Policy Firewalls
Cisco IOS Release 2.1
The
Zone-Based Policy Firewall feature provides a Cisco IOS XE software
unidirectional firewall policy between groups of interfaces known as zones.
Zone-Based
Firewall—Default Zone
Cisco IOS Release 2.6
The Zone-Based Firewall— Default Zone feature introduces a default zone that enables a firewall policy to be configured on
a zone pair that consist of a zone and a default zone. Any interface without explicit zone membership belongs to the default
zone.
Zone-Based
Firewall Support of Multipath TCP
Cisco IOS
XE Release 3.13S
Multipoint TCP seamlessly works with zone-based firewall Layer 4
inspection. Multipoint TCP does not work with application layer gateways (ALGs)
and application inspection and control (AIC).
No
commands were introduced or updated by this feature.