查看原文
其他

U 案例|使用 Ubiquiti 全家桶对朋友家进行网络改造

ryoma1836 Ubiquiti优倍快 2024-01-01

上个月底看到 Ubiquiti 微信公众号又开始征文,这次征文要求需要使用到 UniFi OS。真巧,刚好我最近第一次用上 UniFi OS,因此就有了这篇《【让 IT 更简单】使用 UniFi 全家桶对朋友家进行网络改造》。


这次我就直接切入正题了,什么 Mesh 跟 AC+AP 对比,什么不同品牌 AC+AP 的对比,其他网友已经撰写过太多关于这部分的内容了,我本来也不是专业评测玩家,只是个普通的打工人,这边就不班门弄斧了。


本文就只谈 Ubiquiti 和 UniFi OS,希望读者们看到的是满满的干货内容,同时希望一些花了不少钱买了 Ubiquiti 家设备却苦于看不懂英文,只能当普通路由器使用的朋友能够跟着我的文章把各项功能用起来。


1. 改造需求
这次这位需要网络改造的朋友家里当前是一台 Asus GT-AC5300 作为主路由,然后主卧使用一台 Asus AC2600 作为 AP,主要痛点是:WiFi 覆盖面不够,有些区域是网络死角。

我到现场实际查看后,发现弱电箱在客厅靠墙的柜子内,而这台 Asus GT-AC5300 就放置在柜子里面,柜子门是封闭的,所以 WiFi 信号被阻隔,同时,看下面点位模拟图即可看出,仅有这两个位置有 WiFi 发射点,对于 180 平大平层,显然是不够的,中间的过道区域根本就是 WiFi 盲区

庆幸的是朋友家当年装修的时候,虽然没有专业人士建议装修要在墙内规划网线,但是朋友还是让装修公司铺设了他们能提供的最好的网线。我看了下,至少是 CAT6 的线,质量完全没问题,甚至在吊顶也预留了网线,为这次改造提供了极大的便利。




2. 改造设计
2.1 设备选型

UniFi Dream Router


原先是想按照之前的习惯继续选择 MikroTik 家的路由器,不过这两年由于芯片短缺、涨价等等问题,MikroTik 家的设备一不注意就全球断货,特别是年底这阵子,什么都买不到了。

但是朋友家网络改造可等不得,所以,我觉得不妨试下 Ubiquiti 家新一代的路由器,毕竟我之前只用过上一代的 USG(无 UniFi OS)而已。那么问题来了,我本来是想说给朋友直接一步到位上 UDM-SE 的,但是咨询了下朋友柜子的宽度和深度,宽度是满足了,可是深度不满足,更不用说机器后面还需要接一根电源线,所以只能放弃这个想法,UDM-Pro 和 UDM-SE 的尺寸规格一致,同样不能使用。


然后我就找到了 UDM 的后续型号 UDR,也就是 UniFi Dream Router。其实我之前一直没有注意到这台路由器,因为它长得跟之前 WiFi5 时代的 UDM 几乎一模一样。我本以为 UDM 后面出了 UDM-Pro,就是要放弃 UDM 这个机器的后续版本,专注机架式路由器了。没想到是我眼拙,UDM 是有 UDR 这个后续型号的,所以综合下来,最符合当前现状的自然就是这台 UDR 了。

UniFi 路由器对比:UniFi Router Comparison: USG vs UDM vs UXG(更新时间:2022/11)


同时,UniFi 官网提供了一个资源计算器,大家可以根据自己实际项目的规模以及需要使用的 UniFi App 进行资源模拟,比如你需要带动多少台 AP,多少个摄像头,多少个门禁,都会计算出 CPU/内存的使用率,而且有些设备是仅能同时安装 2 个 App 的,比如 UDR,只能同时运行 Network 和另 1 个 App。

UniFi 控制台资源计算器:UniFi OS Console Resource Calculator



USW Enterprise 8 PoE

在家庭使用环境里,Ubiquiti 家交换机一般选择 Lite 8 PoE/Lite 16 PoE 就足够了。不过今年年初,Ubiquiti 已经预告要发布 U6 Enterprise 这款 2.5G 口的 WiFi6E AP,现在也已经上市了。而且据我所知,经销商是有货的(因为我咨询过价格)。所以我就想说帮朋友提前布局,当后面需要升级 AP 的时候,不至于连交换机都要一起更换,而且由于 Enterprise 8 PoE 有 2 个 10G SFP+,也更利于后期扩展。


最后,这台交换机还拥有机架式交换机才有的触摸屏,意味着这台交换机也能在手机 App 上使用 AR 功能,B 格自然不用多说。第 5 章有视频演示。



U6 Pro/U6 Mesh/U6 IW

想了解 Ubiquiti 家 AP 不同型号的天线辐射方位和强度的朋友可以看下以下资料,官方给出了很详细的解释和配图。

UniFi AP 天线辐射模式介绍
中文:UniFi - 天线辐射模式介绍
英文:UniFi - Introduction to Antenna Radiation Patterns
UniFi AP 天线辐射方位图
中文:UniFi - UAP 天线辐射方位图
英文:UniFi Network - AP Antenna Radiation Patterns(英文版本型号全,中文版本还未更新 U6 系列 AP)


