Marcelo Toledo wrote:

In the main server we installed the patch. We have ~400 clients
connected to it, 3 of them we also installed the patch, here is the
result.

All these 3 clients couldn't see each other but they could see the
remaining 397 clients. The 397 couldn't see the 3 clients.

I think that's it, any idea?
Oh dear, I'm starting to get a notion what's happening: the broadcast that happens when an unknow client is addressed, is handled by the patch in multi_process_incoming_tun. The same thing should happen in multi_process_incoming_link as well, which is not the case. This may be related to your problem.

So I tried to fix that. But here comes the catch: OpenVPN only keeps track of MAC addresses on remote clients, not of the ones behind the TAP interface. Now suppose some machine behind the TAP interface of the server sends an ICMP echo request to a machine behind one of the clients, the following happens: * The ICMP echo request will be unicast to the right client once the MAC address is in de MAC table of the server.
* The ICMP echo reply will be unicast back to the server.
* The server looks up the destination MAC address of the destination of the ICMP echo reply, but this fails because the mac address is behind the TAP interface. * Because the server can't find the MAC address the ICMP echo reply is broadcast to all clients. Ouch! Marcelo, this is no option for you as you have 400 clients!!

The problem is caused by the fact that the MAC table only keeps track of MAC's behind clients, no MAC's behind the TAP interface are registered. This can easily be fixed by registering them as well. I'll get back on that as well.

And once I have this working "kinda prototypically" I guess I need James help to finish it.

Rolf

Reply via email to