3 POP BGP with Failover across Wireless network

NOTE that I have changed the ASN’s and IP addresses to protect identity etc.

I have 3 Internet POPs with 2 different upstreams.

All 3 sites are geographically separate and connected via a Fixed Wireless network that is running OSPF. I receive only Default Route from upstreams. I have my own /22 IP Address space.

Wireless network Client radios are all on PPPOE and are assigned IP address based on geographic area - e.g. customers in the area of POP1 get an ARIN IP in the 129.129.0.0/23 range. In the event of a POP failure I want traffic to redirect to another POP and the Client radio to continue to use it’s assigned IP Address without NAT being needed.
.
3-POP-BGP.JPG
I want failover to behave like this:
POP1 >> POP2 >> POP3
(R7 fails to R8 then to R9)

POP2 >> POP3 >> POP1
(R8 fails to R9 then to R7)

POP3 >> POP1 >> POP1
(R9 fails to R8 then to R7)

Excluding the OSPF Part : Will this work ? Is what I have below correct ?

On R7

/routing bgp instance
add as=9999 client-to-client-reflection=no name=POP1 router-id=100.100.1.2

/routing bgp aggregate
add disabled=yes include-igp=yes instance=POP1 prefix=129.129.0.0/23
add disabled=yes include-igp=yes instance=POP1 prefix=129.129.2.0/24
add disabled=yes include-igp=yes instance=POP1 prefix=129.129.3.0/24

/routing bgp peer
add instance=POP1 name=POP1_Upstream in-filter=AS1111-bgp-in out-filter=AS1111-bgp-out remote-address=100.100.1.1 remote-as=1111 ttl=default

/routing filter
add action=discard chain=AS1111-bgp-in prefix=10.0.0.0/8 prefix-length=8-32
add action=discard chain=AS1111-bgp-in prefix=169.254.0.0/16 prefix-length=16-32
add action=discard chain=AS1111-bgp-in prefix=192.168.0.0/16 prefix-length=16-32
add action=discard chain=AS1111-bgp-in prefix=172.16.0.0/12 prefix-length=12-32
add action=discard chain=AS1111-bgp-in prefix=224.0.0.0/4 prefix-length=4-32
add action=discard chain=AS1111-bgp-in prefix=240.0.0.0/4 prefix-length=4-32
add action=discard chain=AS1111-bgp-in prefix=127.0.0.0/8 prefix-length=8-32
add action=discard chain=AS1111-bgp-in prefix=129.129.0.0/22 prefix-length=22-32
add action=accept chain=AS1111-bgp-in

add action=accept chain=AS1111-bgp-out prefix=129.129.3.0/24 set-bgp-prepend=8
add action=accept chain=AS1111-bgp-out prefix=129.129.2.0/24 set-bgp-prepend=8
add action=accept chain=AS1111-bgp-out prefix=129.129.0.0/23
add action=discard chain=AS1111-bgp-out


On R8

/routing bgp instance
add as=9999 client-to-client-reflection=no name=POP2 router-id=100.150.1.2

/routing bgp aggregate
add disabled=yes include-igp=yes instance=POP2 prefix=129.129.0.0/23
add disabled=yes include-igp=yes instance=POP2 prefix=129.129.2.0/24
add disabled=yes include-igp=yes instance=POP2 prefix=129.129.3.0/24

/routing bgp peer
add instance=POP2 name=POP2_Upstream in-filter=AS2222-bgp-in out-filter=AS2222-bgp-out remote-address=100.150.1.1 remote-as=2222 ttl=default

/routing filter
add action=discard chain=AS2222-bgp-in prefix=10.0.0.0/8 prefix-length=8-32
add action=discard chain=AS2222-bgp-in prefix=169.254.0.0/16 prefix-length=16-32
add action=discard chain=AS2222-bgp-in prefix=192.168.0.0/16 prefix-length=16-32
add action=discard chain=AS2222-bgp-in prefix=172.16.0.0/12 prefix-length=12-32
add action=discard chain=AS2222-bgp-in prefix=224.0.0.0/4 prefix-length=4-32
add action=discard chain=AS2222-bgp-in prefix=240.0.0.0/4 prefix-length=4-32
add action=discard chain=AS2222-bgp-in prefix=127.0.0.0/8 prefix-length=8-32
add action=discard chain=AS2222-bgp-in prefix=129.129.0.0/22 prefix-length=22-32
add action=accept chain=AS2222-bgp-in

add action=accept chain=AS2222-bgp-out prefix=129.129.3.0/24 set-bgp-prepend=4
add action=accept chain=AS2222-bgp-out prefix=129.129.2.0/24
add action=accept chain=AS2222-bgp-out prefix=129.129.0.0/23 set-bgp-prepend=4
add action=discard chain=AS2222-bgp-out


On R9

/routing bgp instance
add as=9999 client-to-client-reflection=no name=POP3 router-id=100.200.3.2

/routing bgp aggregate
add disabled=yes include-igp=yes instance=POP3 prefix=129.129.0.0/23
add disabled=yes include-igp=yes instance=POP3 prefix=129.129.2.0/24
add disabled=yes include-igp=yes instance=POP3 prefix=129.129.3.0/24

/routing bgp peer
add instance=POP3 name=POP3_Upstream in-filter=AS1111-bgp-in out-filter=AS1111-bgp-out remote-address=100.200.3.1 remote-as=1111 ttl=default

/routing filter
add action=discard chain=AS1111-bgp-in prefix=10.0.0.0/8 prefix-length=8-32
add action=discard chain=AS1111-bgp-in prefix=169.254.0.0/16 prefix-length=16-32
add action=discard chain=AS1111-bgp-in prefix=192.168.0.0/16 prefix-length=16-32
add action=discard chain=AS1111-bgp-in prefix=172.16.0.0/12 prefix-length=12-32
add action=discard chain=AS1111-bgp-in prefix=224.0.0.0/4 prefix-length=4-32
add action=discard chain=AS1111-bgp-in prefix=240.0.0.0/4 prefix-length=4-32
add action=discard chain=AS1111-bgp-in prefix=127.0.0.0/8 prefix-length=8-32
add action=discard chain=AS1111-bgp-in prefix=129.129.0.0/22 prefix-length=22-32
add action=accept chain=AS1111-bgp-in

add action=accept chain=AS1111-bgp-out prefix=129.129.3.0/24 set-bgp-prepend=4
add action=accept chain=AS1111-bgp-out prefix=129.129.2.0/24
add action=accept chain=AS1111-bgp-out prefix=129.129.0.0/23 set-bgp-prepend=6
add action=discard chain=AS1111-bgp-out

Comments would be most welcome.

TY, Z

Hello! I’ve configured that solution before ant it works, you’ll need to set up iBGP inside your network and all of your Edge routers with a route reflector in the middle with OSPF as IGP and it can works, also you can try your scripts at EVE-NG or GNS3, that works for me when I have some weird ideas in my mind to improve my network.