找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 13507|回复: 5

Openwrt下如何更改6to4 relay router

[复制链接]
chinajx_dyc 发表于 2012-11-13 22:58:20 | 显示全部楼层 |阅读模式
Buffalo WHR-G300Nv2 刷了Openwrt AA beta2之后
参照官方Wiki上的6to4 tunnel设置之后
http://wiki.openwrt.org/doc/howto/ipv6#to4.6rd
内网中的主机都能上IPv6
但是想换成上交的6to4隧道,找了半天,没有找到设置6to4 relay router的位置
在内网机器上tracert cgbt.cn如下
  1.   1    12 ms    17 ms     5 ms  2002:b7db:cb55:1::1
  2.   2    54 ms    59 ms    55 ms  2002:c058:6301::1
  3.   3   143 ms    76 ms    72 ms  gige-g4-17.core1.hkg1.he.net [2001:470:0:252::1]

  4.   4    86 ms     *      113 ms  cernet-RGE.hkix.net [2001:7fa:0:1::ca28:a1be]
  5.   5   136 ms   139 ms   132 ms  2001:252:0:101::1
  6.   6   150 ms   126 ms   143 ms  2001:252:0:1::1
  7.   7   139 ms   141 ms   152 ms  2001:da8:1:1c::2
  8.   8   165 ms   152 ms     *     2001:da8:1:20e::2
  9.   9   126 ms   137 ms   131 ms  cernet2.net [2001:da8:ad:1000::2]
  10. 10     *        *        *     请求超时。
  11. 11     *      134 ms     *     2001:250:202:60::1
  12. 12   124 ms   138 ms   125 ms  2001:250:202:70::2
  13. 13   125 ms   124 ms   135 ms  2001:da8:205::100
复制代码
tracert ipv6.google.com
  1.   1     3 ms     2 ms     6 ms  2002:b7db:cb55:1::1
  2.   2    50 ms    51 ms    53 ms  2002:c058:6301::1
  3.   3    44 ms    48 ms    53 ms  gige-g4-17.core1.hkg1.he.net [2001:470:0:252::1]

  4.   4    51 ms    47 ms    49 ms  google3-10G.hkix.net [2001:7fa:0:1::ca28:a10a]
  5.   5    65 ms    49 ms    44 ms  2001:4860::1:0:16
  6.   6    52 ms    46 ms    52 ms  2001:4860::2:0:119b
  7.   7     *        *        *     请求超时。
  8.   8    46 ms    47 ms    50 ms  2404:6800:4005:c00::67
复制代码
怎么默认走的是HE的通道?

