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