Application receiving boradcast from different subnet

I’ve 2 Linux boxes with following description

Box A:
Kernel: Linux 2.6
IP: 172.19.1.99/24

Box B:
Kernel: Linux 3.14
IP: 192.168.200.100/24

Connected with Layer 2 switch

Both boxes run a UDP broadcast service and a UDP Receiver service. Whatever sent by broadcast is received by receiving service. These service together form custom discover protocol used by a Web App running on these boxes.

Problem:

When Box A is moved to 192.168.200.0/24 subnet and then later moved back to 172.19.1.0/24 subnet the receiver service on Box B will still receive broadcast from the Box A but technically it should stop receiving the broadcast from A. Now same service running on Box A does not receive the broadcast
from Box B at this point.

Just to confirm I attached strace to the receiving service on Box B and I can see the recvfrom system call is indeed receiving broadcast sent by Box A
to address 192.168.200.255.

Now if I kill the receiving service on Box B and restart it, then it will stop receiving broadcasts sent from Box A.

In short the problem is seen only when a box running in same subnet is migrated to different subnet and is only seen on Box B.

Any idea why this might be happening?.

UPDATE: Just to add more information Box B also uses iptables with conntrack modules can this some how influence this behavior?.

Answer

Attribution
Source : Link , Question Author : Vasudev , Answer Author : Community

Leave a Comment