gdb 最近的时间轴更新
gdb

gdb

V2EX 第 543375 号会员,加入于 2021-04-22 18:58:10 +08:00
根据 gdb 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
gdb 最近回复了
@ChaosAttractor 关于你说的如下问题:


[但是很显然你用了 DHCPv6 (显然你的地址不是 eui64 生成的),以及你拿到的地址也有些奇怪,很少见到 ::d:dddd 这种风格的地址,大概率不是你的路由器给的,是上游的网关给的,你可以用 ip -6 route 来查看一下 Default Route 是什么地址,看看是不是你的路由器

你的路由表里关于二层的路由应该没什么问题,但是 Default Route (网关)大概不是你的路由器而是上游的网关,那么就要看你路由器的 NDP-Proxy 是怎么实现的了,如果它的中续是双向的,那么你就可以联网,否则你可以理解为是你的路由器的实现有问题]


你说的没错,我的 ip -6 route 的结果里面,那个 fe80::42ee:ddff:fe60:1d9d 的地址并不是 tplink 无线路由器的的地址,我也感觉应该是上一级的网关的地址。另外,我看了一下,tplink 无线路由器的 ipv6 的一个 local 的地址,我可以在路由器里面看到,也是 fe80 开头的一个地址。



[此外你说 Windows 可以联网,Windows 是通过 DHCPv6 联网的??你试试看安卓能不能联网,安卓只支持 SLAAC] 安卓在这种情况下连上无线 tplink 后,ipv6 不能用。
我现在的问题是:能否设置一下 ubuntu22 的电脑,让它能像 windows10 的电脑那样工作,我不知道这个怎么设置,因为 Windows10 下的 ipv6 是工作正常的。
@ChaosAttractor

关于你说的 ip -6 route 的命令的结果,我之前的回复帖子里面发过,我再发一遍:

~~~~
::1 dev lo proto kernel metric 256 pref medium
2001:ddd:dddd:d::d:dddd dev wlxcdddddddd proto kernel metric 600 pref medium
fe80::/64 dev wlxcdddddddd proto kernel metric 1024 pref medium
default via fe80::42ee:ddff:fe60:1d9d dev wlxcdddddddd proto ra metric 20600 pref medium
~~~~

这个里面,除了 2001 开头的那个地址后面的 ddddd 的内容我是改过的(为保护隐私),其他我没动过。
@ChaosAttractor 谢谢你的回复,你这回复内容太丰富了。我一块一块回答一下:

我这个校园网,基本上是房间里面有物理网线口,物理网线口上面,我接了一个 tplink 的无线路由器 WLAN 口,然后无线路由器下面我是挂了一些无线设备,比如设备 1:Windows10 的笔记本电脑,设备 2:Linux ( ubuntu22 )的电脑,设备 3:Android 的手机。

tplink 的无线路由器里面,ipv4 的地址是 DHCP 自动分配模式,ipv6 的设置选项,我是根据 tplink 官网介绍的,设置为桥接模式。

我现在的情况是:

Windows10 的笔记本,可以分配到 ipv6 的地址,ipv6 的地址开头是 2001:xxxx 后面我这些 ddddd 的东西,主要是为了保护隐私,我在 v2 网站发帖的时候改掉的,实际上是一个正常的 ipv6 的全局地址。然后 Windows10 的笔记本可以正常通过 ipv6 上网,我可以 ping 一些 ipv6 的网站,比如 ping ipv6.baidu.com 都是正常的,用专门测试 ipv6 连接的网页,测试也都全部通过。

但是我的 Linux 电脑,虽然也能获取到一个 2001 开头的 ipv6 地址,就是死活不能通过 ipv6 上网。

我也试了我的 Android 手机,也不能通过 ipv6 上网( ipv6 的测试网页都是测试失败的)。


同样一台一模一样型号的 tplink 无线路由器(固件也一样),我在别的地方使用,在 tplink 无线路由器的前面(上一级)我是接了一个 openwrt 的拨号设备,我看了一下,这种情况下 tplink 后面挂的无论是 windows ,还是 linux ,还是 android ,都是可以正常使用 ipv6 网络的。

所以我的怀疑是我们的校园网的最顶端的路由器有点问题。但是也不知道怎么去解决。按我的理解,为啥 Windows 下可以用,但是 Linux 下就不行呢。( Android 是一种 Linux )。

我后续再回复你的其他问题。
我又继续分析了一下,如下的 tracepath 命令

~~~~
$ tracepath -6 fe80::82ea:7ff:febd:ee50
1?: [LOCALHOST] 0.028ms pmtu 1500
1: fe80::82ea:7ff:febd:ee50%wlxc83a35c042a2 123.421ms reached
1: fe80::82ea:7ff:febd:ee50%wlxc83a35c042a2 46.814ms reached
Resume: pmtu 1500 hops 1 back 1


$ tracepath -6 fe80::42ee:ddff:fe60:1d9d
1?: [LOCALHOST] 0.013ms pmtu 1500
1: no reply
2: no reply
3: no reply
4: no reply
5: no reply
^C
~~~~

