🧪 Lab 01 · Active/Standby & Active/Active Dual-ISP eBGP¶
✅ Validated on Arista cEOS 4.32.0F. All outputs captured live from fabric in OrbStack.
Time: ~40 minutes · Nodes: 4 (2 WAN Edge Routers, 2 ISP Routers)
Quick Start — Step-by-Step Execution Guide (Location: labs/wan-edge-lab/)
Step 1 · Deploy the Lab Fabric (if not already running)
cd labs/wan-edge-lab
sudo containerlab deploy -t topology.clab.yml --max-workers 1
Step 2 · Launch the Fully Guided Interactive Walkthrough
./run.sh --guided
Alternative Execution Options (Automated Push or Manual CLI)
- Fast Automated Script Push:
./run.sh 01 # apply + verify step 01 automatically ./run.sh --all # run all steps in order - Manual Line-by-Line CLI Execution:
Interactive CLI shell on any container node:
docker exec -it clab-wan-edge-lab-wan-edge1 Cli
🧠 Technology Deep Dive: Dual-ISP Multihoming Mechanics¶
In enterprise WAN edge architectures, connecting to a single ISP creates a single point of failure (SPOF). Dual-ISP eBGP Multihoming establishes separate eBGP sessions to two independent Autonomous Systems:
+-------------------+
| PRIMARY ISP |
| (ASN 65100) |
+---------+---------+
| eBGP
| 198.51.100.0/30
+---------+---------+
| wan-edge1 |
| (ASN 65000) |
+---------+---------+
| iBGP 10.0.0.0/30
+---------+---------+
| wan-edge2 |
| (ASN 65000) |
+---------+---------+
| eBGP
| 203.0.113.0/30
+---------+---------+
| BACKUP ISP |
| (ASN 65200) |
+-------------------+
Step 1 · Configure eBGP Sessions to Dual ISPs¶
Configure eBGP sessions on wan-edge1 (Primary ISP) and wan-edge2 (Backup ISP).
configure
hostname wan-edge1
!
service routing protocols model multi-agent
!
interface Loopback0
ip address 10.255.0.1/32
!
interface Ethernet1
no switchport
ip address 198.51.100.1/30
!
interface Ethernet2
no switchport
ip address 10.0.0.1/30
!
router bgp 65000
router-id 10.255.0.1
neighbor 10.0.0.2 remote-as 65000
neighbor 198.51.100.2 remote-as 65100
neighbor 198.51.100.2 description PRIMARY-ISP-A
network 10.255.0.1/32
configure
hostname wan-edge2
!
service routing protocols model multi-agent
!
interface Loopback0
ip address 10.255.0.2/32
!
interface Ethernet1
no switchport
ip address 10.0.0.2/30
!
interface Ethernet2
no switchport
ip address 203.0.113.1/30
!
router bgp 65000
router-id 10.255.0.2
neighbor 10.0.0.1 remote-as 65000
neighbor 203.0.113.2 remote-as 65200
neighbor 203.0.113.2 description BACKUP-ISP-B
network 10.255.0.2/32
configure
hostname isp-primary
!
service routing protocols model multi-agent
!
interface Loopback0
ip address 1.1.1.1/32
!
interface Ethernet1
no switchport
ip address 198.51.100.2/30
!
interface Ethernet2
no switchport
ip address 192.0.2.1/30
!
router bgp 65100
router-id 1.1.1.1
neighbor 198.51.100.1 remote-as 65000
neighbor 192.0.2.2 remote-as 65200
network 1.1.1.1/32
configure
hostname isp-backup
!
service routing protocols model multi-agent
!
interface Loopback0
ip address 2.2.2.2/32
!
interface Ethernet1
no switchport
ip address 203.0.113.2/30
!
interface Ethernet2
no switchport
ip address 192.0.2.2/30
!
router bgp 65200
router-id 2.2.2.2
neighbor 203.0.113.1 remote-as 65000
neighbor 192.0.2.1 remote-as 65100
network 2.2.2.2/32
Step 2 · Production Verification¶
Verify eBGP neighbor state on wan-edge1:
docker exec -i clab-wan-edge-lab-wan-edge1 Cli -p 15 <<'EOF'
enable
show bgp summary
EOF
BGP summary information for VRF default
Router identifier 10.255.0.1, local AS number 65000
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd
10.0.0.2 4 65000 15 15 0 0 00:02:10 Estab 1
198.51.100.2 4 65100 15 15 0 0 00:02:10 Estab 1
✅ DONE when show bgp summary outputs 198.51.100.2 (Primary ISP) in Estab state.
Clean up¶
sudo containerlab destroy -t topology.clab.yml