众所周知,upnp 能够自动打开 ipv4 防火墙上的某个端口,并把该端口的流量全部转发到局域网主机的某个端口上。
那么我想知道,假设我有一个默认阻断入站的 ipv6 防火墙,那么我想知道能否存在下面两种技术。
类似 ipv4 upnp ,在路由器上打开 ipv6 的端口 A ,并把该端口的流量全部转发到局域网主机的某个端口 B 上。即外网只需要访问路由器 IPv6:A,就能直接访问到主机 IPv6:B
打开 ipv6 的转发,即外网只能访问到主机 IPv6:B,其余入站按防火墙规则一律阻断
注意,上面的操作过程应该是程序自动化配置的,类似 upnp ,而非手动配置防火墙。
1
bao3 2023-02-14 03:15:25 +08:00 via iPhone
好家伙,你这是把 IPv6 当 IPv4 用……为了这么用,你还需要 IPv6 NAT 。你直接 IPv4 ,再加一个 6to4 ,就实现你想要的了。
|
2
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 的防火墙几乎不存在 |
3
LnTrx 2023-02-14 04:29:36 +08:00
应该没有,比较接近的是 Port Control Protocol
毕竟 IPv6 已经不再需要网关转发来克服 NAT 了 |
4
jim9606 2023-02-14 07:32:12 +08:00
UPnP 规范定义了第二种控制方式——WANIPv6FirewallControl ,可以通过 UPnP 放行内网特定主机特定端口的入站流量。
goupnp 包对此有实现,但不清楚路由器的 upnpd 支持状况如何,似乎 openwrt 都没支持这个。 |
5
mrzx 2023-02-14 10:12:04 +08:00
一开始就理解错误了。。。
不是放行某个端口。。。而是自动跟路由器协商,自动形成 DNAT 端口关系。 IPV6 已经不需要 NAT 了,每个设备都有个公网 IP 地址。。。如果考虑安全性。更该考虑的是 IPv6 防火墙, 防火墙一定要支持数据流向动态放行的功能(通常叫“基于状态的检测”)才行。。有些路由器上就算集成了防火墙,防火墙也很 low ,大多数是包过滤,对一些动态协商端口没有办法设置规则,无法支持这类操作。。 |
6
systemcall 2023-02-15 01:52:52 +08:00 via Android
还是 UPnP ,慢慢等吧,等到鸡啄完米、狗舔完面、蜡烛烧断锁、wsl2 支持 ipv6 、主流 nas ipv6 开箱即用,大多数设备就支持 ipv6 的 UPnP 了
ipv6 不需要 nat ,但是要防火墙放行。这个很好理解,因为 ipv4 本来就可以不 nat ,一样可以是路由器拿一个前缀再来下发,只不过 ipv4 地址太少了,点出了 nat 的科技树 |
7
systemcall 2023-02-15 01:54:38 +08:00 via Android
另外,没记错的话,很多应用是支持 ipv6 打洞的,从结果看有点像 nat1 打洞,但是不清楚到底是怎么做的,各种防火墙的行为并不是很统一。也许你可以查看一下 libtorrent 的文档
|
8
lns103 2023-02-15 11:13:16 +08:00 via Android
@systemcall 只要两边设备都有公网 ipv6 地址,防火墙再严格也是类似 Nat3 的级别,UDP 是肯定可以打通的
|
9
zsr123 2023-02-15 12:38:07 +08:00
这都回的是些啥,楼主根本不是问 NAT 的问题。。。
|