我帮助一位朋友管理几栋有公寓出租的大楼的网络。
节日期间,所有公寓都已订满,这意味着我们有 40-60 位客人。有 18 个智能电视盒,可观看 Netflix、Youtube 等。
我们目前有 4 个互联网提供商连接,它们的稳定性和速度都一般,因为房子在山里,没有光纤链路,我们必须使用 1 个无线电链路(还不错)和 3 个 LTE 连接(假期时情况相当糟糕,因为附近有很多游客和酒店,LTE 基础设施有时无法正常处理所有设备)。
我正在尝试负载平衡(多个 WAN,带有数据包标记),但是当我们在假期期间遇到 LTE 稳定性问题时,一切都无法正常工作,因此我放弃了分割流量并将所有切换到最佳网关,这样我就实现了最佳稳定性(但速度很慢)。
现在我想将 Netflix 和 Youtube 的默认路由设置为速度较慢/可靠性较低的网关,并将最佳连接留给其他互联网连接。
我正在使用相对低成本的 Mikrotik 路由器(RB760),我想避免复杂的配置,因为这会占用大量的 CPU 时间,这就是为什么我想使用简单的路由来完成这项任务。
我的问题是:
Youtube 和 netflix 是否提供任何 IP 地址列表,可用于通过选定的网关创建到它们的默认路由?
到目前为止,我发现了有关 Netflix 的以下文章:关联Youtube 上的这篇文章:关联但我不确定这些地址是否适合我想要实现的流量控制。
我还想听听大家对这个想法的总体看法。
答案1
我已经这样做了,步骤如下:
- 将您的 Mikrotik 路由器设置为客户端的 DNS 服务器
- 每 10 秒左右运行以下脚本,在 DNS 表中查找所有 netflix 条目,并将它们放入列表(地址列表)中
- 设置 mangle 规则来为所有发往该列表(即 Netflix)的数据包标记特定的路由标记。
- 为所有如上标记的包裹添加一条到您的特殊旅游门户的路线。
- 喝杯咖啡
脚本
:global ajouteIP do={
:if ([:len [/ip firewall address-list find address="$nouvelleIP" and list="netflix"]] = 0) do={
/ip firewall address-list add list="netflix" address=$nouvelleIP timeout=02:00:00
}
}
:local myServers { "nflx";"nflximg";"unodns";"uno";"netfl"}
/ip dns cache all {
:foreach i in=$myServers do={
:foreach j in=[find where (name~$i)] do={
:local myName [get $j name]
:local myType [get $j type]
:local myData [get $j data]
:if ($myType = "A") do={
$ajouteIP nouvelleIP=$myData
}
:if ($myType = "CNAME") do={
:local ipResolue [:resolve "$myData"];
$ajouteIP nouvelleIP=$ipResolue
}
}
}
}
粉碎规则
/ip firewall mangle
add action=mark-routing chain=prerouting comment="Sortie Netflix" dst-address-list=netflix new-routing-mark=via-sortie-netflix passthrough=yes protocol=tcp src-address=[your clients IP addresses]
路由规则
/ip route
add distance=1 gateway=[Tourist gateway IP] routing-mark=via-sortie-netflix