上面这两个命令很奇怪,第一个命令,这个尾巴是 ee50 的 ipv6 地址,实际上是我的 bridge 模式的无线路由器的 LAN 口的 ipv6 的 Local Link 的地址
这个尾巴是 1d9d 的 ipv6 的地址,实际上是上级路由器分配给我的 ubuntu 电脑的网关地址。我就觉得很奇怪,为啥网关是无法 ping 通的,反而是桥接模式的无线路由可以访问到。正常来说网关应该直接 ping 到才对。
@feedcode 谢谢,我试了一下,似乎还是不行。

我用的是如下命令:

ip -6 route replace default via fe80::82ea:7ff:febd:ee50 dev wlxc83a35c042a2


而且我看了一下, 这个地址 fe80::82ea:7ff:febd:ee50 实际上就是我的无线路由器的 ipv6 的 LAN 的端口的本地地址,这个在无线路由器的管理 web 界面的 ipv6 相关配置的地方能看到。

以上命令运行完了之后,还是 ipv6 的网站都没法 ping ,也没法访问 ipv6 的网站。
我还修改了另外一个选项:

~~~~
/etc/netplan$ cat 01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
wlxcddddddddddd:
accept-ra: false
~~~~

这里我模仿了此链接:
IPv6 over PPPoe? - Ask Ubuntu — https://askubuntu.com/questions/56890/ipv6-over-pppoe

但是好像关闭掉 ra ,也没能解决我的问题

哦,我看了一下, 这个 ff02::1 和 ff02::2 是两个广播地址,能 ping 通这两个广播地址能说明什么问题?
@feedcode

我一直在折腾这个问题,你这个 ping 的问题,我看了一下,似乎是可以 ping 通的,如下的结果:

~~~~
ping6 -I wlxcddddddddddd ff02::1
ping6: Warning: source address might be selected on device other than: wlxcddddddddddd
PING ff02::1(ff02::1) from :: wlxcddddddddddd: 56 data bytes
64 bytes from fe80::9b9f:7ce6:bd5c:d445%wlxcddddddddddd: icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from fe80::82ea:7ff:febd:ee50%wlxcddddddddddd: icmp_seq=1 ttl=64 time=541 ms
64 bytes from fe80::9b9f:7ce6:bd5c:d445%wlxcddddddddddd: icmp_seq=2 ttl=64 time=0.023 ms
64 bytes from fe80::82ea:7ff:febd:ee50%wlxcddddddddddd: icmp_seq=2 ttl=64 time=4.34 ms
64 bytes from fe80::9b9f:7ce6:bd5c:d445%wlxcddddddddddd: icmp_seq=3 ttl=64 time=0.023 ms


ping6 -I wlxcddddddddddd ff02::2
ping6: Warning: source address might be selected on device other than: wlxcddddddddddd
PING ff02::2(ff02::2) from :: wlxcddddddddddd: 56 data bytes
64 bytes from fe80::82ea:7ff:febd:ee50%wlxcddddddddddd: icmp_seq=1 ttl=64 time=13.0 ms
64 bytes from fe80::82ea:7ff:febd:ee50%wlxcddddddddddd: icmp_seq=2 ttl=64 time=12.0 ms
64 bytes from fe80::82ea:7ff:febd:ee50%wlxcddddddddddd: icmp_seq=3 ttl=64 time=8.16 ms
64 bytes from fe80::82ea:7ff:febd:ee50%wlxcddddddddddd: icmp_seq=4 ttl=64 time=5.05 ms
64 bytes from fe80::82ea:7ff:febd:ee50%wlxcddddddddddd: icmp_seq=5 ttl=64 time=2.98 ms
~~~~

请问这个 ff02::1 和 ff02::2 是什么东西?
补充几个信息:

1 ,我的 ubuntu 里面没有防火墙,防火墙的状态是 disable 的状态

2 ,我设置了 “禁用 IPv6 隐私扩展”,设置如下:

net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0

然后重启了电脑,但是结果还是一样的,还是不能 ipv6 上网。
@feedcode

看起来好像不行,你提供的这个命令,我把 eth0 改成了我自己的那个 interface 的名字,但是提示有问题,我最终使用的是如下命令:


ping6 ff02::1
PING ff02::1(ff02::1) 56 data bytes
^C
--- ff02::1 ping statistics ---
13 packets transmitted, 0 received, 100% packet loss, time 12273ms

似乎没有办法 ping
@yyzh

你好,谢谢,我这个路由器,我看了一下,因为 wlan 口的 ipv4 的地址,是通过自动获取 ip 地址的方式得到的。

然后根据路由器的设置手册,我这个 ipv6 的地址获取方式,只能通过桥模式来获得,见如下说明:

家用路由器 IPv6 上网设置方法 - TP-LINK 商用网络 — https://smb.tp-link.com.cn/service/detail_article_4739.html

在这种桥模式下面,我无法设置 SLAAC 这种方式。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2794 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 06:37 · PVG 14:37 · LAX 23:37 · JFK 02:37
Developed with CodeLauncher
♥ Do have faith in what you're doing.