Using Dial as Backup Solution

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>