How to avoid overlay networks for container communications?

Hi all,

I have 6 different programs communicating with each others and each one deployed in a docker container. Three of them are deployed on one host, and the other three on another host, and both hosts are located in my LAN. Containers currently communicate through a GRE tunnel connect to the docker0 bridge. I have to say that I am not really fond of this solution because the overhead added by the tunnel has an impact on my programs performances.

Now I need to make some tests with my hosts being on two different LANs, each one getting access to the Internet through a gateway server and communicating with each other through the Internet.

What solution should I use to make my containers communicate given that I want to speed up my connection?

Could macvlan (no packet encapsulation required, if I understood correctly) be appropriate given that I do not work with a lot of containers or a simple NAT could do the trick?

Thanks for your help :slight_smile: