路由与NAS 篇十二:移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

2021-04-14 15:47:13 17点赞 86收藏 13评论

创作立场声明:折腾了许久的 unraid 容器 IPv6,记录一下学习过程遇到的一些问题以及解决方案,希望能对值友有所帮助.

写在前面

NOTE
本文字数 3300+,配图 26,预估阅读时间 7 ~ 9 分钟

如之前的文章介绍,unraid 本身开启 ipv6 还是比较简单

路由与NAS 篇九:大内网宽带入坑小记——修改光猫桥接并配置IPv6实现外网访问NAS创作立场声明:本文仅用于记录这次尝试移动宽带桥接及IPv6相关配置,实现通过外网访问路由器及NAS,方便后续翻查,也给感兴趣的值友一定的参考NOTE本文字数4500+,配图30+,预估阅读时间9~12分钟写在前面最近忙搬家,欠的文章都还没补充,又入了一个移动宽带的新坑。这次趁机记录一下方便后续翻查,丶Source| 314 评论267 收藏2k查看详情

先在 MAIN 页面停掉 Array 磁盘阵列

SETTINGSS - Network Settings 设置 IPv4 + IPv6 即可

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

之前的文章因篇幅原因,对 unraid 的 ipv6 细节没有展开来讲,

本文讲介绍 Unraid 容器的 IPv6 配置,并以 Transmission 为例进行演示:

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

浓缩版

如果有一定的基础,并且赶时间的话,推荐仅看本部分内容即可
后续的内容会比较啰嗦,介绍了一堆基础知识以及踩过的坑,仅为记录

如何在 Unraid 下配置 Transmission 支持 IPv6:

  1. 关闭路由器的 DHCPv6 服务只保留路由通告服务

  2. 迫使 unraid 仅用 SLAAC 申请 IPv6,以保证 br0 类型的 docker 可分配 IPv6

  3. 修改 Transmission 容器网络类型为 Custom:br0

  4. 确保 Transmission 的配置支持 IPv6

  • 对端端口绑定 IPv6:"bind-address-ipv6": "::"

  • RPC 端口绑定 IPv6:"rpc-bind-address": "::"

路由器开放 Transmission 的对端端口、RPC 端口的白名单支持从外网访问

如果配置正确,就可以在支持 Transmission 通过 IPv6 上传下载、外网访问管理

docker获取IPv6

Unraid 为 docker 默认提供了 4 种网络类型

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

其实就是 docker 网络类型的知识,简单介绍一下 docker 的 5 种网络类型:

网络类型说明使用场景
none只有 lo 回环网卡,封闭的网络不需要网络的容器,保证容器的安全性
host使用宿主网络,性能好没有网络隔离,不能复用宿主已使用端口
bridge保证容器间、容器与宿主间网络隔离适用大部分场景,通过端口映射暴露服务
container和指定的容器共享网络unraid 界面不提供这种网络模式
custom自定义网络,unraid 提供物理桥接可以分配与宿主同网络的 IP

Host网络类型

通过前面的配置,已经可以为 Unraid 分配 IPv6

基于此,就可以通过将容器设置为 host 网络类型以共享宿主的 IPv6

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

这种类型的容器,可以直接利用宿主网络进行通信

在内网时,可以直接通过 Nas 的 IPv4 地址 10.0.0.2 访问

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

在外部网络时,也可以通过 Nas 的 IPv6 地址来访问(4G 网络):

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

当然,为了方便,肯定还是需要配置好 DDNS 通过 IPv6 域名来访问

Custom网络类型

如前面介绍,Unraid 提供了类似物理桥接的 Custom:br0 网络类型

通过这种方式,我们可以让容器获取到与宿主同个子网的网络地址

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

如上图,Nas 分配的 IP 是通过主路由分配的 10.0.0.2

br0 网络类型的容器可以分配到同个子网的 10.0.0.4

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

Custom:br0 是桥接到 br0 物理网桥

  • 由主路由分配 IP,与 Nas 宿主处于同个子网 10.0.0.0/24

  • 虽然与 Nas 通过一根网线连接到路由,但在路由看来是两个独立的设备

Bridge (容器默认网络模式)是桥接到 docker0 虚拟网桥

  • 从 docker0 子网分配一个 IP 给容器使用:172.17.0.0/16

  • 容器的网关被设为 docker0 172.17.0.1

  • 容器与 Nas 处于不同子网,与外网通信需要由 docker0 进行 NAT 地址转换

