I have an ASN and IPv4 block, let's say AS 65001 and 10.0.0.0/24.
The ISP, AS 65000, has two data centers, locate in Asia and North America.
I want to break the /24 into two /25, to use it in Asia(10.0.0.1/25) and North America(10.0.0.129/25).
ISP won't accept any annoucement smaller then /24, so I advertised /24 on both sites, and created a GRE tunnel between two sites, to establishe a iBGP peering session.
65001(Asia) 65001(North America)
\ /
+-- 65000 =---gre---= 65000 --+
(Asia) (North America)
With in AS65001, two /25 subnets are able to reach each other. However, if someone from North America try to access Asia part (10.0.0.1), the traffic won't be able to come back to North America. The traffic from Asia won't be able to reach North America too.
I can see traffic coming from North America destinated Asia, but Asia is trying to respond it using its default gateway, which is the Asia router of ISP, thus it won't work.
I can make Asia reachable from North America by adding a routing policy:
ip rule add from 10.0.0.0/24 lookup gre_peer_as_gw
ip route add default via 10.0.0.129 dev gre0 table gre_peer_as_gw
But that's obveriosuly not what I want. User in Asia area won't be able to reach anything with that being set.
How could this be done?