Virtual Routing and Forwarding

Configuring Virtual Routing and Forwarding (VRF) on Cisco Secure Firewall

Introduction

The Virtual Routing and Forwarding (VRF) feature was added in Firewall Threat Defense (FTD) release 6.6 to allow for routing table segregation. Also, VRF allows network segments with overlapping IP address spaces. VRF implementation on FTD is akin to VRF-lite on Cisco routers. You can also use VRFs for routing plane separation during migration from multi-context ASAs to FTD.

Release 7.2 adds VRF support for the 1010 series and allows VTIs in user-defined VRFs.

Configuration

Using VRF, we can separate the firewall functions for different routing domains across an enterprise network. Also, it allows for overlapping address space to co-exist and communicate through the FTD.

📘

Note

The FMC and FDM user interface refer to a VRF as Virtual Router. These terms will be used interchangeably.

Firewall Management Center

This section details the configuration steps using Firewall Management Center (FMC).

Creating a VRF

Step 1: Choose Devices > Devices Management. Click on the "pencil" icon against the FTD you wish to configure for VRFs.

Step 2: Click on the Routing tab.

**Figure 1:**  Routing tab

Figure 1: Routing tab

Step 3: Click Manage Virtual Routers. Notice that all the interfaces are assigned to the Global VRF, which is the default configuration.

**Figure 2:** Manage Virtual Routers

Figure 2: Manage Virtual Routers

📘

Note

Under Manage Virtual Routers, there is a dropdown menu to select a VRF. After creating a new VRF, use this to select that VRF and configure settings within the VRF, such as interface assignments, static and dynamic routing.

Step 4: Click + Add Virtual Router

**Figure 3:**  Click "Add Virtual Router"

Figure 3: Click "Add Virtual Router"

Step 5: Enter the VRF name and description. Click OK.

**Figure 4:** New virtual router details

Figure 4: New virtual router details

🚧

Warning

Verify the VRF name before assigning interfaces to the VRF. The FMC does not allow editing the name of the VRF once it is created. If you wish to change the VRF name, you need to click on Manage Virtual Routers, delete the VRF and recreate the VRF with the correct name.

Step 6: Now, you will be redirected to the Virtual Router Properties page with the newly created VRF selected in the dropdown menu. Select the interface/s from the Available Interfaces and click Add.

**Figure 5:**  Virtual Router Properties

Figure 5: Virtual Router Properties

📘

Note

Available Interfaces only the interfaces configured with a logical name and not assigned to another user-defined VRF are available.

Step 7: You can repeat Steps 3 to 6 for adding more VRFs.

Step 8: Remember to save the changes after adding the VRFs.

**Figure 6:**  Make sure to save your changes!

Figure 6: Make sure to save your changes!

Step 9: Deploy from the FMC if you are not making any more configuration changes.

Configure Static Routes for VRF

You can use Static routes for intra VRF routing or to leak routes into other user-defined VRFs or the global VRF. When selecting an interface for the static route, the FMC shows the VRF that the interface belongs to.

Step 1: Select the VRF from the dropdown menu under Manage Virtual Routers.

**Figure 7:**  Selecting a user-defined VRF

Figure 7: Selecting a user-defined VRF

Step 2: Click on Static Route.

**Figure 8:**  Static routes

Figure 8: Static routes

Step 3: Click on Add Route.

**Figure 9:** Add Route

Figure 9: Add Route

Step 4: Select IPv4 or IPv6

Step 5: Select an interface from the interface dropdown list

📘

Note

FMC shows the VRF assignment of each interface. Interfaces that are part of Global VRF have the word Global shown against them. For route leaking, don't specify the next hop.

Step 6: Select Network from the Available Network dropdown list. Click Add to populate the table named Selected Network.

Step 7: Select the next hop from the Gateway dropdown list. If leaking routes, leave this blank.

Step 8: Click OK.

**Figure 10:** Static route configuration

Figure 10: Static route configuration

Step 9: Click Save to save the changes to the VRF configuration.

**Figure 11:**  Don't forget to save your changes

Figure 11: Don't forget to save your changes

📘

Note

You must leak the route in the reverse direction as well if the traffic is not matching any inspection rules such as ICMP inspection. If the Gateway objects don't exist, you can create a new object from the route configuration window.

Step 10: Deploy from FMC if you are not making any more configuration changes.

Configure OSPF for VRF

FTD supports OSPFv2 for user-defined VRFs and OSPFv2/v3 for Global VRFs.

Step 1: Select the VRF from the dropdown menu under Manage Virtual Routers. (See Figure 7)

Step 2: Click on OSPF.

Step 3: Check the Process 1 checkbox.

**Figure 12:**  OSPF settings

Figure 12: OSPF settings

📘

Note

The Process ID is pre-filled and cannot be changed. FTD allows 2 OSPF processes per VRF. The numbers 1 and 2 are reserved for the OSPF Process IDs in global VRF. The next two numbers, 3 and 4, are allocated to the two OSPF Process IDs in the first user-defined VRFs. This incremental pattern continues whenever OSPF is enabled in the next user-defined VRF.

