I have one router (network gateway) with two public interfaces.
WAN1 has /24 range of public addresses of ISP 1
WAN2 has one /24 public address of adsl ISP2
One LAN interface connects (with routing tables) to all my LAN networks.
To test port forwarding for incoming traffic via ISP1 network I want to route my LAN residing PC out via ISP2
I have policy routing where via addrs-list local clients get either a routing mark to route to ISP1 connected interface or they get a routing mark to route to ISP2 connected interface. Also a default route set to use ISP2.
I can now simply switch my PC to use either ISP1 or ISP2. Just give him an other address listing and after some time (secs) the new routing mark arranged this PC to go to the internet via chosen ISP. Works like a charm.
My problem is now, if I want to traceroute a public IP of ISP1 that resides on the WAN1 interface of my network gateway the traceroute shows that traffic hits that IP immediately. After some LAN routers it shows immediately the public IP of the network gateway! Not even the LAN IP of that network gateway!
Any other traceroute to an external IP on the internet shows the LAN IP of the network gateway and any next router down the road…
In my mangle I even created a rule that traffic from my lan with destination the public IP of the network gateway is forced to go out to the interface that is connected to ISP2. This way my expectation is that the ping packet enters the internet via ISP2 and than search and finds the route to an ISP1 connected users. (me). This should show a loop over the internet back to my network gateway.
But since the public IP is on the router itself that also have to send the ping out to WAN2 it looks like the router is so intelligent it replies to the ping since it knows the WAN1 owns that IP. Even if I tell router to send the package out WAN2 first. This just doesn’t happen now…
Any suggestions?