(19年4月)搬到新家以后办了 GMOとくとくBB 的网络,然后顺便开通了 IPv6プラス 业务,(由于没有怎么接触过 IPv6 所以刷了 OpenWrt 的 Mir3G 并不能直接用,只好用运营商给的辣鸡 NEC 的路由器。但是呢这个路由器真的真的非常难用…只能调一些没什么卵用的设置而且都必须重启才能生效…于是(到了第二年3月)就想着能不能让入土的 Mir3G 重新发挥作用呢。这篇文章简易记录了一下折腾 MAP-E 的过程,希望对后来者能起到帮助。
※、SoftBank 用户可以参考 Missing 大佬的这篇文章:
Missing’s Blog – OpenWrt桥接ONU设置SoftBank光IPv6高速ハイブリッド「IPv6 IPoE + IPv4」
0x00 事前准备
所需:一台刷了 OpenWrt 的路由器,JPNE 旗下的网络(笔者使用的是 GMOとくとくBB ) (判断自己的 VNE ( Virtual Network Enabler ) 是哪家请参见下表),一个 SSH 客户端
VNE事业者 | ISP(プロバイダー) | 业务名称(サービス名) |
---|---|---|
AsahiNet | AsahiNet | AsahiNet光/フレッツ光 |
BBIX | SoftBank | SoftBank光 / Yahoo!BB |
BIGLOBE | BIGLOBE | ビッグローブ光 / フレッツ光 |
JPNE | DMM | DMM光 |
GMO | GMOとくとくBB / ドコモ光 | |
nifty | @nifty光 / フレッツ光 | |
21IP | フレッツ光 | |
So-net |
So-net光 / フレッツ光 (v6プラス) 2018年4月17日から |
|
NTT コミュニケーションズ | OCN | OCN光 |
インターネットマルチフィード | IIJ | IIJmioひかり |
InterLink | ZOOT NATIVE | |
2018年5月18日まで |
0x01 创建 WAN6 接口及基础设置
- 连接好 WAN 口和 LAN 口的网线,然后访问 OpenWrt 的 Web LuCI 页面(通常为 192.168.1.1)
- 点击 [Network] – [Interfaces],点击 WAN6 的 Edit(如果没有的话新建一个)
点击 [General Setup] 并将 Protocol 设置为 DHCPv6 Client
点击 [Physical Settings] 确保 Bridge interfaces 为未选中状态(OFF)并将 Interface 设置为 eth0.2(可能与你的情况有出入,如果不确定可以多试几次)
点击 [Firewall Settings] 将 Create / Assign firewall-zone 设置为 wan - 点击 [Save & Apply]
0x02 WAN6 及 LAN 的 RA 等设置
- 使用 SSH 登入 OpenWrt
-
vi /etc/config/dhcp
将 lan 与 wan6 修改为如下内容 - 编辑完成后执行
uci commit /etc/config/dhcp
应用
config dhcp 'lan' option leasetime '8h' option start '100' option limit '150' list dns '2001:4860:4860::8888' #Google Public DNS list dns '2620:119:35::35' #OpenDNS option interface 'lan' option ra 'relay' option dhcpv6 'relay' option ndp 'relay' config dhcp 'wan6' option dhcpv6 'relay' option ra 'relay' option ndp 'relay' option master '1' #如果其它接口配置中有此段的话则删去其它接口中的
0x03 使用 IPoE 方式连接至 IPv6 网络
- 点击 [Network] – [Interfaces]
- 点击 WAN6 上的 [Connect]
如果一切正常,那么现在应该能连接至 IPv6 网络,可以访问 https://ipv6.google.com 或 https://test-ipv6.com/ 进行测试,同时在 OpenWrt 的 Web LuCI 页面可以看到如图所示的内容(请忽略笔者已配置好的 MAP-E 接口),此时请保存你获取到的 IPv6 地址(后面将用到)
0x04 简单介绍 MAP-E
简单来讲,MAP-E 就是通过隧道实现的 IPv4 over IPv6,将 IPv4 包封装进 IPv6 后送至 JPNE 的 BR (Border Relay)后由 JPNE 进行处理并发送至 IPv4 网络,并将收到的 IPv4 包封装进 IPv6 后发送回来(具体请见下图(来源: https://www.iajapan.org/ipv6/summit/OSAKA2018/pdf/20180906_keynote_ishida.pdf ))
0x05 计算 MAP-E 参数
感谢 FC2 大佬制作的小工具,一步即可算出 MAP-E 的参数。访问 http://ipv4.web.fc2.com/map-e.html,(记得将广告点掉,否则无法使用)并将 0x03 中获取到的 IPv6 地址输入进去,点击 計算 即可算出各参数值,此时请记录算出的 option 各项的名称及值(建议也将 ポート番号 中的内容记录,这些内容代表了你可以通过 IPv4 连接的端口号)(如果有兴趣和时间的同学也可以进行手工计算,详细请参考:NanoPi NEO2をv6プラスのルーターにする 前編 )
0x06 配置 MAP-E 及 WAN6
通过 SSH 登入 OpenWrt, 安装 MAP-E 并将 map.sh 中 29 行左右 #export LEGACY=1 前的 # 去掉(取消注释,使用 MAP0)
opkg update opkg install map vi /lib/netifd/proto/map.sh #编辑并取消注释以使用 map0
访问 OpenWrt 的 Web LuCI 页面,点击 [Network] – [Interfaces] – [Add new interface…] 来添加一个新的接口
Name: WAN6_MAP(可以任意填)
Protocol: MAP / LW4over6
添加保存并应用
接下来点击 WAN6_MAP 的 Edit
- Type: MAP-E
- BR / DMR / AFTR: 2404:9200:225:100::64(JPNE 的 BR 地址,不知道怎么漏出来的,总之测试可用)
- IPv4 prefix: 0x05 中计算得出的 option ipaddr 值
- IPv4 prefix length: 0x05 中计算得出的 option ip4prefixlen 值
- IPv6 prefix: 0x05 中计算得出的 option ip6prefix 值
- IPv6 prefix length: 0x05 中计算得出的 option ip6prefixlen 值
- EA-bits length: 0x05 中计算得出的 option ealen 值
- PSID-bits length: 0x05 中计算得出的 option psidlen 值
- PSID offset: 0x05 中计算得出的 option offset 值
然后转至 Advanced Settings 设置 Tunnel Link: wan6
转至 Firewall Settings 设置 Create / Assign firewall-zone: wan
保存并应用
接下来点击 WAN6 的 Edit
转至 Advanced Settings
Custom delegated IPv6-prefix: 设置为 0x03 中获取到的 IPv6 地址
保存并应用
0x07 连接确认
至此 MAP-E 的配置就告一段落了,点击 WAN6_MAP 的 Connect 按钮,如果没有问题的话应该会成功取得一个 IPv4 地址(一般来说应该与 0x05 中计算得到的相同)
打开 https://test-ipv6.com/ 应该可以看到你的 IPv4 地址,其他 IPv4 网站也应该可以正常访问
0x08 笔者的配置文件
说不定可以作为参考
config interface 'wan6' option proto 'dhcpv6' option reqaddress 'try' option reqprefix 'auto' option ifname 'eth0.2' list ip6prefix '240b:XXX:XXX:XXX:XXX:XXX:XXX:XXX/64' #0x03 获取到的 config interface 'wan6_map' option proto 'map' option type 'map-e' option peeraddr '2404:9200:225:100::64' option ipaddr '14.xx.x.x' option ip4prefixlen '15' option ip6prefix '240b:XX::' option ip6prefixlen '31' option ealen '25' option psidlen '8' option offset '4' list tunlink 'wan6' option mtu '1460' #默认 MTU 值比较小,笔者设置为了 1460 #option encaplimit 'ignore' #据部分用户报告需要设置该选项来避免 RX 不计数的问题(笔者暂未遇到该问题所以暂且不设置)
0x09 参考资料
- OpenWrtでv6プラス (MAP-E) での IPv6 / IPv4 接続と、IPv4 PPPoEでのサーバー公開を両立する — mecab 2020年3月11日閲覧
- NanoPi NEO2をv6プラスのルーターにする 前編 — がとらぼ 2020年3月11日閲覧
- v6プラス関連 Part11~13 — 5チャンねる 2020年3月11日閲覧
- フレッツ光 + OpenWrt で IPv6 を使う — あかぎメモ 2020年3月11日閲覧
- OpenWRT(GL.iNet GL-MV1000)でBIGLOBEのIPoE(MAP-E)に接続した — OSAKANA TAROのメモ帳 2020年3月11日閲覧
- V6プラス PART4 — 2ちゃんねるブックマーク 2020年3月11日閲覧
- OpenWrtでv6プラス(MAP-E)接続する手順 — いぇいいぇい 2020年3月11日閲覧
- v6プラス関連の覚え書き — 風柳メモ 2020年3月11日閲覧
- 20: 【無線LAN】OPENWRT【強化ファーム】13 (1015) — 2ちゃんねるブックマーク 2020年3月11日閲覧
- v6プラス [無断転載禁止]©2ch.net — 5ちゃんねる 2020年3月11日閲覧
0x0A 特别感谢
- 中川 かのん
- MagicNeko
啊,国内的ipv6什么的都还好啦。其实主要是某些厂商吹嘘“我们的路由器支持ipv6”什么的才头疼呢,搞了半天发现完完全全不支持
助かりました!ありがとうございます。
华硕的梅林固件有支持map-e的版本吗?我也是gmobb的v6プラス,给的nec的路由器十分难用。。。
梅林固件截止目前似乎并没有支持 map-e 的版本,如果只是不想用 NEC 路由器的话建议您更换固件(如果支持OpenWRT)或者事業者変更到支持开启 v6プラス后也可拨 PPPoE 的运营商,然后 v6 使用 IPoE, v4 使用 PPPoE …
太感谢了,我也用的是GMO,很早就想弄了,可惜之前没找到这么详细的帖子,youtube广告太多了
option interface ‘lan’ 求教我这一项在commit之后就会消失 lan口也没有v6的ip 只有wan6有v6的ip 无法访问v6是怎么回事
请教一下 通过 map-e 也就是 ipv4 over ipv6 接入之后。是不是我就没有ipv4公网ip了。ipv6可以直接使用ipoe接入。ipv4如果还能继续pppoe是不是就没必要折腾了。不知道我理解的对不对。望指教,谢谢
是这样的。map-e 是共享 IP 和端口,如果有公网需求的话确实会比较难受。如果 IPv4 的 PPPoE 可用的话就没有必要去折腾 map-e 了。
SoftBank光10ギガ也使用MAP-E。不过他家IPv6前缀输入到那个网站上没有对应的信息 哭死:(
不知道能不能抓包一些参数手算配置
没有用过 SB 家的网,不过也许你可以看看 https://github.com/kruton/sofutobanku ?如果认识的话也可以去请教一下「中川 かのん」 w。
经过1+月的研究我已经配置好了SBB。被NTT路由器里显示的MAP-E欺骗了(
打算也写一篇教程XD
好耶ww