After contacting my ISP, I found that the multi-homed flat setup is their default setup on the modem they provided, but that I am allowed to bypass the modem completely with my router using point-point link, so I am following that route now.
However I would like to share what I found during my experiments: most of the issues I was experiencing came from interaction between NAT and the bridge I created.
- For port forwarded services on X that where not reachable from Y devices, the issue is that DNAT happens too early (i.e., before reaching Y gateway, which has no route to the real destination). In order to make this to work I should leave the packet untouched when the packet is going to Y gateway and then NAT it only when it comes back from Y gateway. However I was not able to convince the router to apply this configuration;
- For LEGACY devices not being able to reach Y devices, I am still not sure about what was the real issue. However I was able to bypass the issue by applying a 1:1 NAT having Y network as both destination and target (i.e., nating the network to itself). I am unsure why this worked, but the result was effective. BTW, if you have an explanation why this worked, I would be happy to learn. :-)
However I would like to share what I found during my experiments: most of the issues I was experiencing came from interaction between NAT and the bridge I created.
- For port forwarded services on X that where not reachable from Y devices, the issue is that DNAT happens too early (i.e., before reaching Y gateway, which has no route to the real destination). In order to make this to work I should leave the packet untouched when the packet is going to Y gateway and then NAT it only when it comes back from Y gateway. However I was not able to convince the router to apply this configuration;
- For LEGACY devices not being able to reach Y devices, I am still not sure about what was the real issue. However I was able to bypass the issue by applying a 1:1 NAT having Y network as both destination and target (i.e., nating the network to itself). I am unsure why this worked, but the result was effective. BTW, if you have an explanation why this worked, I would be happy to learn. :-)