I have an ISP who gave me this basic config and it does not make sense to me. What I am looking for is someone to tell me I am not crazy.
Overview: An MPLS network to connect multiple sites together and provide one site with internet. All other sites will have their internet traffic sent over the MPLS network to the site with inet access and out to the web. They have setup everything up so that BGP is the only protocol to be used. i.e. the site with internet peers via BGP and all other sites peer with the ISP's MPLS cloud via BGP also.
Site A <--> MPLS Cloud <--> Site B <--> Internet
BGP AS numbers:
Site A - 65001 <--> MPLS Cloud - 65002 <--> Site B - 65001 <--> Internet - 65002
What the ISP has done though is only given two AS numbers. So my site A is its own BGP setup with AS 65001, the ISP uses its own public AS number (lets call it 65002), and Site B was also given AS 65001.
Call me crazy but routes going from AS 65001 to 65002 to 65001 breaks the fundamental rule of loop detection in BGP in seeing its own AS number in the AS path.
My ISP swears up and down that it will work, however it has not. As they will not change the config on their side, I have to live with this. My solution so far is to create an iBGP session between Site A and Site B to get my routes working.
What I suggested, and they promply told me "no", was to have a separate AS number for each site. i.e. 65001 for site A, 65002 for site B, etc.
Which makes things even more crazy, is that the MPLS cloud and the Internet side of things also share the same AS number, making any routes coming in from the internet not reach site A because the MPLS cloud sees its own AS number in the path and doesnt pass things along.
I would like it if someone could tell me I am thinking of this correctly or if I am missing something.