Step 4: The rest of the OSPF configuration is similar to a non-VRF aware OSPF configuration.

📘

Note

Interface allows you to select only the interfaces of the virtual router that you are configuring. OSPFv3 configuration is available only in the Global VRF.

Step 5: Deploy from FMC if you are not making any more configuration changes.

Configure BGP for VRF

All VRFs share a single BGP process with each VRF as an address family within that process. That is why the BGP configuration is split into two steps. There are general settings (e.g. AS number) and per user-defined VRF settings.

Step 1: In the same column as the Manage Virtual Routers, click on BGP under General Settings (Irrespective of the VRF selected under Manage Virtual Routers).

**Figure 13:**  Configuring BGP

Figure 13: Configuring BGP

Step 2: Check the checkbox named Enable BGP. Enter the AS number.

**Figure 14:**  Enabling BGP

Figure 14: Enabling BGP

Step 3: Configure the rest of the BGP General Settings.

Step 4: Select a VRF from the dropdown menu under Manage Virtual Routers.

Step 5: Click BGP. Configure the BGP settings specific to the selected VRF.

**Figure 15:**  BGP general settings

Figure 15: BGP general settings

📘

Note

You cannot change all the global BGP settings within User-defined VRFs. However, you can override the router-Id within each VRF. The rest of the BGP configuration is similar to non-VRF aware BGP configuration.

Step 6: Click IPv4 under BGP. Click on Enable IPv4. Configure the IPv4 address family settings.

**Figure 16:** Enabling IPv4 for BGP

Figure 16: Enabling IPv4 for BGP

📘

Note

User-defined VRFs support BGP IPv4 address family, whereas Global VRFs BGP configuration supports IPv4 and IPv6 address families.

Step 7: Deploy from FMC if you are not making any more configuration changes.

Multi-Instance with VRF

VRF configuration is unchanged when using multi-instance deployments on Secure Firewall platforms. However, instance sizing should account for both throughput requirements and route scale.

Route capacity is not calculated directly from the number of cores assigned to an instance. Instead, each instance size has a supported maximum route scale. Use the route-sizing table or sizing tool to select an instance that supports the required aggregate number of routes across the VRFs in that instance.

For releases through 10.0, an instance can support up to 100 VRFs as long as the total route count remains within the supported route limit for that instance. In release 10.1 and later, the VRF limit increases to 250 VRFs per instance, again subject to the supported route limit within that instance.

When throughput-based sizing and route-based sizing result in different instance sizes, choose the larger instance.

Secure Firewall 4245 route capacity by instance size

The figures below apply to the 4245 appliance. Figures for other appliances will be added soon.

Instance coresLINA coresMax routes, pre-10.1Max routes, 10.1+
623,38933,896
824,93849,389
1046,49764,976
1248,04680,469
1469,57795,774
16611,173111,737
18812,769127,699
20814,366143,661
221015,962159,624
241017,464174,647
261219,061190,610
281220,657206,572
301422,253222,535
321423,849238,497
341625,446254,460
361627,042270,422
381828,638286,384
401830,140301,408
422031,737317,370
442033,333333,333
462234,929349,295
482236,525365,258
502438,122381,220
522439,718397,183
542641,314413,145
562642,910429,107
582844,413444,131
602846,009460,093
623047,605476,056
643049,201492,018
663050,798507,981
683252,394523,943
703253,990539,906
723455,586555,868
743457,183571,830
763658,685586,854
783660,281602,816
803861,877618,779
823863,474634,741
844065,070650,704
864066,666666,666
884268,262682,629
904269,859698,591
924471,455714,553
944472,957729,577
964674,553745,539
984676,150761,502
1004877,746777,464
1024879,342793,427
1045080,938809,389
1065082,535825,352
1085284,131841,314
1105285,727857,276
1125487,230872,300
1145488,826888,262
1165690,422904,225
1185692,018920,187
1205893,615936,150
1225894,835948,356
1246096,713967,136
1266098,591985,915
1286099,530995,305
13060101,4081,014,084
13262103,2861,032,863
13462105,1641,051,643
13664106,1031,061,032
13864107,9811,079,812
14066109,8591,098,591
14266110,7981,107,981
14468112,6761,126,760
14668114,5531,145,539
14870115,4921,154,929
15070117,3701,173,708
15272119,2481,192,488
15472120,1871,201,877
15674122,0651,220,657
15874123,9431,239,436
16076124,8821,248,826
16276126,7601,267,605
16478128,6381,286,384
16678130,5161,305,164
16880131,4551,314,553
17080133,3331,333,333
17282135,2111,352,112
17482136,1501,361,502
17684138,0281,380,281
17884139,9061,399,061
18086140,8451,408,450
18286142,7231,427,230
18488144,6001,446,009
18688145,5391,455,399
18890147,4171,474,178
19090149,2951,492,957
19290150,2341,502,347
19492152,1121,521,126
19692153,9901,539,906
19894155,8681,558,685
20094156,8071,568,075
20296158,6851,586,854
20496160,5631,605,633
20698161,5021,615,023
20898163,3801,633,802
210100165,2581,652,582
212100166,1971,661,971
214102168,0751,680,751
216102169,9531,699,530
218104170,8921,708,920
220104172,7691,727,699
222106174,6471,746,478
224106176,5251,765,258
226108177,4641,774,647
228108179,3421,793,427
230110181,2201,812,206
232110182,1591,821,596
234112184,0371,840,375
236112185,9151,859,154
238114186,8541,868,544
240114188,7321,887,323
242116190,6101,906,103
244116191,5491,915,492
246118193,4271,934,272
248118195,3051,953,051
250120196,2441,962,441
252120198,1221,981,220
254120200,0002,000,000

