V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
linxy19957
V2EX  ›  OpenWrt

openwrt 的 ipv6 设置问题

  •  
  •   linxy19957 · 2015-04-23 23:11:53 +08:00 · 1011 次点击
    这是一个创建于 3498 天前的主题,其中的信息可能已经有所发展或是发生改变。

    学校的原生v6双栈
    路由器拿到了2001开头的64位地址和fe80开头的网关地址,可以连接到ipv6的internet
    openwrt是两个月前编译的trunk版
    安装了6relayd(2013-10-21)把dhcpv6、rd、ndp都设置成relay
    ifconfig
    br-lan
    inet6 addr: 2001:250:1006:dff0:79e0:xxxx:b7da:a94e/64 Scope:Global
    inet6 addr: fe80::2076:93ff:fe28:57b4/64 Scope:Link
    pppoe-wan
    inet6 addr: fe80::79e0:4458:b7da:a94e/10 Scope:Link
    inet6 addr: 2001:250:1006:dff0:79e0:xxxx:b7da:a94e/64 Scope:Global

    lan和wan的ipv6地址是一样的,这有问题吗?

    执行ip -6 route结果是
    default from :: via fe80::da49:bff:feb5:7c55 dev pppoe-wan proto static metric 1024
    default from 2001:250:1006:dff0::/64 via fe80::da49:bff:feb5:7c55 dev pppoe-wan proto static metric 1024
    2001:250:1006:dff0::/64 dev pppoe-wan proto static metric 256
    2001:250:1006:dff0::/64 dev br-lan proto kernel metric 256 expires 259097sec
    fe80::/64 dev eth0 proto kernel metric 256
    fe80::/64 dev br-lan proto kernel metric 256
    fe80::/64 dev eth0.2 proto kernel metric 256
    fe80::/10 dev pppoe-wan metric 1
    fe80::/10 dev pppoe-wan proto kernel metric 256

    ip -6 neigh的结果是
    fe80::6026:d44:7b3b:c73b dev br-lan lladdr 74:86:7a:13:0b:5b REACHABLE

    客户机可以拿到2001开头的、与路由器不同的ipv6地址,但是无法ping通ipv6.google.com,tracert的结果从第一跳开始就是请求超时
    用odhcpd结果基本一致,看到有人说odhcpd和6relayd会冲突,我就把odhcpd卸载了,结果依旧

    大神们帮忙看看这是什么问题

    8 条回复    2015-04-25 18:30:53 +08:00
    pagxir
        1
    pagxir  
       2015-04-24 00:38:29 +08:00
    你确定你们学校分配的IPv6地址是 /64 的么?如果不是的话,而是只有一个v6地址,得用NAT6的了。不过这种问题不难处理,自己抓包调一下就知道了。
    linxy19957
        2
    linxy19957  
    OP
       2015-04-24 09:25:03 +08:00
    @pagxir 感谢你的回答,wan口拿到的地址是/64的,我想应该就是了吧
    抓包的结果有来自路由器的NA和NS,但是没有RS和RA,这大概是哪里的问题呢?
    linxy19957
        3
    linxy19957  
    OP
       2015-04-24 13:25:27 +08:00
    @pagxir 更正一下,我这次抓包等了很久,发现是有RA的,只是等很久才有一个而已
    pagxir
        4
    pagxir  
       2015-04-24 13:36:42 +08:00
    1、准备一个IPv6的VPS, 在VPS上听包。
    2、尝试在客户机执行ping6, 对VPS的v6地址发送ping6包。
    3、确认VPS上是否没有接收到PING包。
    4、客户端抓包,看看链路层目的 MAC是否是openwrt的LAN口的MAC.
    5、openwrt在LAN听包,确认LAN口收到了客户机器的PING6包。
    6、openwrt上在WAN口听包,确认客户机的PING6包已经由WAN出去。

    7、openwrt上的WAN口抓包。
    8、VPS上向openwrt的V6地址发送PING6包。
    9、VPS上向客户机器的V6地址发送PING6包。
    x、看openwrt是否听到PING6的包。

    另外,请确认客户端的防火墙是关闭的。
    linxy19957
        5
    linxy19957  
    OP
       2015-04-25 15:18:24 +08:00
    @pagxir 在客户端上发送ping请求,抓包结果显示lan收到了请求,并从wan发送了出去,wan口没有收到回复,服务器也没有收到请求
    在openwrt上发送ping请求,请求从wan发送了出去,并且收到了服务器的回复
    pagxir
        6
    pagxir  
       2015-04-25 18:27:17 +08:00
    说明的客户机拿到的IPv6地址有问题,无法路由出去,所以你得NAT6.
    pagxir
        7
    pagxir  
       2015-04-25 18:29:02 +08:00
    顺便问一句,你的 openwrt 和 客户机拿到前面64位是否是一样的。
    linxy19957
        8
    linxy19957  
    OP
       2015-04-25 18:30:53 +08:00
    @pagxir 是的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.