以一个 br0 类型的容器为例(需要路由器关闭 DHCPv6,下文会有介绍)

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

进入到这个 br0 网络类型的容器,可以看到已经分配 v4、v6 双栈 IP

同时,IPv6 已经是公网 IPv6,可以直接在外网进行访问(只要防火墙放开)

unraid的IPv6

默认支持DHCPv6及SLAAC

Unraid 在开启 ipv6 支持后,默认可获取到两个公网 ipv6 地址:

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

这两个地址分别是:

  1. 128 位的 ipv6 地址是通过 DHCPv6 获取到的

  2. 64 位的 ipv6 地址是通过 SLAAC 获取到的

当然这个的前提是你的路由器固件开启了路由通告服务DHCPv6服务

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

这里可能会有人想直接通过 DHCPv6 给 Unraid 指定 IPv6 的后缀

来获取更高的可读性,比如 运营商分配的前缀::2

但是很遗憾,在 openwrt 这个方式行不通:

  1. openwrt 分配的 IPv6 后缀和客户机的 DUID 是对应的

  2. openwrt 改不了客户机的 DUID,也不能直接指定客户机的 IPv6

比如我为 Nas 分配了固定的 IPv6 后缀

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

但实际上获取到的还是跟之前的一致,也就是 ::2a2 后缀

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

DUID 为 DHCPv6 设备的唯一 ID,用于标识不同的客户端

但所幸 DUID 是基本不变的,通过 DHCPv6 获取到的 IPv6 其后缀也是不变的

路由关闭DHCPv6服务

并且在实际测试中,当路由器开启了 DHCPv6 服务之后,

设置为 br0 网络模式的容器也无法分配到 IPv6 地址,需要关闭路由 DHCPv6 服务

猜测是 Unraid 的 br0 第一个 IPv6 地址为 DHCPv6 分配的 /128 地址

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

之后 Unraid 上重新获取 IP 后可以看到显示的 IPv6 变成 /64 的地址

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

所幸目前大部分支持 IPv6 的设备都支持 SLAAC 模式,对应路由通告服务

且 DHCPv6 并没有得到很好的普及,比如 Android 就不支持 DHCPv6

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

所以关闭了 DHCPv6 对于目前使用上基本没啥影响(至少从我使用情况)

Transmission支持IPv6

IPv6配置调整

Transmission 主要是调整两个监控端口支持 IPv6:

  • Peer Port:用于上传下载数据

  • RPC Port:管理端口,一般会提供 WebUI 进行管理

这两个参数被定义在 Transmission 配置目录下的 settings.json

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

Peer Port

对于比较新版本的 Transmission,Peer port 已默认开启 IPv6 支持:

如果还不行,请检查并加上这个配置: "bind-address-ipv6": "::"

RPC Port

Transmission 需要 3.0 版本之后才默认支持 RPC 绑定 IPv6 地址

更详细信息可以参考官方 Issue:Add IPv6 support for RPC server #59

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

所以如果在使用小于 3.0 的版本,只能升级或者手动打补丁来支持

之后就可以修改配置 RPC 绑定的配置,默认为 "rpc-bind-address": "0.0.0.0"

需将上面配置项的值 0.0.0.0 修改为 :: 以开启双栈支持(需彻底退出重启)

Transmission网络类型选择

如上面介绍,针对 Transsmission 容器有两种方式来支持 IPv6:

网络类型配置说明
Host配置简单,存在端口冲突风险,与宿主不存在网络隔离存在安全风险
Custom需屏蔽 DHCPv6,与宿主网络隔离,不需要考虑端口冲突问题

需要注意,这两种方式,都不需要 Nas 进行 NAT,所以网络性能基本差不多

我个人比较建议是使用 Custom 网络模式,隔离网络

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

另外,也支持固定 IP 配置;默认留空,则由 Docker 自行申请

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

从 Unraid 论坛的帖子来看 IPV6 NOT WORKING

Docker 并不是使用 SLAAC 的方式来获取 IPv6 地址,而是按顺序

比如网关是 ::1,则第一个 br0 网络类型的 docker 分配到 ::2

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

但从我的情况来看,实际上 Docker 获取到两个 IPv6 地址:

  • 第一个比较长的是通过 EUI-64 地址转换获取

  • 第二个比较短的,就是符合上面帖子的情况,按顺序分配

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

通过 MAC 地址进行 EUI64 转换:2409:****:****:****:42:aff:fe00:3/64

