We’re going to discuss three ways of using dial as backup solution. The first way is to use Backup Interface, the second one is to use Dialer Watch, and the last one is to use Floating Route.

! hostname R1 ! username r2 password 0 cisco ! isdn switch-type basic-net3 ! interface Loopback0 ip address 10.10.10.10 255.255.255.255 ! interface Serial0 bandwidth 64 no ip address encapsulation frame-relay ! interface Serial0.111 point-to-point backup delay 5 20 backup interface BRI0 ip address 131.108.0.1 255.255.255.252 frame-relay interface-dlci 111 ! interface BRI0 ip address 131.108.0.5 255.255.255.252 encapsulation ppp dialer idle-timeout 300 dialer map ip 131.108.0.6 name R2 broadcast 98050041 dialer-group 1 isdn switch-type basic-net3 ppp authentication chap ! router ospf 1 log-adjacency-changes network 10.10.10.10 0.0.0.0 area 0 network 131.108.0.0 0.0.0.3 area 0 network 131.108.0.4 0.0.0.3 area 0 ! dialer-list 1 protocol ip permit ! end
! hostname R2 ! username R1 password 0 cisco ! isdn switch-type basic-net3 ! interface Loopback0 ip address 20.20.20.20 255.255.255.255 ! interface Serial0 bandwidth 64 no ip address encapsulation frame-relay ! interface Serial0.222 point-to-point ip address 131.108.0.2 255.255.255.252 frame-relay interface-dlci 222 ! interface BRI0 ip address 131.108.0.6 255.255.255.252 encapsulation ppp isdn switch-type basic-net3 ppp authentication chap ! router ospf 1 log-adjacency-changes network 20.20.20.20 0.0.0.0 area 0 network 131.108.0.0 0.0.0.3 area 0 network 131.108.0.4 0.0.0.3 area 0 ! dialer-list 1 protocol ip permit ! end
Both routers have two links. The main one is the FR link and we assigned BRI0 to be the backup interface. R1 will be the initiator to dial R2 whenever the FR link is down.
interface Serial0.111 point-to-point backup delay 5 20 backup interface BRI0
On the R1′s configuration above, this command will make BRI0 as a backup interface when the Serial0.111 is down. Not only that, BRI0 will wait for 5 seconds before initiate a dial when it sees Serial0.111 is down and wait 20 seconds to hang up when it sees Serial0.111 is up.
Before we go to test this backup link. Let me explain the how the routing works on this scenario. As you can see from the configuration that I’m using 3 network to be advertised by OSPF. 20.20.20.20 for the Loopback, 131.108.0.0/30 for FR link, and 131.108.0.4/30 for ISDN link. Is it possible to make one subnet for FR and ISDN? The answer is yes! The main concern is that you have to make sure that the OSPF advertisement is passes on the ISDN link. If you forget and only advertise the FR link and not also the ISDN link, OSPF won’t make adjacency through ISDN link and won’t pass the OSPF advertisement through the ISDN link and it means from R1 you won’t get the routing for 10.10.10.10 from R2, vice versa. The ISDN will work but the routing won’t.
Let see what is going to happen if we simulate the FR link down.
00:04:57: %OSPF-5-ADJCHG: Process 1, Nbr 20.20.20.20 on Serial0.111 from FULL to DOWN, Neighbor Down: Interface down or detached 00:05:02: %LINK-3-UPDOWN: Interface BRI0:1, changed state to down 00:05:02: %LINK-3-UPDOWN: Interface BRI0:2, changed state to down 00:05:02: %LINK-3-UPDOWN: Interface BRI0, changed state to up 00:05:03: %ISDN-6-LAYER2UP: Layer 2 for Interface BR0, TEI 66 changed to up 00:05:03: %LINK-3-UPDOWN: Interface BRI0:1, changed state to up 00:05:04: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state to up 00:05:09: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 98050041 R2 00:05:13: %OSPF-5-ADJCHG: Process 1, Nbr 20.20.20.20 on BRI0 from LOADING to FULL, Loading Done
The first thing that happens is Serial0.111 change its status to down, followed by the OSPF adjacency from FULL to DOWN. As now the Serial0.111 is down, 5 seconds later, BRI0 initiated a call to 98050041 R2. Following the link between R1 and R2 is up by BRI0, OSPF creates a new adjacency.
Using command sh ip ospf nei you will see that adjacency was made using interface BRI0 and the routing table shows more.
R1#sh ip ospf nei
Neighbor ID Pri State Dead Time Address Interface
20.20.20.20 1 FULL/ - 00:00:35 131.108.0.6 BRI0
R1#sh ip route
Gateway of last resort is not set
20.0.0.0/32 is subnetted, 1 subnets
O 20.20.20.20 [110/1563] via 131.108.0.6, 00:03:12, BRI0
10.0.0.0/32 is subnetted, 1 subnets
C 10.10.10.10 is directly connected, Loopback0
131.108.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 131.108.0.6/32 is directly connected, BRI0
C 131.108.0.4/30 is directly connected, BRI0
Using command sh backup you will get the status of the backup interface.
R1#sh backup Primary Interface Secondary Interface Status ----------------- ------------------- ------ Serial0.111 BRI0 backup mode
Suddenly, I got this message.
00:13:33: %ISDN-6-DISCONNECT: Interface BRI0:1 disconnected from 98050041 R2, call lasted 119 seconds 00:13:33: %LINK-3-UPDOWN: Interface BRI0:1, changed state to down 00:13:34: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state to down 00:13:43: %LINK-3-UPDOWN: Interface BRI0:1, changed state to up 00:13:44: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state to up 00:13:49: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 98050041 R2
Seems like I forgot to put dialer idle-timeout <some_seconds> on both routers. As default, BRI0 has 120 seconds idle-timeout that disconnect the ISDN link if no packet passes within 120 seconds.
R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#int bri0 R1(config-if)#dialer idle R1(config-if)#dialer idle-timeout 300
Now let us bring the FR link back.
00:34:59: %OSPF-5-ADJCHG: Process 1, Nbr 20.20.20.20 on Serial0.111 from LOADING to FULL, Loading Done
00:35:18: %ISDN-6-DISCONNECT: Interface BRI0:1 disconnected from 98050041 R2, call lasted 95 seconds
00:35:18: %LINK-3-UPDOWN: Interface BRI0:1, changed state to down
00:35:18: %ISDN-6-LAYER2DOWN: Layer 2 for Interface BR0, TEI 66 changed to down
00:35:18: %OSPF-5-ADJCHG: Process 1, Nbr 20.20.20.20 on BRI0 from FULL to DOWN, Neighbor Down: Interface down or detached
00:35:18: %LINK-3-UPDOWN: Interface BRI0:1, changed state to down
00:35:18: %LINK-5-CHANGED: Interface BRI0, changed state to standby mode
00:35:18: %LINK-3-UPDOWN: Interface BRI0:2, changed state to down
00:35:19: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state to down
R1#sh ip ospf nei
Neighbor ID Pri State Dead Time Address Interface
20.20.20.20 1 FULL/ - 00:00:39 131.108.0.2 Serial0.111
R1#sh ip route
Gateway of last resort is not set
20.0.0.0/32 is subnetted, 1 subnets
O 20.20.20.20 [110/1563] via 131.108.0.2, 00:01:54, Serial0.111
10.0.0.0/32 is subnetted, 1 subnets
C 10.10.10.10 is directly connected, Loopback0
131.108.0.0/30 is subnetted, 2 subnets
O 131.108.0.4 [110/3124] via 131.108.0.2, 00:01:54, Serial0.111
C 131.108.0.0 is directly connected, Serial0.111
R1#sh backup
Primary Interface Secondary Interface Status
----------------- ------------------- ------
Serial0.111 BRI0 normal operation
At this stage we manage to create a backup interface to support FR link in case the link is down.
Dialer Watch.
As I mentioned earlier, BRI0 will only dial if the Serial0.111 is down. What if the we lost connectivity to R2 but the link shows up? Is it possible? Sometimes, in real world the Carrier or Service Provider will have this problem on the exchange. It will kill the link but your interface remains up and up. Or for this example, the serial interface on R2 is down but R1 won’t see it.
R2#conf t Enter configuration commands, one per line. End with CNTL/Z. R2(config)#int s0 R2(config-if)#int s0.222 p R2(config-subif)#shut R2(config-subif)# 00:42:08: %OSPF-5-ADJCHG: Process 1, Nbr 10.10.10.10 on Serial0.222 from FULL to DOWN, Neighbor Down: Interface down or detached 00:42:12: %OSPF-5-ADJCHG: Process 1, Nbr 10.10.10.10 on BRI0 from FULL to DOWN, Neighbor Down: Dead timer expired
Now you may see the link is up but actually it is not and this effects the backup interface.
R1#sh ip ospf nei
R1#sh ip int brie
Interface IP-Address OK? Method Status Protocol
BRI0 131.108.0.5 YES NVRAM standby mode down
BRI0:1 unassigned YES unset administratively down down
BRI0:2 unassigned YES unset administratively down down
Ethernet0 unassigned YES NVRAM administratively down down
Loopback0 10.10.10.10 YES NVRAM up up
Serial0 unassigned YES NVRAM up up
Serial0.111 131.108.0.1 YES NVRAM up up
Serial1 unassigned YES NVRAM administratively down down
R1#sh frame-relay pvc
PVC Statistics for interface Serial0 (Frame Relay DTE)
Active Inactive Deleted Static
Local 1 0 0 0
Switched 0 0 0 0
Unused 0 1 0 0
DLCI = 111, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0.111
input pkts 113 output pkts 151 in bytes 13683
out bytes 18604 dropped pkts 0 in pkts dropped 0
out pkts dropped 0 out bytes dropped 0
in FECN pkts 0 in BECN pkts 0 out FECN pkts 0
out BECN pkts 0 in DE pkts 0 out DE pkts 0
out bcast pkts 151 out bcast bytes 18604
pvc create time 00:45:28, last time pvc status changed 00:04:44
R1#sh ip route
Gateway of last resort is not set
10.0.0.0/32 is subnetted, 1 subnets
C 10.10.10.10 is directly connected, Loopback0
131.108.0.0/30 is subnetted, 1 subnets
C 131.108.0.0 is directly connected, Serial0.111
The second method we can use is to watch particular routing subnet, if this subnet is gone from the routing table, it will bring up the BRI0 interface. It is called Dialer Watch.
After removing the backup delay and backup interface commands we put these commands on R1 to watch routing for subnet 20.20.20.20.
R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#dialer watch-list 1 delay route-check initial 600 R1(config)#dialer watch-list 1 ip 20.20.20.20 255.255.255.255 R1(config)#int bri0 R1(config-if)#dialer watch-disable 10 R1(config-if)#dialer watch-group 1 R1(config-if)#dialer map ip 20.20.20.20 name R2 broadcast 98050041
The command dialer watch-list 1 delay route-check initial 600 will make the dialer not to check the routing table for the first 600 seconds (10 minutes) during the router reload or reboot. This is very important command while sometimes we face the problem like FR is not in sync and need to reload or reboot the router. When the router is rebooted, several interfaces will initially remain down withing few minutes.
The command dialer watch-list 1 ip 20.20.20.20 255.255.255.255 will watch the 20.20.20.20 routing whether it is still on the routing table.
The command dialer watch-disable 10 will make the BRI0 wait 10 seconds before bringing the BRI0 interface down after suspecting the routing is back.
The command dialer watch-group 1 will apply the dialer watch-list 1 to the BRI0.
As we want the router watching the route to 20.20.20.20, we also have to prepare the router how to reach 20.20.20.20 using command dialer map ip 20.20.20.20 name R2 broadcast 98050041
Actually, I’ve made another article on how I failed to create a proper scenario where the BRI0 keep on connected. If you want to help, just read my article HELPME: Prefered Routing using Dialer Watch. and kindly provide the solution.
Floating Route
The third way to use dial backup is taking the advantage of floating route. This is the most common way people implement for dial backup.
The idea is simple. You put a static route which has metric a bit more than your dynamic routing protocol. So that if you loose your dynamic routing, you will get you routing replaced by your floating route.
hostname R1 ! username r2 password 0 cisco ! isdn switch-type basic-net3 ! interface Loopback0 ip address 10.10.10.10 255.255.255.255 ! interface Serial0 bandwidth 64 no ip address encapsulation frame-relay ! interface Serial0.111 point-to-point ip address 131.108.0.1 255.255.255.252 frame-relay interface-dlci 111 ! interface BRI0 ip address 131.108.0.5 255.255.255.252 encapsulation ppp dialer idle-timeout 30 dialer map ip 20.20.20.20 name R2 broadcast 98050041 dialer-group 1 isdn switch-type basic-net3 ppp authentication chap ! router ospf 1 log-adjacency-changes network 10.10.10.10 0.0.0.0 area 0 network 131.108.0.0 0.0.0.3 area 0 network 131.108.0.4 0.0.0.3 area 0 ! ip route 0.0.0.0 0.0.0.0 131.108.0.6 115 ! access-list 101 permit ip any any access-list 101 deny ospf any any dialer-list 1 protocol ip list 101 ! end
Now, we have this default route set to 131.108.0.6 with metric 115 which is bigger than OSPF metric 110. Therefore, if you check the routing table before the FR link is down, you will see that network 20.20.20.20 is reachable by s0.111 as OSPF has lowest metric 110 and not using default static route with metric 115.
R1#sh ip route
Gateway of last resort is 131.108.0.6 to network 0.0.0.0
20.0.0.0/32 is subnetted, 1 subnets
O 20.20.20.20 [110/1563] via 131.108.0.2, 00:00:51, Serial0.111
10.0.0.0/32 is subnetted, 1 subnets
C 10.10.10.10 is directly connected, Loopback0
131.108.0.0/30 is subnetted, 2 subnets
C 131.108.0.4 is directly connected, BRI0
C 131.108.0.0 is directly connected, Serial0.111
S* 0.0.0.0/0 [115/0] via 131.108.0.6
If we shut the R2′s s0.222 down, we are going to see similar routing table minus 20.20.20.20.
00:33:04: %OSPF-5-ADJCHG: Process 1, Nbr 20.20.20.20 on Serial0.111 from FULL to DOWN, Neighbor Down: Dead timer expired
R1#sh ip route
Gateway of last resort is 131.108.0.6 to network 0.0.0.0
10.0.0.0/32 is subnetted, 1 subnets
C 10.10.10.10 is directly connected, Loopback0
131.108.0.0/30 is subnetted, 2 subnets
C 131.108.0.4 is directly connected, BRI0
C 131.108.0.0 is directly connected, Serial0.111
S* 0.0.0.0/0 [115/0] via 131.108.0.6
Hey, where is the 20.20.20.20 route? Well, It won’t come up until you pass any ip packet. Remember that the access-list only allow ip to trigger dial backup.
R1#ping 20.20.20.20
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.20.20.20, timeout is 2 seconds:
00:35:04: BR0 DDR: Dialing cause ip (s=131.108.0.5, d=20.20.20.20)
00:35:04: BR0 DDR: Attempting to dial 98050041
00:35:04: %LINK-3-UPDOWN: Interface BRI0:1, changed state to up
00:35:04: BR0:1 DDR: dialer protocol up.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 36/36/36 ms
R1#
00:35:05: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state to up
00:35:10: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 98050041 R2
00:35:12: %OSPF-5-ADJCHG: Process 1, Nbr 20.20.20.20 on BRI0 from LOADING to FULL, Loading Done
R1#sh ip route
Gateway of last resort is 131.108.0.6 to network 0.0.0.0
20.0.0.0/32 is subnetted, 1 subnets
O 20.20.20.20 [110/1563] via 131.108.0.6, 00:00:21, BRI0
10.0.0.0/32 is subnetted, 1 subnets
C 10.10.10.10 is directly connected, Loopback0
131.108.0.0/16 is variably subnetted, 3 subnets, 2 masks
C 131.108.0.6/32 is directly connected, BRI0
C 131.108.0.4/30 is directly connected, BRI0
C 131.108.0.0/30 is directly connected, Serial0.111
S* 0.0.0.0/0 [115/0] via 131.108.0.6
All of these scenarios are inspired by “Cisco IOS Cookbook 2nd Ed.” by Kevin Dooley and Ian J. Brown.