Site Overlay

用UBNT EdgeRouter X实现PPPoE拨号与IPv6

Step 0:前言

疫情原因,学校开始了可能是近两年最严格的一次封校,进不了学校就只好在家里看看实验室文档,玩玩电脑,效率自然是不高的,于是就想着整点活干干,虽然和学校的事情并没什么相干,但是一来积累点经验,二来也可以减轻摸鱼的罪恶感。

一来二去,还是盯上了出租屋的网络,本来的网络环境也就一般,入户一个PT622电信光猫,光猫拨号,然后由于光猫没有WiFi房东还接了一个小米路由器4Q,这下不仅有复古风格的全百兆接口,更有现代乃至后现代风格的NAT叠叠乐拓扑,属实难绷。

不过话又说回来,其实网络本来不一定就要用顶级的配置,我始终觉得,符合需求并具有一定的拓展空间,就是最佳的方案,所以我现在若是像去年复习的时候一样每天到家玩会手机就睡,这套方案倒也没什么大不了的,不是自家的房子也不用考虑什么拓展;但是现在家里有了两个电脑,这百兆的内网带宽就有些捉襟见肘了,剪个视频传素材都能卡,再加上双重NAT导致和无耻联机都费劲,所以确实应该稍微改造一下。

正好手头有前几天从臧老板坑蒙拐骗来的一台UBNT EdgeRouter X,久仰优倍快的大名,今天就来配置看看。

Step 1:光猫改桥接

鉴于寒假里的经验,找电信师傅肯定是行不通的,况且这也不是我自己的宽带,所以最好还是留下能够恢复如初的口子。

PT622这款光猫还是比较古老的,在论坛上很快就找到了漏洞,可以用备份配置文件的方式破解:
在用普通用户登录光猫后,打开/cgi-bin/upgrade.asp页面,点击页面中的ROMFILE BACKUP按钮,在下载的romfile.cfg文件里,搜索web_passwd字段,就能够找到telecomadmin的超级密码。

家里光猫的passwd文件还在紧锣密鼓的破解中,但是显然用CPU爆破的话性能不够,目前在尝试用HashCat调用CUDA使用恰当的正则表达式猜测,如果后续有结果会更新。

登陆光猫后,定位到网络->宽带设置->Internet设置,连接名称选4_INTERNET_B_VID_,将模式改为Bridge,其他不用管,确认即可。如果有必要,建议先备份宽带的用户名和密码。

参考:再发一次友华PT622光猫里面的密码,方便外面的人查找

Step 2:配置主路由

UBNT的设备确实比较高端,似乎还更鼓励用户通过命令行的方式对设备进行配置,不过好在今天的配置项足够简单,用Web UI就可以完成。

对于PPPoE这样的基本操作,UBNT的EdgeOS提供了几个Wizard,可以配置基本的组网方式,包括多个LAN或者链路聚合等情况,普通上网只需要选择Basic Setup,选择PPPoE并输入账号密码即可。为了使用IPv6,所以我这里选上了Enable DHCPv6 Prefix Delegation,并设置前缀长度为60,然后完成向导并重启路由器。

重启后,还需要修改路由器的配置树,启用interfaces / ethernet / eth0 / pppoe / 0 / ipv6 / address / autoconfinterfaces / ethernet / eth0 / pppoe / 0 / ipv6 / enable两个条目,即点击树中该项目右侧的加号,然后应用修改,稍等片刻就能获取到IPv6地址了。

参考:七海网络教学 1: EdgeRouter 启用IPv6

Step 3:配置UPnP和硬件加速

使用EdgeOS的UPnP Wizard,添加一个Internal Interface为switch0,External Interface为pppoe0的UPnP转发,即可完成UPnP的配置。

不过根据一些文章的说法,UPnP服务并不安全,更推荐的做法是使用更为现代的UPnP2,EdgeRouter支持UPnP2,但是仅能通过CLI开启。

UPnP2就很安全吗?
其实也未必,有不少研究表示UPnP2也有可以利用的漏洞。事实上,在引入任何“自动”的工具之前,都应该仔细权衡利弊,因为一旦选择了便利性,就必然会牺牲安全作为代价,风险控制和损害管制是设计一个系统时不可缺少的细节。

首先,删除已有的UPnP配置项:

configure
delete service upnp
commit
save
exit

然后,配置UPnP2:

configure
set service upnp2 listen-on switch0
set service upnp2 wan pppoe0
set service upnp2 secure-mode enable
set service upnp2 nat-pmp enable
commit
save
exit

重启后,可以使用show upnp2 rules查看配置结果。

Web UI自带的Web Shell登录进去要卡一段时间,是正常现象,不是出问题了。
而且这玩意儿重启好慢啊,可能是因为MIPS架构的吧。

参考:UPnP with EdgeRouter: Don't do it! · GitHub
Ubiquiti EdgeRouter 配置 UPnP2 啟用方法

另外,UBNT的设备内置了用于转发加速的硬件,按照网友的测试,如果使用软件转发仅有百兆水平,而开启硬件加速就可以跑满。但硬件加速并不是默认开启的,需要手动通过命令行启用:

configure
set system offload hwnat enable
commit
save

按照官方推荐,启用后最好重启,可以使用show ubnt offload命令查看硬件加速是否加载成功。

参考:EdgeMax - 如何开启 IP offload 进行硬件加速
EdgeRouter拨号200M宽带一定务必打开PPPoE offload

Step -1:尾声

其实这篇文章的篇幅实在是不太长,但是为了记录经验,所以还是写了下来。而且这个篇幅不应该作为独立的一篇,更适合作为Operation Reloaded的一个额外的部分附在最后,不过想了想,我还是把它单独发了,一方面是久了没写东西,需要写点“要发出来的”文章熟悉熟悉感觉,而不是写一堆只有自己看得懂的半吊子流水账屯在草稿箱里,另一方面,我欠的债也属实有点多,除了一直在规划的Operation Rebirth记录和百T纪念之外,社团里我还欠了一篇远程访问的推送没写(欠了一年多了),把这篇发出来,也算是给自己提供下继续的动力吧。

1 thought on “用UBNT EdgeRouter X实现PPPoE拨号与IPv6

  1. “这下不仅有复古风格的全百兆接口,更有现代乃至后现代风格的NAT叠叠乐拓扑”
    哈哈哈哈哈哈哈哈哈哈哈哈

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据