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
Chapter 12; Recipe 10.1