Cisco VRF Basics

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Cisco VRF Virtual Routing and

Forwarding
How does a service provider manage to allow overlapping IP addresses for its different
customers, specifically private IP addresses, without affecting network functionality? The
answer is creating multiple routing instances or Cisco VRF, Virtual Routing and Forwarding,
instances.

To put it simply, VRF is like configuring multiple routers or multiple routing tables on the
same router. Let’s look at the image below:

Imagine that the service provider is one giant router with its own global routing table, which
could be public IPs routable to the Internet. Inside this giant router, we configure a virtual
router for Customer A, who happens to be advertising network 192.168.1.0/24 from one of
their sites through either static or dynamic routing. Then, another customer, Customer B, also
advertises the same network 192.168.1.0/24 from one of their sites.

Customers can freely use private IP addresses as stated in RFC 1918:

An enterprise that decides to use IP addresses out of the address space defined in this
document can do so without any coordination with IANA or an Internet registry.

Cisco VRF Configuration Steps

Now, let’s proceed with the process and VRF configuration mode.
1. Let’s create a VRF instance for our Customer A using the ‘vrf definition <vrf-name>’
command. Remember that the VRF name is case-sensitive.

ISP#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ISP(config)#vrf definition Cust-A

2. Use the ‘address-family <ipv4 | ipv6>’ command to initialize the address family. We can
configure both IPv4 and IPv6 addresses. For our example, we’ll stick to IPv4.

ISP(config-vrf)#address-family ipv4
ISP(config-vrf-af)#

3. Associate interfaces with VRF instance by using command ‘interface <interface-id>’ and
‘vrf forwarding <vrf-name>’.

ISP(config)#interface gigabitEthernet 0/1


ISP(config-if)#vrf forwarding Cust-A

4. Configure the IPv4 address on the interface.

ISP(config-if)#ip address 192.168.1.1 255.255.255.0

Let’s repeat the same process for Customer B:

ISP#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ISP(config)#vrf definition Cust-B
ISP(config-vrf)#address-family ipv4
ISP(config-vrf-af)#exit
ISP(config-vrf)#exit
ISP(config)#interface gigabitEthernet 0/2
ISP(config-if)#vrf forwarding Cust-B
ISP(config-if)#ip address 192.168.1.1 255.255.255.0
ISP(config-if)#end

Notice that the ISP router did not alert us of any overlapping IP addresses. Normally, it
will say something like this:

ISP(config-if)#ip address 192.168.1.1 255.255.255.0


% 192.168.1.0 overlaps with GigabitEthernet0/1

For our ISP global config, we’ve configured 172.10.10.0/24.


Now let’s look at the three routing tables. We should see three different routing tables in a
single router.

For ISP’s global routing table:

ISP#sh ip route

172.10.0.0/16 is variably subnetted, 2 subnets, 2 masks


C 172.10.10.0/24 is directly connected, GigabitEthernet0/0
L 172.10.10.1/32 is directly connected, GigabitEthernet0/0

For Customer A’s routing table:

ISP#sh ip route vrf Cust-A

Routing Table: Cust-A

192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks


C 192.168.1.0/24 is directly connected, GigabitEthernet0/1
L 192.168.1.1/32 is directly connected, GigabitEthernet0/1

For Customer B’s routing table:

ISP#sh ip route vrf Cust-B

Routing Table: Cust-B

192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks


C 192.168.1.0/24 is directly connected, GigabitEthernet0/2
L 192.168.1.1/32 is directly connected, GigabitEthernet0/2

Our previous example is usually found on ISP routers, but we can also use this on enterprise
routers called VRF Lite. For example, if we want to separate our network paths for Intranet
and Extranet, then we can create multiple routing tables. The VRF Lite configuration looks
almost the same as our example above, but with some minor differences. However, the
concept is still the same.

You might also like