Radvd向android发送了错误的RA

时间:2018-03-29 17:27:34

标签: android ipv6 radvd

我有小米Redmi 4X,拥有Android 8.1.0 AospExtended-v5.3-OFFICIAL(但它也不适用于没有root的Android 7上的小米Redmi 4X版本。)

我在Raspberry Pi(启用转发)和IPv6 Hurricane隧道上设置了RADVD。 我的桌面和笔记本电脑与Archlinux完美配合使用IPv6(DualStack和仅限IPv6),但是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 route 的输出为空。

我尝试了像AdvOtherConfigFlag,AdvManagedFlag,AdvHomeAgentFlag和其他人一样的不同flags但它错了 - Android获得IPv6,可以ping fe80 ::,但无法ping IPv6.

当我在本地网络上禁用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地址。

我在Raspberry Pi上的radvd.conf

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?

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

3周后我找到了解决方案!问题出现在我的路由器中TPLink H-Ver = WR841N v8 00000000:S-Ver = 3.16.9 Build 170210 Rel.42078n(最后一个固件)。

IPv6不使用Wi-Fi设备机器人,不同Linux的笔记本电脑。但是笔记本电脑可以与以太网连接一起使用!

当我用另一台路由器更换路由器时,Androids和其他Wi-Fi设备获得IPv6,打开IPv6站点并获利!

我认为我的TPlink不支持IPv6因为它已经很老了。