这次用了 Ubiquiti 家的 3 款 WiFi6 AP,当然不是说故意要搞 3 种不同类型的 AP,主要还是根据不同位置的不同需求选型。


  • U6 Pro:前面提到朋友家有吊顶的网线,刚好这条网线在客厅与餐厅交界处的吊顶内,所以在这个位置就安排一台 U6 Pro,现在国内还未允许使用 6GHz WiFi 频段,因此就先不安排 U6 Enterprise 了;

  • U6 Mesh:朋友主卧有 2 个网口,1 个是之前放 Asus AC2600 的床头柜位置,1 个在另一侧,这边刚好放置了一个架子,由于 WiFi6 的 AP 发热量都挺大,所以还是远离床头柜吧。而这台 U6 Mesh 的造型刚好放在架子上,也能很好的融入家居环境;

  • U6 IW:由于朋友家小孩目前还未 3 岁,如果使用 U6 Mesh,就比较担心小朋友对 AP 搞破坏,所以一台固定在墙上的面板 AP 就是最好的选择。

    当前开放使用 WiFi6E 的国家与地区列表:Countries Enabling Wi-Fi in 6 GHz (Wi-Fi 6E)



R86S

这里安排一台 R86S 目的也很明确,上面安装了 Proxmox VE 7.2,安装了 OpenWRT 虚拟机和一些 Docker 容器,下次有空再拿出来写。基本用途大家懂的都懂,我就不在本文多做说明。


2.2 拓扑规划



网络拓扑

Ubiquiti Visio 图标下载请见官网:Ubiquiti Icons and Images for Diagrams


  • 原先设计 U6-IW & U6-Mesh 接到 UDR,本来是想不浪费 UDR 上面 2 个 PoE 口,后面查了下资料,发现 Ubiquiti U6 系列 AP,仅有 U6-Lite 是 PoE 供电,其他都是 PoE+ 供电,所以这里会遇到一些小问题,后面第 6 章会提到,所以最佳实践应该接到 PoE+ 交换机上面

  • 此处以 MicroServer Gen8 图标展示 R86S,其中 iLO 口对应的是 R86S 的 eth0,我这边作为 Proxmox VE 的带内管理口,专门作为虚拟化 Web 管理使用。而业务口对应 R86S 的 eth1 口和 eth2 口,此处做了 Active-Backup 模式的 Linux Bond,目前实际接线暂时只接 1 条网线,后面若有需要可以再接 1 条保证业务冗余。


后期若升级,将按下图进行升级


  • U6 Pro/U6 Mesh/U6 IW 均接到 USW Enterprise 8 PoE 的 PoE+ 接口

  • 增加 1 台网管交换机,暂未确定具体型号,此处以 MikroTik 的 CRS 交换机图标展示,主要是有 2 个 10G SFP+ 能与 USW Enterprise 8 PoE 做 10G LACP,至于其他接口,可以是 1G 也可以是 2.5G,具体根据升级时再选型;

  • 增加 1 台 NAS,暂未确定具体型号,此处以 Synology DS1621+ 图标展示,同样是需要 2 个 SFP+ 能与 R86S 做 10G iSCSI,提供 Lun 空间给 R86S 的 Proxmox VE 虚拟化使用,2 口 1G 或 2.5G LACP 则给 NAS Mgmt/NFS/CIFS 使用。



网段规划

网段划分就没什么好说的,朋友家客户端不会太多,所以每个网段使用 24 位地址即可。

  • Default:正常上网网络,主要是提供给正常上网的家庭客户端,保留 IP 留给设备的带内管理 (Mgmt in Band),比如 Ubiquiti 设备的管理,R86S Proxmox VE 的 Web 管理

  • Proxy:特殊上网网络,给需要通过 OpenWRT 上网的家庭客户端,比如 Apple TV 等;

  • IoT:智能家居网络,给家里的智能家居使用,比如监控摄像头,扫地机器人,视频防盗门锁等,后期如果需要架设 Home Assistant,同样也会在 Proxmox VE 中部署在这个网络,以便与智能家居互访;

  • Guest:访客上网网络,方便客户拜访时候使用,简单方便,而且更安全;

  • WxxxGxxxd:回家上网网络,并不是所有服务都应该使用 Port Forwarding 这种方式进行访问,比如 SSH 等涉及安全级别较高的访问需求,建议使用这种网络进行访问。


2.3 平面设计


UniFi Design Center:UniFi Design Center


用过 Ubiquiti 家设备的朋友都知道,旧版 UniFi Network 里面有个平面图功能,可以让用户自己上传导入房屋平面图进行 UniFi WiFi 设计。现在,Ubiquiti 官方提供了这个设计的网站,不管你有没有 Ubiquiti 设备,只要注册登录 UniFi 账号,即可自己实现这个功能


最近这个 Design Center 还进行了一次升级:


  • 新增了可选择设备 UDR、U6-IW 等新产品,10 月还没有的;

  • 导出 PDF 文件时候,不仅有 Floor Plan(平面图)、2.4G & 5G WiFi Coverage(2.4G & 5G 信号强度图)、Camera Coverage(摄像头覆盖图),更提供了 Equipment List(装置清单)、Topology(拓扑图)、Installation Instruction(安装指南)以及 Port View(端口视图),简而言之就是可以直接导出一个很漂亮的安装实施方案了。


