如何使我的UDP服务器成功接收目标IP为网段(ae86::3:1/112)的UDP请求? [已关闭]

How can I enable my UDP server to successfully receive UDP requests whose target IP is one of the network segments(ae86::3:1/112)? [closed]

提问人:cms coo 提问时间:11/13/2023 最后编辑:cms coo 更新时间:11/13/2023 访问量:35

问:


这个问题似乎与特定的编程问题、软件算法或程序员主要使用的软件工具无关。如果您认为该问题在另一个 Stack Exchange 站点上是主题,您可以发表评论以解释在哪里可以回答该问题。

6天前关闭。

我使用 WireGuard 构建了一个内网环境,以便将目标 IP 为 ae86::3:1/112 的 UDP 数据发送到当前 UDP 服务器部署的容器中。

客户端 1

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
        inet6 fe80::994c:f73d:3a86:efc2  prefixlen 64  scopeid 0x20<link>
        inet6 ae86::2:1  prefixlen 112  scopeid 0x0<global>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 323  bytes 35356 (35.3 KB)
        RX errors 54  dropped 0  overruns 0  frame 54
        TX packets 804  bytes 58800 (58.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

客户端 2

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
        inet6 ae86::3:1  prefixlen 112  scopeid 0x0<global>
        inet6 fe80::29f5:948a:7683:ddde  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 38  bytes 3908 (3.9 KB)
        RX errors 5  dropped 0  overruns 0  frame 5
        TX packets 159  bytes 9556 (9.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

网络正常,我可以使用 Ping6 命令相互访问。

在 Client1 上运行 ping6:

root@da6e38d4c0ad:/# ping6 ae86::3:1
PING ae86::3:1(ae86::3:1) 56 data bytes
64 bytes from ae86::3:1: icmp_seq=1 ttl=63 time=109 ms
64 bytes from ae86::3:1: icmp_seq=2 ttl=63 time=100 ms
64 bytes from ae86::3:1: icmp_seq=3 ttl=63 time=99.0 ms

在 Client2 上运行 ping6:

root@d147216a30ab:/# ping6 ae86::2:1
PING ae86::2:1(ae86::2:1) 56 data bytes
64 bytes from ae86::2:1: icmp_seq=1 ttl=63 time=99.1 ms
64 bytes from ae86::2:1: icmp_seq=2 ttl=63 time=98.0 ms
64 bytes from ae86::2:1: icmp_seq=3 ttl=63 time=110 ms

案例一:

当我在 Client2 上启动 UDP 服务器,然后从 Client1 向 [ae86::3:1] 发送消息时。它成功了。

案例2:

当我在 Client2 上启动 UDP 服务器,然后从 Client1 向 [ae86::3:2] 发送消息时。

client2 上的 UDP 服务器未收到任何内容。

当我使用 tcpdump 时,显示这个

09:37:14.030559 IP6 ae86::2:1.12345 > ae86::3:2.12345: UDP, length 17
09:37:14.030578 IP6 fe80::29f5:948a:7683:ddde > ae86::2:1: ICMP6, redirect, ae86::3:2 to ae86::3:2, length 112
09:37:14.030583 IP6 ae86::2:1.12345 > ae86::3:2.12345: UDP, length 17
09:37:14.030592 IP6 ae86::3:1 > ae86::2:1: ICMP6, destination unreachable, unreachable address ae86::3:2, length 73

运行 cmd 'ip addr add ae86::3:2' 后,服务器成功接收到我从 Client1 发送的消息。

问题: 不使用'ip addr add',如何让我的UDP服务器成功接收目标IP为网段之一的UDP请求(ae86::3:1/112)?

路由 UDP IPv6 iptables wireguard

评论

0赞 Ron Maupin 11/13/2023
您正在使用无效的 IPv6 网络。全局 IPv6 地址在范围内,ULA 在该范围内(有某些限制)。其他范围可能无效。此外,您应仅使用 IPv6 网络;使用其他大小可能会破坏 IPv6 功能。2000::/3fc00::/7/64
0赞 cms coo 11/13/2023
谢谢你告诉我这个。但我不认为这是 ipv6 地址的问题。因为在 wg0 上添加 ip 地址后,一切正常。
0赞 Ron Maupin 11/14/2023
我没有说那一定是问题所在,但你正在让自己陷入其他问题,以你的方式去做。

答: 暂无答案