ipconfig /all
  1. Windows IP 配置

  2.    主机名  . . . . . . . . . . . . . : dyc-PC
  3.    主 DNS 后缀 . . . . . . . . . . . :
  4.    节点类型  . . . . . . . . . . . . : 混合
  5.    IP 路由已启用 . . . . . . . . . . : 否
  6.    WINS 代理已启用 . . . . . . . . . : 否
  7.    DNS 后缀搜索列表  . . . . . . . . : lan

  8. 以太网适配器 本地连接:

  9.    媒体状态  . . . . . . . . . . . . : 媒体已断开
  10.    连接特定的 DNS 后缀 . . . . . . . :
  11.    描述. . . . . . . . . . . . . . . : Atheros AR8151 PCI-E Gigabit Ethernet Con
  12. troller
  13.    物理地址. . . . . . . . . . . . . : C8-0A-A9-8D-9F-47
  14.    DHCP 已启用 . . . . . . . . . . . : 是
  15.    自动配置已启用. . . . . . . . . . : 是

  16. 以太网适配器 Bluetooth 网络连接:

  17.    媒体状态  . . . . . . . . . . . . : 媒体已断开
  18.    连接特定的 DNS 后缀 . . . . . . . :
  19.    描述. . . . . . . . . . . . . . . : Bluetooth 设备(个人区域网)
  20.    物理地址. . . . . . . . . . . . . : F0-7B-CB-E2-6E-0F
  21.    DHCP 已启用 . . . . . . . . . . . : 是
  22.    自动配置已启用. . . . . . . . . . : 是

  23. 无线局域网适配器 无线网络连接:

  24.    连接特定的 DNS 后缀 . . . . . . . : lan
  25.    描述. . . . . . . . . . . . . . . : Qualcomm Atheros AR5B93 Wireless Network
  26. Adapter
  27.    物理地址. . . . . . . . . . . . . : C4-46-19-0B-F4-D8
  28.    DHCP 已启用 . . . . . . . . . . . : 是
  29.    自动配置已启用. . . . . . . . . . : 是
  30.    IPv6 地址 . . . . . . . . . . . . : 2002:b7db:cb55:1:84da:16bb:5eae:ce92(首选
  31. )
  32.    临时 IPv6 地址. . . . . . . . . . : 2002:b7db:cb55:1:c49e:a970:e334:5bb5(首选
  33. )
  34.    本地链接 IPv6 地址. . . . . . . . : fe80::84da:16bb:5eae:ce92%11(首选)
  35.    IPv4 地址 . . . . . . . . . . . . : 192.168.1.196(首选)
  36.    子网掩码  . . . . . . . . . . . . : 255.255.255.0
  37.    获得租约的时间  . . . . . . . . . : 2012年11月13日 20:52:36
  38.    租约过期的时间  . . . . . . . . . : 2012年11月14日 9:42:03
  39.    默认网关. . . . . . . . . . . . . : fe80::126f:3fff:fe38:914a%11
  40.                                        192.168.1.1
  41.    DHCP 服务器 . . . . . . . . . . . : 192.168.1.1
  42.    DNS 服务器  . . . . . . . . . . . : 192.168.1.1
  43.    TCPIP 上的 NetBIOS  . . . . . . . : 已启用

  44. 无线局域网适配器 无线网络连接 4:

  45.    媒体状态  . . . . . . . . . . . . : 媒体已断开
  46.    连接特定的 DNS 后缀 . . . . . . . :
  47.    描述. . . . . . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter
  48.    物理地址. . . . . . . . . . . . . : 26-46-19-0B-F4-D8
  49.    DHCP 已启用 . . . . . . . . . . . : 否
  50.    自动配置已启用. . . . . . . . . . : 是

  51. 以太网适配器 VirtualBox Host-Only Network:

  52.    连接特定的 DNS 后缀 . . . . . . . :
  53.    描述. . . . . . . . . . . . . . . : VirtualBox Host-Only Ethernet Adapter
  54.    物理地址. . . . . . . . . . . . . : 08-00-27-00-44-5F
  55.    DHCP 已启用 . . . . . . . . . . . : 否
  56.    自动配置已启用. . . . . . . . . . : 是
  57.    本地链接 IPv6 地址. . . . . . . . : fe80::8995:a044:c488:3066%32(首选)
  58.    IPv4 地址 . . . . . . . . . . . . : 192.168.56.1(首选)
  59.    子网掩码  . . . . . . . . . . . . : 255.255.255.0
  60.    默认网关. . . . . . . . . . . . . :
  61.    DHCPv6 IAID . . . . . . . . . . . : 973602855
  62.    DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-16-9E-15-7D-C4-46-19-0B-F4-D8

  63.    DNS 服务器  . . . . . . . . . . . : fec0:0:0:ffff::1%1
  64.                                        fec0:0:0:ffff::2%1
  65.                                        fec0:0:0:ffff::3%1
  66.    TCPIP 上的 NetBIOS  . . . . . . . : 已启用

  67. 隧道适配器 Teredo Tunneling Pseudo-Interface:

  68.    媒体状态  . . . . . . . . . . . . : 媒体已断开
  69.    连接特定的 DNS 后缀 . . . . . . . :
  70.    描述. . . . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
  71.    物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
  72.    DHCP 已启用 . . . . . . . . . . . : 否
  73.    自动配置已启用. . . . . . . . . . : 是

  74. 隧道适配器 Reusable ISATAP Interface {6D90DA86-72BA-4C26-9ED3-83D9277AA09A}:

  75.    媒体状态  . . . . . . . . . . . . : 媒体已断开
  76.    连接特定的 DNS 后缀 . . . . . . . :
  77.    描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #3
  78.    物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
  79.    DHCP 已启用 . . . . . . . . . . . : 否
  80.    自动配置已启用. . . . . . . . . . : 是

  81. 隧道适配器 isatap.{6BAFB2E4-B37D-440C-B482-5227847135AB}:

  82.    媒体状态  . . . . . . . . . . . . : 媒体已断开
  83.    连接特定的 DNS 后缀 . . . . . . . :
  84.    描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #4
  85.    物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
  86.    DHCP 已启用 . . . . . . . . . . . : 否
  87.    自动配置已启用. . . . . . . . . . : 是

  88. 隧道适配器 isatap.lan:

  89.    连接特定的 DNS 后缀 . . . . . . . : lan
  90.    描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #6
  91.    物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
  92.    DHCP 已启用 . . . . . . . . . . . : 否
  93.    自动配置已启用. . . . . . . . . . : 是
  94.    本地链接 IPv6 地址. . . . . . . . : fe80::5efe:192.168.1.196%36(首选)
  95.    默认网关. . . . . . . . . . . . . :
  96.    DNS 服务器  . . . . . . . . . . . : 192.168.1.1
  97.    TCPIP 上的 NetBIOS  . . . . . . . : 已禁用

  98. 隧道适配器 isatap.{F6FBDE01-BDD4-4D18-BD43-C7638AB708C8}:

  99.    连接特定的 DNS 后缀 . . . . . . . :
  100.    描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #5
  101.    物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
  102.    DHCP 已启用 . . . . . . . . . . . : 否
  103.    自动配置已启用. . . . . . . . . . : 是
  104.    本地链接 IPv6 地址. . . . . . . . : fe80::5efe:192.168.56.1%34(首选)
  105.    默认网关. . . . . . . . . . . . . :
  106.    DNS 服务器  . . . . . . . . . . . : fec0:0:0:ffff::1%1
  107.                                        fec0:0:0:ffff::2%1
  108.                                        fec0:0:0:ffff::3%1
  109.    TCPIP 上的 NetBIOS  . . . . . . . : 已禁用