关于 UniFi Design Center 2.0 版本的 Release Nots 请看官方论坛:UniFi Design Center 2.0


当然,现在这个安装指南和端口视图还不够完善,因为在平面图上给设备之间添加网络接线时,并不能选择设备指定的端口,还有些像是楼中楼、别墅等不同楼层间的网络连线目前我也没找到方法,我觉得这部分 Ubiquiti 后期应该会针对这部分进行优化升级。


关于 UniFi Design Center 2.0 版本的介绍请看视频:UniFi Design Center 2.0



导出后 PDF 文件如下:

自动生成封面,中间马赛克区域是项目名称,以及项目地址,下面马赛克是制作人

配件清单列表

网络设备接线拓扑

设备摆放以及接线图

2.4G WiFi 覆盖图,绿色表示 WiFi 覆盖到的区域,黄色反之。


5G WiFi 覆盖图,可以明显看出 5G WiFi 更容易被墙体阻隔

监控摄像头视野覆盖图

安装说明

安装说明每一步旁边还提供 Completed 方框,比如实施安装时,可以打印 PDF 文档出来,实施完成到哪个步骤,就在哪个步骤打勾,虽然只是一个很小的功能,却处处展现 Ubiquiti 这家公司的细节和人性化

设备端口接线图


设备端口接线图就是我前面提到的,暂时无法手动设置指定端口连接指定设备,希望后期能实现


3. UniFi OS 介绍


关于 UniFi OS 版本的介绍请看视频:什么是 UniFi OS 控制台?
官网介绍说明:Introduction to UniFi


3.1. 主要功能

  • 中央统一控管所有使用者帐号资料及存取权限

  • 可 SSO 进入所有未来 Ubiquiti 家族的控制器,如监控/门禁/语音通话等

  • 远端登入新的 UniFi 云端控制入口网站

  • 未来将更容易安装各式 UniFi App 或控制器


3.2 目前已推出的 UniFi App/控制器

  • Network (预设基本安装)

  • Protect (监控控制器)

  • Talk(语音 VoIP 控制器)

  • Access(门禁控制器)

  • UID(工作空间)


这边简单说下 UniFi OS 吧,这是 Ubiquiti 在 2020 年推出的新平台。由于我开始使用 Ubiquiti 家的设备比较晚,我之前只了解过 UniFi Network 这个产品,以前觉得 Cloud Key Gen1 是一个很鸡肋的产品,毕竟 Windows/Linux/Docker 下都可以自行部署免费版本,没必要额外花钱购买设备,而且还需要占用一个 PoE 网口。另外,我当时也不知道 Ubiquiti 家还有监控/门禁等等产品,更不知道需要使用什么平台进行管理。我后面查询了一下,除了 UniFi Network/UniFi Protect 有网友制作 Docker 镜像,其他产品应该是没有的,而且 Protect 的镜像已经 3 年没有更新了。


我觉得 UniFi 提出这个 UniFi OS,首先是对品牌旗下所有的 App 做一个整合,不然对于普通用户而言,基本不知道 Ubiquiti 家还有其他产品可供选择,不利于自家产品的推广;再者,某种程度上也是为了销售硬件设备,需要路由器的,可以选择 UDM/UDR/UDM-Pro/UDM-SE,不需要路由器的可以选择 Cloud Key Gen2/Cloud Key Gen2 Plus


所以分以下两种情况给朋友们建议:


  • 如果只想使用 UniFi Network 这个 App,那么继续使用 Windows/Linux/Docker 版本的,完全没有问题,暂时不需要额外花钱购买硬件设备;

  • 如果想使用 Ubiquiti 家的多个/全部功能,或者未来想使用他们家的多个/全部功能,建议直接购买上述提到的产品,像我自己就给家里新增添了一个 Cloud Key Gen2 Plus,当然这个产品还是有些想吐槽的地方,留着以后有机会再发文章细说,说不定到那个时候槽点就解决了。


4. 项目实施

4.1. 初始化 UDR

插上电源,将电脑直连 UDR 的 LAN 口,在浏览器输入 UniFi 即可进入初始化界面。

单击 Setup UDR

Console Name 输入 UDR Hostname

Select a setup type 选择 Personal

登录 UniFi 账号

更新频率根据自己需要设置;

设置 WiFi SSID 的名字、密码,后面要详细设置,这里可以随便设置进行测试即可。

Send Diagnostics & Performance Information 不启用;

系统会自动进行一次 ISP 测速

确认各项信息,设置加上截图,总共耗时 4:31,确实是“让 IT 更简单”的速度,不过文章可不是到这就结束了。

这里就是 UniFi OS 的界面了。


UniFi OS 可以选择除了 Network 以外安装哪个 App,我这边安装了 Protect,上面有提示 The UDR can run up to two applications simultaneously,即 UDR 仅能同时使用 2 个 App,如果你有更多的 App 需求,请选择 UDM-Pro 或者 UDM-SE。



这个界面可以发现相比我下面使用 Docker 安装的 UniFi Network,缺少了 Legacy Interface 的选项,意味着现在的 UniFi OS 设备(最新版本)已经完全无法切换到旧版界面了。虽然新版本界面更简单更方便,但是很大的一个问题是 Ubiquiti 官网的一些文档仍然使用旧版界面撰写,同时很多网友的教程帖子也是基于旧版进行设置,无形之中对新入手的朋友造成很大困难,而且新版界面不像旧版界面可以切换为中文显示,即便提供了中文选项,也无法显示中文。