配置开启防火墙

路由器防火墙默认限制 IPv6 转发,需要配置开启对应端口允许外部访问

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

在路由管理后台 网络 - 防火墙 - 流量规则 页面新建转发规则并编辑

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

建议修改 Transmission 这两个默认端口,同时一定要开启 RPC 的密码认证

Transmission在IPv6环境使用体验

目前运营商都已经支持 IPv6 环境,日常使用上基本是没有问题

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

最高的下载速度也能跑到 3OMB/s 下载,基本算接近 300M 宽带的实际上限

移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

在外网也可通过 IPv6 访问管理页面进行操作,比如已经支持 IPv6 的手机 4G 网络

就可以实现在外部通过浏览器、 APP(TransmissionRemote) 来进行下载操作等

当然,你要问和 IPv4 比起怎么样?

—— 有公网 IPv4 谁还来折腾这鬼东西??移动大内网如何愉快玩耍Transmission——Unraid容器IPv6实战指南

展开 收起

联想个人云T2(双盘位无盘版) nas网络存储服务器家庭用私有云网盘 支持远程访问自动备份 工业

联想个人云T2(双盘位无盘版) nas网络存储服务器家庭用私有云网盘 支持远程访问自动备份 工业

999元起

联想个人云T2(双盘位4T*1版) nas网络存储服务器家庭私有云网盘内置wd西部数据硬盘 远程访问自动备份 工业

联想个人云T2(双盘位4T*1版) nas网络存储服务器家庭私有云网盘内置wd西部数据硬盘 远程访问自动备份 工业

1599元起

联想个人云T2(双盘位4T*2版) nas网络存储服务器家庭私有云网盘内置wd西部数据硬盘 远程访问自动备份 工业

联想个人云T2(双盘位4T*2版) nas网络存储服务器家庭私有云网盘内置wd西部数据硬盘 远程访问自动备份 工业

1999元起

群晖(Synology)DS418play双核心4盘位NAS

群晖(Synology)DS418play双核心4盘位NAS

3850元起

Lenovo 联想 个人云存储T2 私有云 双盘位 NAS存储(RTD1296、2GB)

Lenovo 联想 个人云存储T2 私有云 双盘位 NAS存储(RTD1296、2GB)

999元起

HIKVISION 海康威视 Mage20双盘位 NAS网络存储服务器 无盘版

HIKVISION 海康威视 Mage20双盘位 NAS网络存储服务器 无盘版

999元起

QNAP威联通TS551 2G内存5盘位双千兆4K转码网络存储服务器NAS

QNAP威联通TS551 2G内存5盘位双千兆4K转码网络存储服务器NAS

1599元起

群晖(Synology)DS218play四核心2盘位NAS

群晖(Synology)DS218play四核心2盘位NAS

1980元起

威联通(QNAP) TS-212P3 2盘位NAS网络存储器 四核心处理器 TS-212P3 TS-212P3(空机)

威联通(QNAP) TS-212P3 2盘位NAS网络存储器 四核心处理器 TS-212P3 TS-212P3(空机)

879元起

ZSpace 极空间 Z2 2盘位NAS (RTD1296、2GB)

ZSpace 极空间 Z2 2盘位NAS (RTD1296、2GB)

1199元起

QNAP 威联通 TS-873A 八盘位 NAS存储 Ryzen V1500B 8GB

QNAP 威联通 TS-873A 八盘位 NAS存储 Ryzen V1500B 8GB

暂无报价

QNAP 威联通 TS-473A 四盘位 NAS存储 V1500B 8GB

QNAP 威联通 TS-473A 四盘位 NAS存储 V1500B 8GB

暂无报价

QNAP 威联通 TS-673A 六盘位 NAS存储 V1500B 8GB

QNAP 威联通 TS-673A 六盘位 NAS存储 V1500B 8GB

暂无报价

华硕 ThunderboltEX 3 PCI-E转雷电3 主板扩展卡

华硕 ThunderboltEX 3 PCI-E转雷电3 主板扩展卡

699元起

Lexar 雷克沙 M1 NAS (RTD1195)

Lexar 雷克沙 M1 NAS (RTD1195)

369元起

HIKVISION 海康威视 Mage10 个人私有网盘 4TB版

HIKVISION 海康威视 Mage10 个人私有网盘 4TB版

1549元起
13评论

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
86
扫一下,分享更方便,购买更轻松