复制代码
netsh interface ipv6 show route
  1. 发布    类型     跃点数 前缀                     索引 网关/接口名称
  2. ------- -------- ---    ------------------------ --- ------------------------
  3. 否        手动        256  ::/0                       11  fe80::126f:3fff:fe38:914a
  4. 否        手动        256  ::1/128                     1  Loopback Pseudo-Interface 1
  5. 否        手动        8    2002:b7db:cb55:1::/64      11  无线网络连接
  6. 否        手动        256  2002:b7db:cb55:1:84da:16bb:5eae:ce92/128   11  无线网络连接
  7. 否        手动        256  2002:b7db:cb55:1:c49e:a970:e334:5bb5/128   11  无线网络连接
  8. 否        手动        256  fe80::/64                  14  Teredo Tunneling Pseudo-Interface
  9. 否        手动        256  fe80::/64                  32  VirtualBox Host-Only Network
  10. 否        手动        256  fe80::/64                  15  本地连接
  11. 否        手动        256  fe80::/64                  13  Bluetooth 网络连接
  12. 否        手动        256  fe80::/64                  11  无线网络连接
  13. 否        手动        256  fe80::/64                  25  无线网络连接 4
  14. 否        手动        256  fe80::100:7f:fffe/128      14  Teredo Tunneling Pseudo-Interface
  15. 否        手动        256  fe80::5efe:192.168.1.196/128   36  isatap.lan
  16. 否        手动        256  fe80::5efe:192.168.56.1/128   34  isatap.{F6FBDE01-BDD4-4D18-BD43-C7638AB708C8}
  17. 否        手动        256  fe80::5c8:cc21:56be:4782/128   13  Bluetooth 网络连接

  18. 否        手动        256  fe80::3989:4b2f:5c4:f454/128   15  本地连接
  19. 否        手动        256  fe80::84da:16bb:5eae:ce92/128   11  无线网络连接
  20. 否        手动        256  fe80::8995:a044:c488:3066/128   32  VirtualBox Host-Only Network
  21. 否        手动        256  fe80::f594:4f93:dca7:be4b/128   25  无线网络连接 4
  22. 否        手动        256  ff00::/8                    1  Loopback Pseudo-Interface 1
  23. 否        手动        256  ff00::/8                   14  Teredo Tunneling Pseudo-Interface
  24. 否        手动        256  ff00::/8                   32  VirtualBox Host-Only Network
  25. 否        手动        256  ff00::/8                   15  本地连接
  26. 否        手动        256  ff00::/8                   13  Bluetooth 网络连接
  27. 否        手动        256  ff00::/8                   11  无线网络连接
  28. 否        手动        256  ff00::/8                   25  无线网络连接 4