4.2 设置 Internet

由于之前初始化的时候,是在我家的 MikroTik 主路由下做二级路由上网,现在更换到朋友家接上光猫,需要重新将 Internet 设置为 PPPoE 拨号模式


  • DNS Server 勾选 Auto

  • UPnP 根据需求进行设置,有需要使用 BT/PT 下载的用户可以关注下这里,这边可以在下面设置完 Networks 后再回来调整;

  • Dynamic DNS 即 DDNS,由于 UniFi 自带可用的 DDNS 对国内用户极其不友好,所以后面我会单独用一个章节介绍使用 Dnspod 搭配自购域名做 DDNS 的办法。


  • IPv4 Connection 选择 PPPoE(如果你家光猫不是桥接模式,而是路由模式,请跳过此步骤)

  • Username、Password 输入 PPPoE User、Password


4.3 设置 Networks

Global Networks Settings

  • Multicast DNS 全部网络启用

  • IGMP Snooping 全部网络不启用


Global Switch Settings

  • 全部保持默认



Default Network
  • Gateway IP/Subnet 这边若想要该网段使用全部 IP 地址,勾选 Auto-Scale Network,若想手动设置 DHCP 地址池范围,取消勾选;

  • Host Address 输入 Gateway

  • Netmask 选择 Subnet Prefix,大部分家庭使用选择 24 即可,相当于 255.255.255.0。


Advanced 选择 Manual

  • DHCP Mode 选择 DHCP Server

  • DHCP Range 输入起始 IP 和结束 IP

  • DHCP Guarding 不勾选 Enable




IoT Network

设置 Proxy 和 IoT 网络时,只有一个地方设置与 Default 网络有区别,即多设置一个 VLAN ID,VLAN ID 我一般对应 IP 地址中间某一段或者某两段,比如我这边 IoT 网络时 172.16.203.0/24,所以我取第 3 段作为 VLAN ID,其他设置与 Default 网络一样。



Guest Network

设置 Guest Network 时,除了需要设置 VLAN ID,还需要为 Network Type 选择 Guest Network


4.4 设置 WiFi



Default WiFi
  • Name 输入 SSID Name

  • Password 输入 WiFi Password

  • Network 选择上个章节设置的 Default 网络

  • Broadcasting APs 选择全部 AP


Security

  • Security Protocol 选择 WPA2


WiFi Scheduler

若需要对某个 WiFi 设置启用停用时间,可以启用 WiFi Scheduler,我这边不需要此功能,仅做截图说明。



IoT WiFi
  • Name 输入 SSID Name

  • Password 输入 WiFi Password

  • Network 选择上个章节设置的 IoT 网络

  • Broadcasting APs 选择全部 AP


Advanced

WiFi Band 只勾选 2.4GHz,由于智能家居设备的网卡基本上只支持 2.4GHz,所以并不需要开启 5GHz。



Guest WiFi

到 Profiles 下设置 Bandwidth Profiles



  • Name 输入 Guest

  • Limit download bandwidth 我设置 30Mbps

  • Limit upload bandwidth 我设置 5Mbps


回到 WiFi 设置。

  • Name 输入 SSID Name

  • Network 选择上个章节设置的 Guest 网络

  • Broadcasting APs 选择全部 AP

Advanced

  • WiFi Band 只勾选 5GHz,由于访客来家中需要联网的主要是手机和笔记本电脑,基本上现在的移动设备都支持 5GHz,所以并不需要开启 2.4GHz;

  • WiFi Type 选择 Guest Hotspot

  • Bandwidth Profile 选择 Guest

  • Client Device Isolation 会被自动启用,不用手动设置。


Security

Security Protocol 选择 Open


到 Profiles 下设置 Guest Hotspot



  • Authentication Type 我选择最简单的 Password,还可以使用微信登录,但是据我了解这个功能是需要有公众号才能使用,对于家庭使用来说,太过繁琐,我就不在朋友家折腾了

  • Password 设置一个稍微简单的与其他 WiFi 不同的密码


Guest Landing Page 选择 ON

  • Background Image 选择 Use Unsplash gallery

  • Library Image 从下来菜单中选择一个喜欢的图片即可



  • Title 输入 Title Name,我这边保持默认

  • Terms of Service 勾选 Enable,内容如下,自带英文版本,我同时翻译了一份中文版本在下方


Terms of Use (English)By accessing the wireless network, you acknowledge that you're of legal age, you have read and understood and agree to be bound this agreement.You agree not to use the wireless network for any purpose that is unlawful and take full responsibility of your acts.The wireless network is provided "as is" without warranties of any kind, either expressed or implied.使用条款(简体中文)通过访问本无线网络,您需承认您已达到法定年龄,您已阅读理并同意接受本协议的约束。您同意不将无线网络用于任何非法目的,并对您的行为承担全部责任。无线网络按“其现状”提供,不会提供任何明示或暗示的保证。




  • Default Expiration 保持默认 8 Hours

  • Language(s) 选择 English、Chinese

  • Landing Page 选择 Redirect to the original URL

  • Redirection 勾选 HTTPS Redirection 和 Encrypted redirect URL


