Skip to content

Day 4: Redundancy and Failover Testing

# On each hub router, verify BGP sessions:

ssh admin@mum-hub-01
show bgp ipv4 unicast summary | include 12076
## Expected output (both neighbors in state "established" or showing prefix count):

## 169.254.200.1    4    12076    up   PRIMARY    (LOCAL_PREF 200)

## 169.254.200.5    4    12076    up   SECONDARY  (LOCAL_PREF 100)


## Count O365 prefixes received

show bgp ipv4 unicast neighbors 169.254.200.1 received-routes | count
## Expected: 500-800 prefixes


## Verify O365 routes use ExpressRoute

show ip route 52.96.0.0
## Expected: Via 169.254.200.1 (ExpressRoute peer), not internet


## FAILOVER TEST - simulate primary failure:

configure terminal
interface TenGigabitEthernet0/0/2.4001
 shutdown

## Verify failover (should happen within 30s BGP hold-timer)

show bgp ipv4 unicast summary | include 12076
## Expected: 169.254.200.1 = Idle, 169.254.200.5 = Active (traffic moves to secondary)


## Restore primary

interface TenGigabitEthernet0/0/2.4001
 no shutdown

## Verify primary preempts (LOCAL_PREF 200 > 100 = primary wins)

show bgp ipv4 unicast 52.96.0.0 | include Local
## Expected: local pref 200 (primary restored)

Day 5: ExpressRoute Validation

#!/bin/bash

## expressroute_validation.sh


echo "=== EXPRESSROUTE VALIDATION ==="
for SITE in "mum-hub-01:169.254.200.1:169.254.200.5" \
            "lon-hub-01:169.254.201.1:169.254.201.5" \
            "nj-hub-01:169.254.202.1:169.254.202.5"; do
  ROUTER=$(echo $SITE | cut -d: -f1)
  PEER1=$(echo $SITE | cut -d: -f2)
  PEER2=$(echo $SITE | cut -d: -f3)

  echo ""
  echo "--- Site: $ROUTER ---"
  COUNT=$(ssh admin@$ROUTER "show bgp ipv4 unicast neighbors $PEER1 received-routes 2>/dev/null | grep '^Total'" | awk '{print $3}')
  echo "Prefixes from Microsoft: $COUNT (expected 500-800)"

  LATENCY=$(ssh admin@$ROUTER "ping outlook.office365.com repeat 5 | tail -1" | awk -F'/' '{print int($5)}')
  [[ $LATENCY -lt 20 ]] && echo "✅ O365 Latency: ${LATENCY}ms" || echo "⚠️  O365 Latency: ${LATENCY}ms (above 20ms threshold)"
done

echo ""
echo "=== VALIDATION COMPLETE ==="

Week 3: Virtual Wan Deployment