复制代码
满天星 发表于 2012-11-14 15:44:20 | 显示全部楼层
没用过OP上的6to4,应该是OP上面的6to4软件包默认封装的就是HE.NET的tunnel,我猜测可能需要自己修改source code或相关的配置文件吧。你找找看是否有相关的配置,如没有只能找找source code了
回复

使用道具 举报

 楼主| chinajx_dyc 发表于 2012-11-14 18:57:44 | 显示全部楼层
满天星 发表于 2012-11-14 15:44
没用过OP上的6to4,应该是OP上面的6to4软件包默认封装的就是HE.NET的tunnel,我猜测可能需要自己修改source  ...

这个是6to4包里面提取出来的脚本
  1. #!/bin/sh
  2. # 6to4.sh - IPv6-in-IPv4 tunnel backend
  3. # Copyright (c) 2010-2012 OpenWrt.org

  4. [ -n "$INCLUDE_ONLY" ] || {
  5.         . /lib/functions.sh
  6.         . /lib/functions/network.sh
  7.         . ../netifd-proto.sh
  8.         init_proto "$@"
  9. }

  10. find_6to4_prefix() {
  11.         local ip4="$1"
  12.         local oIFS="$IFS"; IFS="."; set -- $ip4; IFS="$oIFS"

  13.         printf "2002:%02x%02x:%02x%02x\n" $1 $2 $3 $4
  14. }

  15. test_6to4_rfc1918()
  16. {
  17.         local oIFS="$IFS"; IFS="."; set -- $1; IFS="$oIFS"
  18.         [ $1 -eq  10 ] && return 0
  19.         [ $1 -eq 192 ] && [ $2 -eq 168 ] && return 0
  20.         [ $1 -eq 172 ] && [ $2 -ge  16 ] && [ $2 -le  31 ] && return 0

  21.         # RFC 6598
  22.         [ $1 -eq 100 ] && [ $2 -ge  64 ] && [ $2 -le 127 ] && return 0

  23.         return 1
  24. }

  25. set_6to4_radvd_interface() {
  26.         local cfgid="$1"
  27.         local lanif="${2:-lan}"
  28.         local ifmtu="${3:-1280}"
  29.         local ifsection=""

  30.         find_ifsection() {
  31.                 local net
  32.                 local cfg="$1"
  33.                 config_get net "$cfg" interface

  34.                 [ "$net" = "$lanif" ] && {
  35.                         ifsection="$cfg"
  36.                         return 1
  37.                 }
  38.         }

  39.         config_foreach find_ifsection interface

  40.         [ -z "$ifsection" ] && {
  41.                 ifsection="iface_$sid"
  42.                 uci_set_state radvd "$ifsection" "" interface
  43.                 uci_set_state radvd "$ifsection" interface "$lanif"
  44.         }

  45.         uci_set_state radvd "$ifsection" ignore            0
  46.         uci_set_state radvd "$ifsection" IgnoreIfMissing   1
  47.         uci_set_state radvd "$ifsection" AdvSendAdvert     1
  48.         uci_set_state radvd "$ifsection" MaxRtrAdvInterval 30
  49.         uci_set_state radvd "$ifsection" AdvLinkMTU        "$ifmtu"
  50. }

  51. set_6to4_radvd_prefix() {
  52.         local cfgid="$1"
  53.         local lanif="${2:-lan}"
  54.         local wanif="${3:-wan}"
  55.         local prefix="${4:-0:0:0:1::/64}"
  56.         local vlt="${5:-300}"
  57.         local plt="${6:-120}"
  58.         local pfxsection=""

  59.         find_pfxsection() {
  60.                 local net base
  61.                 local cfg="$1"
  62.                 config_get net  "$cfg" interface
  63.                 config_get base "$cfg" Base6to4Interface

  64.                 [ "$net" = "$lanif" ] && [ "$base" = "$wanif" ] && {
  65.                         pfxsection="$cfg"
  66.                         return 1
  67.                 }
  68.         }

  69.         config_foreach find_pfxsection prefix

  70.         [ -z "$pfxsection" ] && {
  71.                 pfxsection="prefix_${sid}_${lanif}"
  72.                 uci_set_state radvd "$pfxsection" ""                   prefix
  73.                 uci_set_state radvd "$pfxsection" ignore               0
  74.                 uci_set_state radvd "$pfxsection" interface            "$lanif"
  75.                 uci_set_state radvd "$pfxsection" prefix               "$prefix"
  76.                 uci_set_state radvd "$pfxsection" AdvOnLink            1
  77.                 uci_set_state radvd "$pfxsection" AdvAutonomous        1
  78.                 uci_set_state radvd "$pfxsection" AdvValidLifetime     "$vlt"
  79.                 uci_set_state radvd "$pfxsection" AdvPreferredLifetime "$plt"
  80.                 uci_set_state radvd "$pfxsection" Base6to4Interface    "$wanif"
  81.         }
  82. }

  83. proto_6to4_setup() {
  84.         local cfg="$1"
  85.         local iface="$2"
  86.         local link="6to4-$cfg"

  87.         local mtu ttl ipaddr adv_subnet adv_interface adv_valid_lifetime adv_preferred_lifetime
  88.         json_get_vars mtu ttl ipaddr adv_subnet adv_interface adv_valid_lifetime adv_preferred_lifetime

  89.         ( proto_add_host_dependency "$cfg" 0.0.0.0 )

  90.         local wanif
  91.         if ! network_find_wan wanif; then
  92.                 proto_notify_error "$cfg" "NO_WAN_LINK"
  93.                 return
  94.         fi

  95.         [ -z "$ipaddr" ] && {
  96.                 if ! network_get_ipaddr ipaddr "$wanif"; then
  97.                         proto_notify_error "$cfg" "NO_WAN_ADDRESS"
  98.                         return
  99.                 fi
  100.         }

  101.         test_6to4_rfc1918 "$ipaddr" && {
  102.                 proto_notify_error "$cfg" "INVALID_LOCAL_ADDRESS"
  103.                 return
  104.         }

  105.         # find our local prefix
  106.         local prefix6=$(find_6to4_prefix "$ipaddr")
  107.         local local6="$prefix6::1"

  108.         proto_init_update "$link" 1
  109.         proto_add_ipv6_address "$local6" 16
  110.         proto_add_ipv6_route "::" 0 "::192.88.99.1"

  111.         proto_add_tunnel
  112.         json_add_string mode sit
  113.         json_add_int mtu "${mtu:-1280}"
  114.         json_add_int ttl "${ttl:-64}"
  115.         json_add_string local "$ipaddr"
  116.         proto_close_tunnel

  117.         proto_send_update "$cfg"

  118.         [ -f /etc/config/radvd ] && /etc/init.d/radvd enabled && {
  119.                 local sid="6to4_$cfg"

  120.                 uci_revert_state radvd
  121.                 config_load radvd

  122.                 adv_subnet=$((0x${adv_subnet:-1}))

  123.                 local adv_subnets=""

  124.                 for adv_interface in ${adv_interface:-lan}; do
  125.                         local adv_ifname
  126.                         network_get_device adv_ifname "${adv_interface:-lan}" || continue

  127.                         local subnet6="$(printf "%s:%x::1/64" "$prefix6" $adv_subnet)"

  128.                         logger -t "$link" " * Advertising IPv6 subnet $subnet6 on ${adv_interface:-lan} ($adv_ifname)"
  129.                         ip -6 addr add $subnet6 dev $adv_ifname

  130.                         set_6to4_radvd_interface "$sid" "$adv_interface" "$mtu"
  131.                         set_6to4_radvd_prefix    "$sid" "$adv_interface" \
  132.                                 "$wanif" "$(printf "0:0:0:%x::/64" $adv_subnet)" \
  133.                                 "$adv_valid_lifetime" "$adv_preferred_lifetime"

  134.                         adv_subnets="${adv_subnets:+$adv_subnets }$adv_ifname:$subnet6"
  135.                         adv_subnet=$(($adv_subnet + 1))
  136.                 done

  137.                 uci_set_state network "$cfg" adv_subnets "$adv_subnets"

  138.                 /etc/init.d/radvd restart
  139.         }
  140. }

  141. proto_6to4_teardown() {
  142.         local cfg="$1"
  143.         local link="6to4-$cfg"

  144.         local adv_subnets=$(uci_get_state network "$cfg" adv_subnets)

  145.         grep -qs "^ *$link:" /proc/net/dev && {
  146.                 [ -n "$adv_subnets" ] && {
  147.                         uci_revert_state radvd
  148.                         /etc/init.d/radvd enabled && /etc/init.d/radvd restart
  149.                 }
  150.         }
  151. }

  152. proto_6to4_init_config() {
  153.         no_device=1
  154.         available=1

  155.         proto_config_add_string "ipaddr"
  156.         proto_config_add_int "mtu"
  157.         proto_config_add_int "ttl"
  158.         proto_config_add_string "adv_interface"
  159.         proto_config_add_string "adv_subnet"
  160.         proto_config_add_int "adv_valid_lifetime"
  161.         proto_config_add_int "adv_preferred_lifetime"
  162. }

  163. [ -n "$INCLUDE_ONLY" ] || {
  164.         add_protocol 6to4
  165. }
