逆向分流,让你的HomePod“留在”国内
说个很现实的案例:由于大部分情况下根本不会去访问国内网站,也很少去用国内的APP,所以自己的网络方案其实就是所有的流量都放在国外的出口上。
例如现在的房子,里面的流量是这样的:
得益于联通的千兆宽带,基本上到哪里去访问都没有什么实质性的速度损失。
对于国内几个必不可少的不得不访问的站点,也就是在DNS里面做几个静态地址映射直接指向到国内的CDN主机上面。
事情就基本上可以完美地解决了。做到这一点基本上在电脑、手机上也不需要装什么特定的APP、也使得一些你装不了APP的设备也不会受到干扰和阻隔。
只不过……这里也会有其他的问题,例如在家中的家庭中枢HomePod就会出现问题。
例如你问一句“hi Siri 现在几点了”,在大多数情况下Siri都不会报出正确的本地时间。
这件事就比较尴尬了,屋子里面有很多设备是通过HomePod作为家庭中枢来进行控制的,例如定时的灯光开关以及定时的新风换气功能。
如果家庭中枢的时间不准确,甚至差了几个时区所有的设置也就没意义了,总不能不断地换算时区和本地时间来做调整吧?
发生HomePod时区错乱的问题就在于通过建立了一个大的网络系统,你的HomePod的出口并不是在PPPOE的直接通道上,而是在你的线路出口上。这时候苹果的服务器是根据你的线路出口IP地址为你匹配了一台距离最近的服务器进行各种数据交换的。也就认为你的HomePod位于旧金山周围。当然了,你问时间的时候Siri也就自然而然的回答了旧金山的当地时间也就是美西时间。
解决这个问题,用的方法也很简单以router os为例子:首先我们要在家里的网络地址池中找到这台HomePod的信息。
找到之后将代表HomePod的条目打开这时候你会看到左边的窗口形态
有你的设备MAC地址,也有当前分配的IP地址。在窗口右侧的按钮区域有一个Make Static按钮,点下去之后,路由器的DHCP功能就可以把设备的MAC地址和已经分配的IP地址进行绑定,就变成了右边窗口的形态。这时候你在router os的网络上就可以依据IP地址来确定某个IP是某个设备了。
这时候只是“你知道某个IP是啥”,你自己知道IP的具体设备并没有太大实际意义,还得需要让router os系统系统也知道要对这个IP地址做什么操作。这里面就用到了路由器的数据包打标签的功能。
进入router os的ip-防火墙功能,给IP地址打标签
打标签的过程也很简单,首先HomePod是依靠DNS来寻找合适的CDN主机的,所以对DNS的端口打一个标签映射就可以了。
在设置“路由前prerouting”处理,原地址设置为Home Pod的ip,这个IP地址已经被DHCP静态设置了,在日后的使用中不会有任何变化。
端口部分选择53,也就是DNS的查询端口。
在动作(Action)标签中为这条规则设置动作:
也就是增加一个路由标记“homepod”,实际上这里对标签内容你随便写什么都可以,只要不和其他需要标记的数据重复,在你自己的网络上有唯一性就行。
然后在IP路由设定中增加一个静态路由:
在这个路由项目设置中,把路由标记设置为“homepod”,将路由的网关设置为直接获取PPPOE的路由端口,这个端口在PPPOE拨号的时候自动配置了运营商下发的默认网络设置。
经过这样的设置之后,你的HomePod的所有DNS查询都是透明的,不受到路由器的其他设置影响。对于DNS查询出来的Ip地址也是距离你居住地最近的CDN主机IP。
这时候苹果的主机也可以确切的依据IP地址为你设置一个正确的时区。
读到这里,很多人会说旁路由什么的。其实在router os中,你只要做了合适的接口设置,完全没有必要再额外地增加一旁路由。
同时对于“必须得存在于本地网络上的子网核心设备”,这种方式你不仅仅可以让类似于HomePod的设备不脱离本地网络取得正确的网络配置,并适当的享受本地网络带宽,也不会让它在家里网络中断开其他智能家居设备的连接。这其实就是一个逆向流量分流的过程,在我们在家里实施智能家居的设置的时候用途还是蛮大的。大家也可以举一反三了吧?
hzKevin
校验提示文案
zzzbc
校验提示文案
roughM
校验提示文案
酸奶式沉淀
校验提示文案
我就看看x也许买
校验提示文案
zzzbc
校验提示文案
我就看看x也许买
校验提示文案
hzKevin
校验提示文案
酸奶式沉淀
校验提示文案
roughM
校验提示文案