How policies interact with VRF

Assigning the interfaces to different VRFs segments the routing table. However, the Security Policies consider the interface's Security Zone, which implies that the policy evaluation is not VRF aware by default.

📘

Note

The Security Intelligence policy is not VRF aware. If an IP address, domain or URL is blocked as part of Security Intelligence, it will be blocked across all the VRFs.

E.g. If you create a rule with the source zone as "any," it matches the traffic originating from all interfaces across all VRFs.

For applying policies based on VRF, you need to assign the same Security Zone to all the interfaces from a VRF and then use that Security Zone in the security policy.

Overlapping IP addresses

VRFs create mutually exclusive routing tables, enabling FTD to allow overlapping or same address spaces across different VRFs. While creating a security policy, we need to be aware of overlapping IP subnets.

E.g. IP subnet 192.168.1.0/24 exists in VRF-A and VRF-B. The network administrators require users in VRF-A to have Internet access and users in VRF-B to not have Internet access. If you create a security policy that allows Internet access based solely on the source IP network, you will inadvertently allow access to the Internet from both VRFs. You need to assign the interfaces belonging to VRF-A and VRF-B in different Security Zones. Use the Security Zone assigned to the VRF-A interfaces and the source IP network to allow Internet access.

Limitations

Identity policies require different realms per VRF and different ISE connections per VRF to segregate the user-IP and SGT-IP mappings per VRF.

Features such as Threat Intelligence Director (TID), Host Profiling and Malware Trajectory rely on the FMC to map the network. Overlapping IP addresses make it impossible to differentiate when the same IP address belongs to two different hosts. When an overlapping IP segment exists on the same device across multiple VRFs, the analysis from these features is not accurate.

NAT interaction with VRF

FTD uses NAT and/or a routing table for selecting the egress interface and the next hop adjacency resolution. NAT can be used to leak routes across two VRFs and also as a way of enabling communication between overlapping subnets.

Route Leaking using NAT

If you configure NAT rules with the source and destination interfaces in different VRFs, the traffic passes from one VRF to another. However, suppose you do not specify the route lookup option. In that case, the NAT configuration determines the egress interface and the traffic will be sent to the VRF mapped to the destination interface without validating if the destination VRF has a route. We recommended using static routes for route leaking along with a NAT policy configuration.

**Figure 37:**  Route Leaking using NAT

Figure 37: Route Leaking using NAT

Overlapping IP addresses

**Figure 38:**  Overlapping IP Addresses

Figure 38: Overlapping IP Addresses

If a NAT rule is applied to VRFs with overlapping IP address spaces, ensure that the source interface is specified in a NAT rule for each VRF, ideally with separate NAT/PAT pools. Using 'any' in the source interface causes reverse translation to fail. Even without overlapping IP addresses, using specific interface definitions in the NAT rules is highly recommended.

NAT can enable overlapping subnets to communicate with each other without using BVIs or another network hop, as shown in this example:

**Figure 39:**  Using NAT to enable overlapping IP addresses

Figure 39: Using NAT to enable overlapping IP addresses

Verification and Troubleshooting

show vrf
show route \[vrf name\]

show ospf \[ vrf name \| all\]

show bgp \[ vrf name \| all\]

A special SI route flag shows leaked routes in the routing table.

**Figure 40:** "show route" output

Figure 40: "show route" output

Number of Supported VRFs per Platform

Firepower PlatformVRF Limit
1010, 11205
1140, 1150, 2110, ISA300010
311015
212020
312025
2130, FTDv​30
2140​40
313050
4110, 4112​60
4115, 4120​80
3140, 4125, 4140, 4145, 4150, 9300 SM-24/36/40/44/48/56 (per-blade)​100
9300 with fully populated blades (3x SM)​300

Table 1: VRFs per Platform

Summary

VRF combined with multi-instance can provide true multi-tenancy through routing, security policy and management plane separation.

📚 Additional Resources

More detailed information about VRF is available in the configuration guides for:

Title of the document The current suggested release is 7.6.4 Release 10.0 is live!