upnp/Port-forwarding 在 ipv6 场景下对应的技术是什么?

2023-02-14 01:47:51 +08:00
 xxfye

众所周知,upnp 能够自动打开 ipv4 防火墙上的某个端口,并把该端口的流量全部转发到局域网主机的某个端口上。

那么我想知道,假设我有一个默认阻断入站的 ipv6 防火墙,那么我想知道能否存在下面两种技术。

  1. 类似 ipv4 upnp ,在路由器上打开 ipv6 的端口 A ,并把该端口的流量全部转发到局域网主机的某个端口 B 上。即外网只需要访问路由器 IPv6:A,就能直接访问到主机 IPv6:B

  2. 打开 ipv6 的转发,即外网只能访问到主机 IPv6:B,其余入站按防火墙规则一律阻断

注意,上面的操作过程应该是程序自动化配置的,类似 upnp ,而非手动配置防火墙。

2064 次点击
所在节点    宽带症候群
9 条回复
bao3
2023-02-14 03:15:25 +08:00
好家伙,你这是把 IPv6 当 IPv4 用……为了这么用,你还需要 IPv6 NAT 。你直接 IPv4 ,再加一个 6to4 ,就实现你想要的了。
cnbatch
2023-02-14 03:38:42 +08:00
IPv6 套用 IPv4 家用网络的惯用 NAT (即 NAPT ,到了 IPv6 时代这种做法叫做 NAT66 ),以往 IPv4 的端口转发操作可以继续套用,只不过这种 NAT 并非 IPv6 正式标准的组成部分
https://openwrt.org/docs/guide-user/network/ipv6/ipv6.nat6

顺便还可以了解下 NPTv6 ,可以做到 IPv6 内外网前缀自动转换。如果防火墙支持的话,可以只开放指定的 IPv6 地址,效果则是外部只能连接指定的内网主机。

NPTv6 还有个好处,那就是对于动态 IP 以及多 ISP 线路的用户来说非常方便,可以直接在防火墙端给内网主机生成两个不同的 IPv6 地址,内网主机继续使用单一 IPv6 地址,这样外部 IP 怎么变都不用理会,多 ISP 线路的话还能更方便地匹配双线路由表(目前 IPv6 前缀分配还不至于像 IPv4 那样严重碎片化)。

目前 NPTv6 唯一的问题是,动态公网环境下完美支持 NPTv6 的防火墙几乎不存在
LnTrx
2023-02-14 04:29:36 +08:00
应该没有,比较接近的是 Port Control Protocol

毕竟 IPv6 已经不再需要网关转发来克服 NAT 了
jim9606
2023-02-14 07:32:12 +08:00
UPnP 规范定义了第二种控制方式——WANIPv6FirewallControl ,可以通过 UPnP 放行内网特定主机特定端口的入站流量。

goupnp 包对此有实现,但不清楚路由器的 upnpd 支持状况如何,似乎 openwrt 都没支持这个。
mrzx
2023-02-14 10:12:04 +08:00
一开始就理解错误了。。。

不是放行某个端口。。。而是自动跟路由器协商,自动形成 DNAT 端口关系。

IPV6 已经不需要 NAT 了,每个设备都有个公网 IP 地址。。。如果考虑安全性。更该考虑的是 IPv6 防火墙,

防火墙一定要支持数据流向动态放行的功能(通常叫“基于状态的检测”)才行。。有些路由器上就算集成了防火墙,防火墙也很 low ,大多数是包过滤,对一些动态协商端口没有办法设置规则,无法支持这类操作。。
systemcall
2023-02-15 01:52:52 +08:00
还是 UPnP ,慢慢等吧,等到鸡啄完米、狗舔完面、蜡烛烧断锁、wsl2 支持 ipv6 、主流 nas ipv6 开箱即用,大多数设备就支持 ipv6 的 UPnP 了
ipv6 不需要 nat ,但是要防火墙放行。这个很好理解,因为 ipv4 本来就可以不 nat ,一样可以是路由器拿一个前缀再来下发,只不过 ipv4 地址太少了,点出了 nat 的科技树
systemcall
2023-02-15 01:54:38 +08:00
另外,没记错的话,很多应用是支持 ipv6 打洞的,从结果看有点像 nat1 打洞,但是不清楚到底是怎么做的,各种防火墙的行为并不是很统一。也许你可以查看一下 libtorrent 的文档
lns103
2023-02-15 11:13:16 +08:00
@systemcall 只要两边设备都有公网 ipv6 地址,防火墙再严格也是类似 Nat3 的级别,UDP 是肯定可以打通的
zsr123
2023-02-15 12:38:07 +08:00
这都回的是些啥,楼主根本不是问 NAT 的问题。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/915860

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX