Simulating a Frame Relay Cloud

Simulating a Frame Relay Cloud

Problem

You want to use a router to simulate a Frame Relay cloud in the lab.

Solution

A Cisco router can function as a Frame Relay switch. This is mostly useful when you are trying to simulate a Frame Relay cloud in a lab to test your router configurations:

Cloud#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Cloud(config)#frame-relay switching
Cloud(config)#interface Serial0
Cloud(config-if)#description Frame-relay connection to Central - DLCI 50
Cloud(config-if)#encapsulation frame-relay
Cloud(config-if)#clock rate 125000
Cloud(config-if)#frame-relay lmi-type cisco
Cloud(config-if)#frame-relay intf-type dce
Cloud(config-if)#frame-relay route 101 interface Serial1 50
Cloud(config-if)#frame-relay route 102 interface Serial2 50
Cloud(config-if)#exit
Cloud(config)#interface Serial1
Cloud(config-if)#description Frame-relay connection to Branch1 - DLCI 101
Cloud(config-if)#encapsulation frame-relay
Cloud(config-if)#clock rate 125000
Cloud(config-if)#frame-relay lmi-type cisco
Cloud(config-if)#frame-relay intf-type dce
Cloud(config-if)#frame-relay route 50 interface Serial0 101
Cloud(config-if)#exit
Cloud(config)#interface Serial2
Cloud(config-if)#description Frame-relay connection to Branch2 - DLCI 102
Cloud(config-if)#encapsulation frame-relay
Cloud(config-if)#clock rate 125000
Cloud(config-if)#frame-relay lmi-type cisco
Cloud(config-if)#frame-relay intf-type dce
Cloud(config-if)#frame-relay route 50 interface Serial0 102
Cloud(config-if)#exit
Cloud(config)#end
Cloud#

Discussion

This type of configuration can be extremely useful when you need to test basic Frame Relay functionality in a lab, and you don't happen to have a real Frame Relay switch available. However it's extremely important to remember that a router is not a Frame Relay switch, and it doesn't emulate all of the functionality of the switch. In particular, the router will not support switching of SVCs. Also, although Cisco has introduced the frame-relay congestion-management command, you can still only generate FECN and BECN notifications on a limited set of router hardware and software configurations. So if you are using this type of configuration to test adaptive traffic shaping or any other feature that relies on BECN notifications, it will not give you a reliable simulation of a real cloud.

To use the router as a Frame Relay switch, you must first enable the frame-relay switching option. Then you must configure each interface as DCE with the frame-relay intf-type command, and supply a clock signal with the clock rate command. Cisco routers will not allow you to configure this command unless you use a DCE cable on the interface. And, finally, you need to map the PVCs. In this case, we have configured a central hub router and two branch routers, as in Recipe 10.1. The central router can see both of the branch routers, one with DLCI 101, and the other with DLCI 102. Both of the branch routers see the central router with DLCI 50. The two branch routers cannot see one another directly.

In this example, all three of the Frame Relay connections are to DTE devices such as routers, so all of the interfaces are configured for DCE signaling. However, you can also configure connections to other switching devices. This might be useful if you were interested in constructing your own private Frame Relay cloud. In this case, you would still need to designate one of the devices to be the physical DCE and supply the clock. Then you would configure the interface type on both devices as nni:

Cloud#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Cloud(config)#interface Serial2
Cloud(config-if)#description Frame-relay connection to next switch
Cloud(config-if)#encapsulation frame-relay
Cloud(config-if)#clock rate 125000
Cloud(config-if)#frame-relay lmi-type cisco
Cloud(config-if)#frame-relay intf-type nni
Cloud(config-if)#exit
Cloud(config)#end
Cloud#

You would also use frame-relay route statements to configure one or more PVCs to be served by this neighboring switch. The PVC routing commands in this case are identical to those for DCE interfaces.

You can look at the routing of the virtual circuits on a router that is configured for Frame Relay switching with the show frame-relay route command:

Cloud#show frame-relay route
Input Intf Input Dlci Output Intf Output Dlci Status
Serial0 101 Serial1 50 active
Serial0 102 Serial2 50 inactive
Serial0 103 Serial3 50 inactive
Serial1 50 Serial0 101 active
Serial1 102 Serial2 101 inactive
Serial1 103 Serial3 101 inactive
Serial2 50 Serial0 102 inactive
Serial2 101 Serial1 102 inactive
Serial2 103 Serial3 102 inactive
Serial3 50 Serial0 103 inactive
Serial3 101 Serial1 103 inactive
Serial3 102 Serial2 103 inactive
Cloud#

This output shows, for example, that traffic received on DLCI number 101 through interface Serial0 is forwarded to DLCI number 50 on Serial1. And a few lines lower, you can see the reverse path as well. The status for both of these lines is active, so this virtual circuit is working properly.

Another extremely useful option for creating private Frame Relay networks is the ability to specify a GRE tunnel as the destination of a Frame Relay route command:

Cloud(config)#interface Loopback1
Cloud(config-if)#ip address 192.168.2.1 255.255.255.255
Cloud(config-if)#exit
Cloud(config)#interface Tunnel1
Cloud(config-if)#ip address 192.168.1.5 255.255.255.252
Cloud(config-if)#tunnel source 192.168.2.1
Cloud(config-if)#tunnel destination 192.168.2.2
Cloud(config-if)#exit
Cloud(config)#interface Serial1
Cloud(config-if)#frame-relay route 201 interface Tunnel1 101
Cloud(config-if)#exit

In this case, we have created a GRE tunnel interface called Tunnel1, which terminates on another router somewhere else in the network. Then we route Frame Relay DLCI 201 to this tunnel interface. On the other router, you would need to create a similar GRE tunnel interface. Then, on a Serial interface on that other router, you would put a matching frame-relay route statement:

Cloud9(config)#interface Loopback1
Cloud9(config-if)#ip address 192.168.2.2 255.255.255.255
Cloud9(config-if)#exit
Cloud9(config)#interface Tunnel1
Cloud9(config-if)#ip address 192.168.1.6 255.255.255.252
Cloud9(config-if)#tunnel source 192.168.2.2
Cloud9(config-if)#tunnel destination 192.168.2.1
Cloud9(config-if)#exit
Cloud9(config)#interface Serial1
Cloud9(config-if)#frame-relay route 301 interface Tunnel1 101
Cloud9(config-if)#exit

This is an extremely efficient way of creating a virtual Frame Relay cloud layered on top of an existing IP network.

See Also