复制代码
附上6to4包
http://downloads.openwrt.org/att ... s/6to4_11-1_all.ipk
回复

使用道具 举报

满天星 发表于 2012-11-14 19:45:18 | 显示全部楼层
shell脚本中135行:proto_add_ipv6_route "::" 0 "::192.88.99.1"
定义了6to4 relay的地址,请注意这个特殊的地址:192.88.99.0/24,是IANA分配的一个6to4 anycast前缀,专门用于IPV6的6to4自动隧道地址,而对应的ipv6 anycast地址为2002:C058:6301::
anycast可以自动选择最近的router来作为relay,而走HE.NET的tunnel了,也许该路径就是你所在网络的最佳方式。
如你一定要手工修改,可以尝试下,不确定现在Cernet上的6to4 relay服务是否都还可用,请自行验证!
回复

使用道具 举报

 楼主| chinajx_dyc 发表于 2012-11-14 20:54:37 | 显示全部楼层
满天星 发表于 2012-11-14 19:45
shell脚本中135行:proto_add_ipv6_route "::" 0 "::192.88.99.1"
定义了6to4 relay的地址,请注意这个特殊 ...

噢,那nat后的主机为什么也能获取2002:段的ipv6地址呢
回复

使用道具 举报

满天星 发表于 2012-11-16 00:37:06 | 显示全部楼层
废话,获取不到2002的地址,那还relay个毛线啊!
里面shell脚本里面写了,启用了radvd发布prefix,自己看吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|IPv6BBS ( 京ICP备13024693号 | 京公网安备11010802012238 )

GMT+8, 2024-4-29 07:57 , Processed in 0.036830 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表