4.5 设置 Firewall

由于本次项目设置了 4 个网络,所以 Firewall 的设置就尤为关键,否则划分 VLAN 就失去了最重要的作用。

不过 Ubiquiti 家的 Firewall 设置确实跟一般传统的网络厂家设备不怎么一样,所以有些问题或者说算 Bug 需要一些特殊的方式处理,下面会提到。


需要我们人为设置的的 Firewall 设置都集中在 LAN 区域,其他区域的策略会根据你的其他网络设置而自动添加。



设置思路

我们在 Firewall 设置上面,主要是要对 IoT 和 Guest 网络进行限制,不允许属于这两个网络的客户端对内网其他网络进行访问,但是同时需要我们的其他网络能访问 IoT 和 Guest 网络客户端。当然,我这边后面还设置了 VXN 远程访问网络,所以我增加了一条 VXN 的策略,此处不展开细说,因为配置方式与 Default、Proxy 一样。

  • Default 网络可以访问 Proxy、IoT 和 Guest

  • Proxy 网络可以访问 Default、IoT 和 Guest

  • IoT 网络无法访问 Default、Proxy 和 Guest

  • Guest 网络无法访问 Default、Proxy 和 IoT


这样子设置就会变得非常复杂,所以在禁止不同网络互访这件事情上面,我们直接做一条 Block Inter-VLANs Routing 策略即可,中文意思即禁止 VLAN 间路由,然后在这条策略的上方设置放行策略即可。


但是这样设置之后,我们还是会发现另一个问题,就是 IoT 和 Guest 网络的客户端居然可以访问其他网络的 Gateway,即 Default、Proxy 网络的网关可以被这两个网络访问,国外网友也有提到这个问题,所以这边用曲线救国的方式对这个问题进行封堵。同时,对于 HTTP、HTTPS 和 SSH 到路由器本身的操作,也是不被 IoT 和 Guest 客户端所允许的,所以要单独做策略进行封堵。



设置 Profile

这边我们需要先设置一些 Profile。


RFC1918

这边关于 RFC1918 的介绍请看:专用网络


  • Profile Name 输入 RFC1918

  • Type 选择 IPv4 Address/Subnet

  • Address 输入 192.168.0.0/16、172.16.0.0/12 和 10.0.0.0/8


其他 Profile 我就不一一截图了,以免让朋友们看混淆了,下面我只提供对应的设置内容


Block IoT to Firewall interface

  • Profile Name 输入 Block IoT to Firewall interface

  • Type 选择 IPv4 Address/Subnet

  • Address 输入 IoT Gateway IP


Block Guest to Firewall interface

  • Profile Name 输入 Block Guest to Firewall interface

  • Type 选择 IPv4 Address/Subnet

  • Address 输入 Guest Gateway IP


Block IoT to Gateways

  • Profile Name 输入 Block IoT to Gateways

  • Type 选择 IPv4 Address/Subnet

  • Address 输入 Default、Proxy 和 Guest Gateway IP


Block Guest to Gateways

  • Profile Name 输入 Block Guest to Gateways

  • Type 选择 IPv4 Address/Subnet

  • Address 输入 Default、Proxy 和 IoT Gateway IP


HTTP, HTTPs, SSH

  • Profile Name 输入 HTTP、HTTPs、SSH

  • Type 选择 Port Group

  • Port 输入 80、443、22



设置 Firewall 策略

Block Inter-VLANs Routing(阻止 VLAN 间路由)

  • Type 选择 LAN In

  • Description 输入 Block Inter-VLANs Routing

  • Action 选择 Drop

Source

Source Type 选择 Port/IP Group

IPv4 Address Group 选择 RFC1918

Destination

Source Type 选择 Port/IP Group

IPv4 Address Group 选择 RFC1918


Allow established/related sessions(放行 established/related 会话)

  • Type 选择 LAN In

  • Description 输入 Allow established/related sessions

  • Action 选择 Accept


Advanced

  • States 勾选 Match State Established 和 Match State Related


Allow Default to all Local(放行 Default 网络到所有本地网络)

  • Type 选择 LAN In

  • Description 输入 Allow Default to all Local

  • Action 选择 Accept

Source

  • Source Type 选择 Network

  • Network 选择 Default

Destination

  • Source Type 选择 Port/IP Group

  • IPv4 Address Group 选择 RFC1918


同理设置其他允许访问 RFC1918 地址的网络(比如本文中的 Proxy 和 WxxxGxxxd 网络),此处不再赘述


下面设置上面提到的最后的关于 IoT 和 Guest 网络的问题进行设置。

Block IoT to Firewall interface(阻止 IoT 网络到 IoT Gateway 的 HTTP, HTTPs, SSH 端口)

  • Type 选择 LAN Local

  • Description 输入 Block IoT to Firewall interface

  • Action 选择 Drop

Source

  • Source Type 选择 Network

  • Network 选择 IoT

Destination

  • Source Type 选择 Port/IP Group

  • IPv4 Address Group 选择 Block IoT to Firewall Interface

  • Port Gourp 选择 HTTP, HTTPs, SSH


同理设置 Block Guest to Firewall interface

