Hello.
I'm struggling with the following problem. I'd appreciate any suggestions/pointers to the right solution.
I have an "iot" wifi camera (Tapo, Tp-Link). With the camera comes a mobile app (quite decent one, 3rd party apps can't match it even remotely, unfortunately).
In my network all iot devices live in a separate VLAN (192.168.40.0/24
). So, the camera has a 192.168.40.x
address while my mobile device that I have the app installed on lives in the main lan has a 192.168.99.x
address.
Now, the app uses limited broadcast (a UDP packet sent to 255.255.255.255
) for camera discovery. Needless to say that the app and the camera being in two separate VLANs is in the way of app seeing/discovering the camera.
With the help of Wireshark, I captured the app <-> camera initial handshake. It's not very complicated. Technically, I could try writing a python script that would act as a proxy - listen to the broadcasts in the app ('source') network and relay them to the camera ('destination') network. And vice versa - listen to the 'replies' in the camera network and send them back to the app network. My firewall rules allow that.
But I'm lazy and plus, don't particularly like the idea of proxying: overcomplicated, quite brittle plus all the housekeeping around hosting/keeping it running. It feels like there should be an easier solution by which the packets would simply get forwarded (vs relayed/proxied) from the app network to the camera network. That way the 'reverse' forwarding would not even be needed - the camera could simply directly reply to the (app) address I had gotten the broadcast from - my firewall rules allow that.
What would be the correct way to approach/implement that in openwrt?