Radvd 将错误的 RA 发送到 android
Radvd sends wrong RA to android
我的小米 Redmi 4X 已 root Android 8.1.0 AospExtended-v5.3-OFFICIAL(但它也不适用于小米 Redmi 4X - 在 Android 7 上没有 root ).
我在 Raspberry Pi(启用转发)和 IPv6 Hurricane 隧道上设置了 RADVD。
我的台式机和笔记本电脑与 Archlinux 完美配合 IPv6(DualStack 和 IPv6-only)但是 2 小米不工作(有 root 和没有它)虽然有两个 IPv6 地址(临时)和 SLAAC 与 EUI-64。
这些地址来自我的 /64 前缀。 我可以使用 fe80:: 从桌面 ping 它,并且可以从 Androids.
ping 桌面
但我 无法 ping Goolge DNS (2001:4860:4860::8888) 和其他 IPv6 地址。
Adnroid 从 RADVD 获取 IPv6:
ip -6 addr
26: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 11:22:33:44:55:66 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.111/24 brd 192.168.0.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 2001:470:****:****:1234:1234:1234:1234/64 scope global temporary dynamic
valid_lft 86382sec preferred_lft 14382sec
inet6 2001:470:****:****:1122:33ff:fe44:5566/64 scope global mngtmpaddr dynamic
valid_lft 86382sec preferred_lft 14382sec
inet6 fe80::1122:33ff:fe44:5566/64 scope link
valid_lft forever preferred_lft forever
ip -6 路由 的输出为空。
我尝试了不同的 flags,例如 AdvOtherConfigFlag、AdvManagedFlag、AdvHomeAgentFlag 等,但它是错误的 - Android 获取 IPv6,可以 ping fe80::,但不能 ping IPv6 Internet。
当我在我的本地网络上禁用 RADVD 并在 root Android 上设置 IPv6 地址时手动:
ip link set dev wlan0 down
ip -6 addr add 2001:470:****:****:1234:1234:4321:4321/64 dev wlan0
ip -6 addr add 2001:470:****:****:1122:33ff:fe44:5566/64 dev wlan0
ip link set dev wlan0 up
ip -6 addr
28: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2001:470:****:****:1234:1234:4321:4321/64 scope global
valid_lft forever preferred_lft forever
inet6 2001:470:****:****:1122:33ff:fe44:5566/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::1122:33ff:fe44:5566/64 scope link
valid_lft forever preferred_lft forever
将默认路由添加到 Raspberry Pi 后:
ip -6 route add default via fe80::****:**ff:fe**:**** dev wlan0 proto
ra metric 100 pref medium
然后 ping 开始起作用了!我可以在 Android!
上 ping 并打开 IPv6 站点
如果我启用 RADVD(Android 获得两个 IPv6)并多次添加路由到 Raspberry Pi - 我无论如何都无法 ping 互联网中的 IPv6 地址。
我的 radvd.conf 在 Raspberry Pi
interface eth0 {
AdvSendAdvert on;
MinRtrAdvInterval 300;
MaxRtrAdvInterval 600;
AdvHomeAgentFlag off;
AdvManagedFlag off;
AdvOtherConfigFlag off;
prefix 2001:470:****:****::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
您怎么看:为什么 Andorid 使用手动 IPv6 而不能使用 RADVD?
感谢您的解答!
3 周后我找到了解决方案!问题出在我的路由器 TPLink H-Ver = WR841N v8 00000000 : S-Ver = 3.16.9 Build 170210 Rel.42078n(最新固件)。
IPv6 不适用于 Wi-Fi 设备 Android、具有不同 Linux 的笔记本电脑。但是笔记本电脑可以使用以太网连接!
当我用另一个路由器更换路由器时,Android 和其他 Wi-Fi 设备获得 IPv6,打开 IPv6 站点并获利!
我认为我的 TPlink 不支持 IPv6,因为它太旧了。
我的小米 Redmi 4X 已 root Android 8.1.0 AospExtended-v5.3-OFFICIAL(但它也不适用于小米 Redmi 4X - 在 Android 7 上没有 root ).
我在 Raspberry Pi(启用转发)和 IPv6 Hurricane 隧道上设置了 RADVD。 我的台式机和笔记本电脑与 Archlinux 完美配合 IPv6(DualStack 和 IPv6-only)但是 2 小米不工作(有 root 和没有它)虽然有两个 IPv6 地址(临时)和 SLAAC 与 EUI-64。
这些地址来自我的 /64 前缀。 我可以使用 fe80:: 从桌面 ping 它,并且可以从 Androids.
ping 桌面但我 无法 ping Goolge DNS (2001:4860:4860::8888) 和其他 IPv6 地址。
Adnroid 从 RADVD 获取 IPv6:
ip -6 addr
26: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 11:22:33:44:55:66 brd ff:ff:ff:ff:ff:ff inet 192.168.0.111/24 brd 192.168.0.255 scope global wlan0 valid_lft forever preferred_lft forever inet6 2001:470:****:****:1234:1234:1234:1234/64 scope global temporary dynamic valid_lft 86382sec preferred_lft 14382sec inet6 2001:470:****:****:1122:33ff:fe44:5566/64 scope global mngtmpaddr dynamic valid_lft 86382sec preferred_lft 14382sec inet6 fe80::1122:33ff:fe44:5566/64 scope link valid_lft forever preferred_lft forever
ip -6 路由 的输出为空。
我尝试了不同的 flags,例如 AdvOtherConfigFlag、AdvManagedFlag、AdvHomeAgentFlag 等,但它是错误的 - Android 获取 IPv6,可以 ping fe80::,但不能 ping IPv6 Internet。
当我在我的本地网络上禁用 RADVD 并在 root Android 上设置 IPv6 地址时手动:
ip link set dev wlan0 down
ip -6 addr add 2001:470:****:****:1234:1234:4321:4321/64 dev wlan0
ip -6 addr add 2001:470:****:****:1122:33ff:fe44:5566/64 dev wlan0
ip link set dev wlan0 up
ip -6 addr
28: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000 inet6 2001:470:****:****:1234:1234:4321:4321/64 scope global valid_lft forever preferred_lft forever inet6 2001:470:****:****:1122:33ff:fe44:5566/64 scope global valid_lft forever preferred_lft forever inet6 fe80::1122:33ff:fe44:5566/64 scope link valid_lft forever preferred_lft forever
将默认路由添加到 Raspberry Pi 后:
ip -6 route add default via fe80::****:**ff:fe**:**** dev wlan0 proto
ra metric 100 pref medium
然后 ping 开始起作用了!我可以在 Android!
上 ping 并打开 IPv6 站点如果我启用 RADVD(Android 获得两个 IPv6)并多次添加路由到 Raspberry Pi - 我无论如何都无法 ping 互联网中的 IPv6 地址。
我的 radvd.conf 在 Raspberry Pi
interface eth0 {
AdvSendAdvert on;
MinRtrAdvInterval 300;
MaxRtrAdvInterval 600;
AdvHomeAgentFlag off;
AdvManagedFlag off;
AdvOtherConfigFlag off;
prefix 2001:470:****:****::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
您怎么看:为什么 Andorid 使用手动 IPv6 而不能使用 RADVD?
感谢您的解答!
3 周后我找到了解决方案!问题出在我的路由器 TPLink H-Ver = WR841N v8 00000000 : S-Ver = 3.16.9 Build 170210 Rel.42078n(最新固件)。
IPv6 不适用于 Wi-Fi 设备 Android、具有不同 Linux 的笔记本电脑。但是笔记本电脑可以使用以太网连接!
当我用另一个路由器更换路由器时,Android 和其他 Wi-Fi 设备获得 IPv6,打开 IPv6 站点并获利!
我认为我的 TPlink 不支持 IPv6,因为它太旧了。