Block Guest to Firewall interface(阻止 Guest 网络到 Guest Gateway 的 HTTP, HTTPs, SSH 端口)

  • Type 选择 LAN Local

  • Description 输入 Block Guest to Firewall interface

  • Action 选择 Drop

Source

  • Source Type 选择 Network

  • Network 选择 Guest

Destination

  • Source Type 选择 Port/IP Group

  • IPv4 Address Group 选择 Block Guest to Firewall Interface

  • Port Group 选择 HTTP, HTTPs, SSH


Block IoT to Gateways(阻止 IoT 网络到 Default, Proxy, Guest 网络的 Gateway)

  • Type 选择 LAN Local

  • Description 输入 Block IoT to Gateways

  • Action 选择 Drop

Source

  • Source Type 选择 Network

  • Network 选择 IoT

Destination

  • Source Type 选择 Port/IP Group

  • IPv4 Address Group 选择 Block IoT to Gateways


同理设置 Block Guest to Gateways。

Block Guest to Gateways(阻止 Guest网络到 Default, Proxy, IoT 网络的 Gateway)

  • Type 选择 LAN Local

  • Description 输入 Block Guest to Gateways

  • Action 选择 Drop

Source

  • Source Type 选择 Network

  • Network 选择 Guest

Destination

  • Source Type 选择 Port/IP Group

  • IPv4 Address Group 选择 Block Guest to Gateways


最终防火墙策略排序如下图,记得设置好 Firewall 策略顺序,上方的 LAN In 策略排序一定不能错,最上面是 Allow established/related sessions,最下面是 Block Inter-VLANs Routing,中间是允许放行的 Allow Default to all Local 等等,LAN Local 的策略就无所谓先后顺序了,都是封堵策略。


4.6 设置 DDNS & Port Forwarding (无公网 IP 用户请跳过)



DDNS

上面在设置 Internet 的时候,提到了 Ubiquiti 家的 DDNS 针对中国用户并不那么友好,这边就不深究原因了。我们还是使用曲线救国的方式来实现 DDNS 功能,由于 UniFi 的系统本质上是一个修改版的 Debian9,所以有些功能是可以使用 Linux 的处理方式来解决的。这边需要开启 UDR 的 SSH 功能,需要回到 UniFi OS 管理界面的 Console Settings。


Advanced

  • 勾选 SSH,单击 Change Password 设置 SSH Password,用户名是 root


然后我们需要准备一个域名,比如 xyz 结尾的域名,不管新购还是续费都很便宜。把域名的 Name Servers 设置为 Dnspod 提供的 evangeline.dnspod.net, contain.dnspod.net,并在 Dnspod 上创建并保存 DNSPod Token 信息。


接下来,我们使用下面这个 Github 项目, SSH 工具访问 UDR(此处需要特别感谢我一位朋友海滨,还是他之前先在网上找到了这个项目并用在了他自己的 UDM-SE 上,使用成功才推荐我使用的)


Github 项目:kkkgo/dnspod-ddns-with-bashshell: The Dnspod DDNS with BashShell(详细用法请查看 Github README.md)


创建 /ddns 目录

mkdir /ddns


创建 dnspod_ddns.sh 脚本,复制项目全部内容 dnspod-ddns-with-bashshell/dnspod_ddns.sh,修改 API_ID、API_Token、domain、host 四行为 DNSPod 提供的相关信息,其他保持不变。

vim /ddns/dnspod_ddns.sh#Dnspod DDNS with BashShell
#Github:https://github.com/kkkgo/dnspod-ddns-with-bashshell
#More: https://03k.org/dnspod-ddns-with-bashshell.html
#CONF START

API_ID=12345
API_Token=abcdefghijklmnopq2333333
domain=example.com
host=home
CHECKURL="http://ip.03k.org"
#OUT="pppoe"
#CONF END
. /etc/profile

