我将我的家庭网络分割成 2 个独立的子网 LAN/IoT,这样物联网设备就无法在受到攻击时攻击我的 PC 和智能手机。
个人设备获得 10.1.1.1 - 10.1.1.254 范围内的分配 IP
IoT 设备在 10.2.2.1 - 10.2.2.254 范围内获得分配的 IP
一些移动应用程序(例如“大金在线控制器”)通过扫描它们所在的子网来发现物联网设备,寻找在特定端口上响应特定消息的 IP。在此示例中,端口 80 上的特定 HTTP GET。
现在很明显,如果我的个人设备与它正在寻找的物联网设备不在同一个子网中,那么这种方法将不起作用。它只会从 10.1.1.1 扫描到 10.1.1.254,并且永远不会询问地址为(例如)10.2.2.50 的设备
当应用程序通过“LAN”子网在端口 80 上询问时,实现“代理”的最聪明的方法是什么,将数据包路由到“IoT”子网?
我的设置使用运行 pfSense 的 VMWare esxi 环境和充当托管交换机和接入点的 FreshTomato 家庭路由器,因此我有很多选择。如果需要,我可以设置一个专用的虚拟机,或者在 Tomato 路由器或 pfSense 中设置一些脚本。
这甚至是个好主意吗?我还能怎么解决这个问题?
这听起来像是 pfSense 在“端口转发”部分中已有的常规 DNAT 。唯一的区别是,在您的情况下,“接口”字段不应设置为“WAN”——它是 10.1.1.0/24 LAN 接口。
但是,如果应用程序需要端口 80 或 443(已被 pfSense Web UI 占用),您可能需要在该接口上添加第二个 IP 地址,并确保 DNAT 规则仅匹配该地址作为“目标” .
您可以添加一个真正的辅助地址(又称“IP 别名”),也可以使用代理 ARP——我认为两者都可以,并且 pfSense 在Virtual IP Addresses下有两个选项。
请注意,这仅适用于建立单播连接的应用程序——它不会帮助转发多播或广播发现数据包。