Skip to content

metro-pe — Metro / roof PE

A metro-hub or rooftop provider-edge router. Worked example: cr-fenwick-1.

Model Metro-hub CCR2004, or rooftop RB5009
NetBox role metro-pe (iBGP-client and RR list derived from role)
Ansible playbook metro-pe.yml (adds transport + vpls spoke)

Function

  • OSPF / LDP transport member.
  • iBGP client of both colo RRs (derived — two loopback-sourced sessions, ip + l2vpn).
  • eBGP hand-off + guest VPLS spoke per venue.

Interfaces (cr-fenwick-1)

Port Role Address / peer
loopback router-id 10.255.255.21/32 (metro band .20–.49)
sfp-sfpplus1 core-link (10G fibre) 10.254.20.1/31 → colo CCR, OSPF cost 10
ether7 core-link (60 GHz) 10.254.20.3/31 → w60-fenwick-holmes, ospf_cost=500, bfd_enabled=true (set manually — the port is Ethernet)
radio-mgmt-hol radio-mgmt (virtual, parent ether7) 10.254.250.1/29, untagged VLAN 99, dish-mgmt gateway, advertised /29
sfp-sfpplus4 venue-handoff 10.254.20.5/31 → rtr-cel-1 (venue eBGP + guest VLAN 20 into VPLS spoke)

BGP

  • as=65500 router-id=<loopback>; iBGP rr-client to both RR loopbacks. The connections set nexthop-choice=force-self, so eBGP-learned prefixes (the venue /16, edge prefixes) are re-advertised with this PE's own loopback as next-hop (OSPF-resolvable) and install active on the RRs. These iBGP sessions are loopback-to-loopback (multihop) and carry no BFD — liveness is link BFD + OSPF + BGP hold timers (see iBGP & route reflectors).
  • Venue eBGP: default-originate=always, filter from-venue-cel (accepts the exact /16, tags 65500:100, backup path local-pref 50). BFD is per-uplink: the fibre primary handoff runs BFD on; the 60 GHz dish backup runs BFD off with tightened BGP timers (the dish port stays up through RF fades, so BFD would false-flap).

VPLS spoke

br-guest-cel + vpls-guest-cel (site-id = venue_id, RT 65500:2000+venue_id). A dual-homed venue gets a second venue-handoff on the backup PE with backup_path=true.