Saturday 16 April 2011

Frame Relay End-To-End Keepalive (FREEK)

Another Frame-Relay Topic...

LMI is pretty good but may not always something you can use.  Say you have back to back routers, R4 and R7 both connected to each other at S0/0 and you don't want to set one of them up to be a Frame Relay switch because sooner or later we'll be hooking them up to a WAN provider that has a Frame Switch.

It would still be very much a good idea to be able to verify that we have end to end service continuity.  Why would we care? It's handy to know if the peer has gone down since we might be using enhanced object tracking.

R4 is the Internet router for R7

R4
hostname R4
interface Serial0/0
 description R7 S0/0
 no ip address
 encapsulation frame-relay
 no keepalive
 clock rate 2000000
 no frame-relay inverse-arp
!
interface Serial0/0.16 point-to-point
 ip address 1.1.1.4 255.255.255.0
 frame-relay interface-dlci 16
!
int loopback 1
 ip address 9.9.9.9 255.255.255.255

R7
hostname R7
interface Serial0/0
 description R4 S0/0
 no ip address
 encapsulation frame-relay
 no keepalive
 no frame-relay inverse-arp
!
interface Serial0/0.16 point-to-point
 ip address 1.1.1.7 255.255.255.0
 frame-relay interface-dlci 16
!
track 1 interface s0/0.16 line-protocol
ip route 0.0.0.0 0.0.0.0 1.1.1.4 track 1
Lets validate that service is operational:

R7#sh frame pvc

PVC Statistics for interface Serial0/0 (Frame Relay DTE)

              Active     Inactive      Deleted       Static
  Local          1            0            0            0
  Switched       0            0            0            0
  Unused         0            0            0            0

DLCI = 16, DLCI USAGE = LOCAL, PVC STATUS = STATIC, INTERFACE = Serial0/0.16

  input pkts 137           output pkts 192          in bytes 13936
  out bytes 18989          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 39        out bcast bytes 12714
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
  pvc create time 00:38:57, last time pvc status changed 00:06:55
R7#sh track
Track 1
  Interface Serial0/0.16 line-protocol
  Line protocol is Up
    5 changes, last change 00:06:59
  Tracked by:
    STATIC-IP-ROUTING 0
R7#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 1.1.1.4 to network 0.0.0.0

     1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, Serial0/0.16
S*   0.0.0.0/0 [1/0] via 1.1.1.4
R7#ping 9.9.9.9

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 9.9.9.9, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/16 ms


So far so good.  Ideally R7 would be able to withdraw the default route if the PVC to R4 fails - we can quite easily simulate this by shutting down R4's S0/0.16 interface.

R4(config)#int s0/0.16
R4(config-subif)#shut

We wait around for a few minutes and R7 is none the wiser.

R7#sh frame pvc

PVC Statistics for interface Serial0/0 (Frame Relay DTE)

              Active     Inactive      Deleted       Static
  Local          1            0            0            0
  Switched       0            0            0            0
  Unused         0            0            0            0

DLCI = 16, DLCI USAGE = LOCAL, PVC STATUS = STATIC, INTERFACE = Serial0/0.16

  input pkts 147           output pkts 205          in bytes 15810
  out bytes 21391          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 44        out bcast bytes 14344
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
  pvc create time 00:43:31, last time pvc status changed 00:11:30
R7#ping 9.9.9.9

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 9.9.9.9, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

Since the physical interface stays up and we don't have LMI letting us know that there's a problem we cant determine that there is a problem with the PVC.  This is where Frame-Relay End-to-end Keepalive (FREEK) comes into play.  There are a number of parameters associated with it but the simple case will be demonstrated here:


R4/R7
map-class frame-relay FREEK
 frame-relay end-to-end keepalive mode bidirectional
interface Serial0/0.16 point-to-point
 frame-relay interface-dlci 16
  class FREEK

While R4 s0/0.16 is still shut down we can see that this appears to be working in that the link is down and the default route is no longer present.

On R7:
*Mar  1 00:49:41.687: %SYS-5-CONFIG_I: Configured from console by console
*Mar  1 00:49:59.715: %FR_EEK-5-FAILED: Interface Serial0/0.16 - DLCI 16
*Mar  1 00:49:59.727: %TRACKING-5-STATE: 1 interface Se0/0.16 line-protocol Up->Down
R7#sh frame pvc

PVC Statistics for interface Serial0/0 (Frame Relay DTE)

              Active     Inactive      Deleted       Static
  Local          0            1            0            0
  Switched       0            0            0            0
  Unused         0            0            0            0

DLCI = 16, DLCI USAGE = LOCAL, PVC STATUS = STATIC (EEK DOWN), INTERFACE = Serial0/0.16

  input pkts 147           output pkts 225          in bytes 15810
  out bytes 24073          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 49        out bcast bytes 15974
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
  pvc create time 00:48:21, last time pvc status changed 00:00:12
R7#sh frame end-to-end keepalive

End-to-end Keepalive Statistics for Interface Serial0/0 (Frame Relay DTE)

DLCI = 16, DLCI USAGE = LOCAL, VC STATUS = STATIC (EEK DOWN)

SEND SIDE STATISTICS

Send Sequence Number: 255,      Receive Sequence Number: 0
Configured Event Window: 3,     Configured Error Threshold: 2
Total Observed Events: 4,       Total Observed Errors: 4
Monitored Events: 3,            Monitored Errors: 3
Successive Successes: 0,        End-to-end VC Status: DOWN

RECEIVE SIDE STATISTICS

Send Sequence Number: 0,        Receive Sequence Number: 0
Configured Event Window: 3,     Configured Error Threshold: 2
Total Observed Events: 2,       Total Observed Errors: 2
Monitored Events: 2,            Monitored Errors: 2
Successive Successes: 0,        End-to-end VC Status: DOWN

Failures Since Started: 1,      Last Failure: 00:00:23
R7#sh track
Track 1
  Interface Serial0/0.16 line-protocol
  Line protocol is Down (sw down)
    6 changes, last change 00:00:26
  Tracked by:
    STATIC-IP-ROUTING 0
R7#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

So Lets repair the fault:

R4(config)#int s0/0.16
R4(config-subif)#no shut

On R7:
*Mar  1 00:52:49.131: %TRACKING-5-STATE: 1 interface Se0/0.16 line-protocol Down->Up
R7#sh frame pvc

PVC Statistics for interface Serial0/0 (Frame Relay DTE)

              Active     Inactive      Deleted       Static
  Local          1            0            0            0
  Switched       0            0            0            0
  Unused         0            0            0            0

DLCI = 16, DLCI USAGE = LOCAL, PVC STATUS = STATIC (EEK UP), INTERFACE = Serial0/0.16

  input pkts 157           output pkts 250          in bytes 16892
  out bytes 25205          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 52        out bcast bytes 16952
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
  pvc create time 00:51:26, last time pvc status changed 00:00:27
R7#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 1.1.1.4 to network 0.0.0.0

     1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, Serial0/0.16
S*   0.0.0.0/0 [1/0] via 1.1.1.4
R7#ping 9.9.9.9

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 9.9.9.9, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/16 ms

So that's the basics on FREEK.

No comments:

Post a Comment