2

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?.

Vasudev
  • 121
  • 4
  • Looks like the same problem as here: https://superuser.com/questions/1240443/directed-broadcasts-to-other-than-own-ip-subnet-are-received-until-socket-shutdo – Konstantin Shemyak Aug 13 '17 at 13:52

0 Answers0