date
if (echo $CHECKURL |grep -q "://");then
IPREX=
'([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
URLIP=$(curl -4 -k $(if [ -n "$OUT" ]; then echo "--interface $OUT"; fi) -s $CHECKURL|grep -Eo "$IPREX"|tail -n1)
if (echo $URLIP |grep -qEvo "$IPREX");then
URLIP="Get $DOMAIN URLIP Failed."
fi
echo "[URL IP]:$URLIP"
dnscmd="nslookup";type nslookup >/dev/null 2>&1||dnscmd="ping -c1"
DNSTEST=$($dnscmd $host.$domain)
if [ "$?" != 0 ]&&[ "$dnscmd" == "nslookup" ]||(echo $DNSTEST |grep -qEvo "$IPREX");then
DNSIP="Get $host.$domain DNS Failed."
else DNSIP=$(echo $DNSTEST|grep -Eo "$IPREX"|tail -n1)
fi
echo "[DNS IP]:$DNSIP"
if [ "$DNSIP" == "$URLIP" ];then
echo "IP SAME IN DNS,SKIP UPDATE."
exit
fi
fi
token="login_token=${API_ID},${API_Token}&format=json&lang=en&error_on_empty=yes&domain=${domain}&sub_domain=${host}"
Record="$(curl -4 -k $(if [ -n "$OUT" ]; then echo "--interface $OUT"; fi) -s -X POST https://dnsapi.cn/Record.List -d "${token}")"
iferr="$(echo ${Record#*code}|cut -d'"' -f3)"
if [ "$iferr" == "1" ];then
record_ip=$(echo ${Record#*value}|cut -d'"' -f3)
echo "[API IP]:$record_ip"
if [ "$record_ip" == "$URLIP" ];then
echo "IP SAME IN API,SKIP UPDATE."
exit
fi
record_id=$(echo ${Record#*"records"\:\[\{"id"}|cut -d'"' -f2)
record_line_id=$(echo ${Record#*line_id}|cut -d'"' -f3)
echo Start DDNS update...
ddns="$(curl -4 -k $(if [ -n "$OUT" ]; then echo "--interface $OUT"; fi) -s -X POST https://dnsapi.cn/Record.Ddns -d "${token}&record_id=${record_id}&record_line_id=${record_line_id}")"
ddns_result="$(echo ${ddns#*message"}|cut -d'"' -f2)"
echo -n "DDNS upadte result:$ddns_result "
echo $ddns|grep -Eo "$IPREX"|tail -n1
else echo -n Get $host.$domain error :
echo $(echo ${Record#*message"})|cut -d'"' -f2
fi


修改 dnspod_ddns.sh 的可执行权限

chmod +x /ddns/dnspod_ddns.sh


修改计划任务,最下方加入以下内容。

# ddns
*/10 * * * * bash /ddns/dnspod_ddns.sh >> /ddns/log
*/10 * * * * echo "----------------------------------------" >> /ddns/log
0 */12 * * * bash /ddns/dnspod_ddns.sh > /ddns/log

重启计划任务服务。

systemctl restart cron

确认计划任务服务是否运行正常。

systemctl status cron

确认计划任务生效

crontab -l

10 分钟后查看 log 文件,查看当前的公网 IP。

tail /ddns/log

这样我们的 DDNS 就设置完成了,然后就可以设置 Port Forwarding 了。这边我只举一个例子,因为设置方法都是一样的,而且这个功能我相信大部分用户在其他路由器上面都设置过,同时,Ubiquiti 家路由器不需要像 MikroTik 家路由器那样需要设置 Hairpin NAT(即网友们所说的回流),所以问题不大。



Port Forwarding(端口转发)

单击 Create New Forwarding Rules 创建 Rule


这边我以 Proxmox VE 虚拟化的 HTTPS 转发为例说明。

  • Name 输入 Proxmox VE HTTPS

  • Forward Rule 勾选 Enable

  • Port 输入任意高位端口,这边我以 30113 为例

  • Forward IP 输入 Proxmox VE Mgmt IP

  • Forward Port 输入 8006

  • Protocol 选择 TCP


从公网访问效果如下:



4.7 设置 WxxxGxxxd

12 月初,UniFi OS 终于在 VXN 功能上面实现了进步,这个事情在英文官方论坛已经被外国用户吐槽爆了,特别是长期以来,Ubiquiti 都只支持 LxxP,然而 Android12 起,已经不允许添加 LxxP 了,除非你在 Android11 的时候添加了 LxxP,并且 OTA 到 Android12 才能使用。所以可以预见这个怨念有多深。


我之前有搜索过,有人使用命令行的方式在 UniFi 路由器内安装 OpenVXN,但是我始终觉得这个东西有一定的稳定性风险,甚至可能重启后或者更新后失效。我本以为 Ubiquiti 会出这个功能,没想到直接跳过,而使用了 WxxxGxxxd。


下面简单介绍下使用方式,不多进行文字说明了。


关于 WireGuard 的配置视频


其实 WxxxGxxxd 无服务端和客户端之分,不过 Ubiquiti 可能为了通俗易懂,所以还是在命名上做了这样的区分。


单击 Create VXN Server 创建服务端


  • Network Name 输入 WxxxGxxxd Name

  • Server Address Port 输入 51820

  • Advanced 可以选择 Auto 或者单独设置一个网络

  • 最后在 Clients Authentication 单击 Add a New Client

  • Name 输入 Client Name


单击 Download Profile,然后单击 Create User


客户端我以 Windows 系统为例,其他客户端同理设置即可。

单击从文件导入隧道,选择上一步下载的 Profile 文件,文件扩展名为 conf。


导入后建议编辑隧道,将 Endpoint 从当前 UDR 的公网 IP 更改为 DDNS 域名,避免公网 IP 变化后导致隧道失效。


5. 项目照片 & 视频演示

原先的 Asus GT-AC5300


原先这个柜子门是封闭的,朋友在我的建议下,重新打造了新的柜子门。

Ubiquiti 全家福

UDR

设置 UDR

有 2 条线路测线后发现有问题,所以全部重新制作水晶头。

打标签,接线并上电。

由于长时间放在柜子内,所以 R86S 直接添置专用的散热器。

柜子内大功告成。


弱电小哥丈量 U6 Pro 点位


由于吊顶厚度较厚,所以没有使用 Ubiquiti 说明书内提供的吊顶方式,而是把吊顶当作墙壁,直接打孔,放弃金属背板。

接上水晶头

放上 U6 Pro

U6 Pro 大功告成

U6 IW 背板安装

放上 U6 IW

U6 IW 大功告成


U6 Mesh 大功告成


该功能可以显示交换机端口对应设备名称以及图标,如果没有在网线打印标签的用户,可以从 AR 功能中准确找到需要寻找的网线,以实现 Ubiquiti 的口号:“让 IT 更简单”。


此前,此功能长期仅有 iOS 版本支持,现在 Android 版本的 UniFi Network 也已支持 AR 功能。下载链接如下:


6. 故障问题

6.1 U6 AP 供电不足问题

故障描述:U6 IW Child's Room is connected to a PoE port incapable of providing enough power for the AP to operate at full capacity. Please connect it to a PoE+ port or adapter.


这个问题出现的原因就是我上面在网络拓扑提到的,把 U6 IW 连接到 UDR 的 PoE 接口了,而不是 Enterprise 8 PoE 上面的 PoE+ 接口,这个问题有两个解决思路,一个就是接到 PoE+ 接口,另一个是开启 Low Performance Mode,如果没有该选项,请升级 U6 AP 的固件至最新。在 PoE+ 接口足够的情况下,肯定是建议前者,后者是不得已而为之的解决办法。


此问题解决办法来源:Low Performance Mode



6.2 DDNS 计划任务失效问题

前几天,当我连接 WxxxGxxxd 帮朋友排障的时候,发现 WxxxGxxxd 连接上之后却无法访问内网设备,在我排查一圈之后,发现 DDNS 指向的还是之前的公网 IP,而其实朋友家的 PPPoE 拨号公网 IP 已经变更,从 UniFi OS 控制台里面就可以发现新的公网 IP,所以这时候我将 WxxxGxxxd 隧道的 DDNS 域名修改为新的公网 IP,成功接入内网。


这时候我 SSH 进入 UDR,查看了下 ddns log,发现几天前停止了内容更新,脚本依然在,但是为什么没有执行呢?我又检查了下 crontab,这才发现了问题所在,我怀疑是升级 UniFi Network 或者 UniFi OS 之后,会将 crontab 配置还原,所以如果有遇到同样情况的朋友,可以按照这个思路排查故障。


最后再把 WxxxGxxxd 隧道的新公网 IP 修改回 DDNS 域名。


7. 项目总结

经过这次改造之后,朋友之前的痛点“WiFi 覆盖面不够,有些区域是网络死角”自然是完美解决。当然,仅凭这一天的安装部署,肯定没法把信号调优等等做到位,这些需求自然需要后期逐步优化设置。不过能赶在世界杯前部署完成,也算是一件好事,至少朋友再也不用苦恼大半夜看球只能窝在个别位置才能使用 WiFi 上网咯。


这次项目算是我第一次真正使用整套的 Ubiquiti 全家桶部署一个家庭网络,不得不说确实上手难度比起传统网络设备来说是简单了很多,也真的如 Ubiquiti 所说:“让 IT 更简单”。当然,前提还是要有一点基础的网络知识,同时需要参考 Ubiquiti 官方文档、Ubiquiti 官方论坛以及一些 U2Ber 的视频(国内对于 Ubiquiti & MikroTik 的通俗易懂的教程和视频确实太少了,有些文章排版又不尽如人意),因为使用传统网络设备的设置思路去设置 UniFi Network,实际上会变得非常繁琐,违背了“让 IT 更简单”的初衷。


补充一点,最好是能直接听懂英文 U2Ber 的视频,哪怕开启自动英文字幕都行。因为我自己很多设置都是参考英文视频学习的,一来是他们基本上每一只视频都会讲解一个功能从头到尾的设置,还有一些最佳实践,包括可能存在的问题等等;二来是随着 Ubiquiti 设备的固件版本更新,界面和设置选型自然也会更新,所以他们也会一直同步更新教学视频,以方便来自全球的用户参考设置。第 8 章资源汇总里,我会把 U2B 上一些我觉得好的视频清单都汇总出来,有条件的朋友可以自行观看查询。


但是也不得不吐槽 Ubiquiti 跨大版本时候真是问题不少,还好现在 UniFi Network 更新到现在 7.3 版本已经比之前好多了。我的 Cloud Key Gen2 Plus 出厂预装的版本算是 6.1 的 UniFi Network,那时候的新界面不少设置是和旧界面是冲突的,设置起来简直惨不忍睹。不过新版本界面什么时候能有中文还是个未知数,毕竟对于没有什么网络基础的朋友,看这些内容简直跟看天书没区别,也再次希望我的文章能帮助这些朋友更好的用上 UniFi OS


8. 资源汇总

8.1 官方文档


8.2 海外论坛资料汇总


8.3 Bilibili 用户汇总


8.4 U2B 用户 & 视频列表汇总


8.5 中文 Blog

以下是另一位中文用户的 Blog 文章,我在写完我这篇文章之后才发现这些内容,虽然内容时效性上可能有点滞后了,但是我觉得还是值得一看的


以上就是本文的全部内容了,注册 10 年小透明第二次发帖,如果我有什么配置不合理或者错误,也欢迎大家不吝赐教!


上述内容中,附带一些来源链接,我确定链接都是准确的,如果您打不开链接网页,请麻烦您自己研究下如何访问对应的网站,谢谢!


作者:ryoma1836
著作权归作者所有,仅代表作者观点。商业转载请联系作者获得授权。



推|荐|阅|读




继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存