OpenWrt桥接ONU设置SoftBank光IPv6高速ハイブリッド「IPv6 IPoE + IPv4」


AD Time
【点击加载Telegram群链接】

有想讨论日本宽带相关话题的朋友可以加huggy佬的TG群交流


0x00:背景

SoftBank光想要启用IPv6 IPoE上网来避开PPPoE高峰期的不稳定就必须租赁ISP专用路由器“BB单元”。但BB单元在性能和固件方面都存在明显的缺陷,最重要的是它不支持NAT LOOPBACK:在局域网内访问域名绑定的服务只能通过修改hosts来将自己域名指向局域网IP地址来访问。

如果不使用BB单元将普通路由器直接连接到ONU则采用IPoE的方式只能访问纯IPv6互联网,IPv4互联网只能通过PPPoE的方式访问,而由于NTT的历史包袱PPPoE的稳定性并不好。日本市面上出售的路由器目前还没有能直接支持SoftBank光采用的4in6隧道的产品。互联网上关于SoftBank光配置IPoE IPv6 + IPv4教程也非常有限,大部分教程都是建议启用DMZ和IPv6 passthrough,同时关闭Wi-Fi信号发射来实现桥接。

然而,这并不是一个优雅的使用固定IPv4地址和稳定IPv4互联网的解决方案。经过一段时间的摸索实现了在OpenWrt上配置IPv6高速ハイブリッド,本文将简单介绍这一配置过程,希望能为其他同样面临这一问题的SoftBank光用户提供帮助。

注意:1、本文不含对ひかり電話等非上网服务的配置。
2、即使在OpenWrt上设置了IPv6高速ハイブリッド,也不能免除每个月的ISP路由器租金。SoftBank光IPv6高速ハイブリッド与BBユニットレンタル是捆绑在一起的オプション,解约后不能使用IPv6方式上网。

0x01: 事前准备

需要准备的东西:BB单元和NTT的ONU;1台安装有kmod-ip6-tunnelip-full包的OpenWrt路由器;1台支持端口镜像(Port Mirroring)的交换机;1台Windows电脑;Wireshark数据包捕获软件;SSH客户端。

0x02: 抓包获取IPv4 over IPv6隧道配置参数

SoftBank光使用的4over6协议并不是所谓“4rd/SAM”。这是一个广泛流传在日本社交网络上的谣言,已被SoftBank官方否认。事实上BB单元内置的4over6功能与JPIX的v6プラス中固定IP契约是相同的,它们均使用RFC2473标准的IPIP隧道。

区别在于使用JPIX提供IPv4 over IPv6服务的ISP会将隧道的配置信息提供给用户,用户可使用对应账号密码在未来隧道参数发生变化时通过HTTP Request请求新参数,而SoftBank光则是使用非公开的认证信息(并非PPPoE拨号的S-ID)通过BB单元内置的RADIUS客户端向服务器请求隧道配置参数。笔者在测试过程中发现理论上只要不取消IPv6高速ハイブリッド IP地址就不会发生变化,基本可以认为是固定IP。RAIDUS认证目前仅用于请求隧道参数不直接影响IPIP通信,因此我们不关心认证的具体实现,直接对BB单元进行抓包来获取隧道配置的参数。

按照接线图将ONU的UNI口连接PORT1,BB单元的WAN口连接PORT2,电脑网卡连接PORT3,在你的交换机上设置Mirror source port为PORT2,设置Mirror monitor port为PORT3。※ 更新:可直连ONU抓包,参考评论区。

在电脑上运行Wireshark,点击PC网卡对应的网络适配器开始抓包。然后将BB单元上电,等待Wireshark中出现抓包数据。BB单元成功联网之后点击停止按钮停止抓包。

应用显示过滤器里输入“RADIUS”过滤出与RADIUS有关的数据包,找到Info为Access-Accept的包,展开Attribute Value Pairs,找到VSA: t=Unknown-Attribute(204)VSA: t=Unknown-Attribute(207),这两项分别是以16进制表示的终端IPv4地址和Peer IPv6地址。

将得到的两组数据进行转换。

  • 假设204的字符串为7e723304,将其分成4个字节(每两个十六进制字符一个字节):7e, 72, 33, 04。将每个字节从十六进制转换为十进制:126, 114, 51, 4。得到终端IPv4地址:126.114.51.4
  • 假设207的字符串为2400200000040000a000000000001919,将这个字符串分为8组,每组4个字符:2400, 2000, 0004, 0000, a000, 0000, 0000, 1919。转换为IPv6的格式:2400:2000:0004:0000:a000:0000:0000:1919。化简得到Peer IPv6:2400:2000:4:0:a000::1919

记录这两个地址备用。2023年9月21日更新:加载字典(dictionary.softbank)可直接解析出终端IPv4和Peer IPv6无需手算转换。

0x03: 配置OpenWrt

移除BB单元,将OpenWrt路由器WAN口eth1(后续eth1均代表WAN口)直接连接到ONU。确认OpenWrt已经安装软件包kmod-ip6-tunnelip-full。访问OpenWrt的Web LuCI页面。(后续步骤可能因luci版本不同而不同,请根据你的固件版本自行修改)

  1. 点击[Network] – [Devices],点击设备eth1的[Configure…]按钮将MAC address设置为BB单元的WAN口MAC地址。
  2. 点击[Network] – [Interfaces],删除WAN接口,编辑WAN6接口。
  3. 点击[General Settings]将Protocol设置为DHCPv6 Client。
  4. 点击[Advanced Settings]将Override MAC address设置为BB单元的WAN口MAC地址。
  5. 点击[Physical Settings]确保Bridge interfaces为未选中状态(OFF)并将Interface设置为eth1。
  6. 点击[Firewall Settings]将Create / Assign firewall-zone设置为wan。
  7. 点击[Network] – [Global network options],删除IPv6 ULA-Prefix。
  8. 点击[Save & Apply]。

参考任意教程配置IPv6 Passthrough使LAN侧设备能够正常获取IPv6地址。如果一切正常,此时WAN6能够获取到一个长度为64的IPv6地址。可访问https://ip.sb/测试能否正常连接到IPv6互联网。

这里假设地址为:2400:2410:abcd:ef00:021a:2bff:fe3c:4d5e/64,记录该IPv6的前缀备用。

使用SSH登录OpenWrt,编辑/etc/rc.local,增加如下内容,其中:

  • INTERFACE: WAN6的物理接口。
  • IPV6_PEER: 之前通过网络抓包得到的Peer IPv6地址。
  • IPV4_ENDPOINT: 之前通过网络抓包得到的终端IPv4地址。
  • IPV6_ENDPOINT: 由WAN6 IPv6地址的前缀来组成的终端IPv6地址。例如前缀是2400:2410:abcd:ef00::/64,将后64位填充1从而得到完整的终端IPv6地址2400:2410:abcd:ef00:1111:1111:1111:1111

※ 可以在写入/etc/rc.local之前手动运行这些指令以及后续步骤来测试能否正常使用。

※2024-10更新:OpenWrt 23.05.3 (Released: Fri, 22 Mar 2024) 后ds-lite包增加了IPIP6隧道接口配置,可直接在webui配置以上内容。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
INTERFACE=eth1
IPV6_PEER="2400:2000:4:0:a000::1919"
IPV4_ENDPOINT="126.114.51.4"
IPV6_ENDPOINT="2400:2410:abcd:ef00:1111:1111:1111:1111"

ip -6 addr add $IPV6_ENDPOINT dev $INTERFACE
ip -6 tunnel add ip6tnl1 mode ipip6 remote $IPV6_PEER local $IPV6_ENDPOINT dev $INTERFACE encaplimit none
ip addr add $IPV4_ENDPOINT dev ip6tnl1
ip route add default dev ip6tnl1
ip link set dev ip6tnl1 up

编辑/etc/config/network,增加如下内容,其中ipaddr为终端IPv4地址。

1
2
3
4
5
6
7
8
config interface 'sbb_wan'
	option ifname 'ip6tnl1'
	option _orig_ifname 'ip6tnl1'
	option _orig_bridge 'false'
	option proto 'static'
	option ipaddr '126.114.51.4'
	option netmask '255.255.255.255'
	option dns '8.8.8.8'

保存并执行/etc/init.d/network restart使配置生效。 点击[Network] – [Interfaces],编辑刚刚新建的sbb_wan接口,点击[Firewall Settings]将Create / Assign firewall-zone设置为 wan。 点击[Save & Apply]。 重启路由器。

0x04: 确认配置正常

理论上重启路由器后就能正常上网了。可以访问https://ip.sb/或访问其他IPv4网站进行确认。可点击[Status] – [Realtime Graphs] – [Connections]观察是否成功建立Protocol为IPENCAP的IPv6连接。

本文是对SoftBank光(1Gbps)的配置教程,基于笔者与使用1Gbps网络的朋友共同测试的回忆整理而来。笔者使用的网络配置方式与之并不相同,因此可能存在谬误。如果您在配置过程中出现任何问题请留言,以便于笔者对文中可能出现的失误进行修正。

0x05: 参考资料

0x06: 特别感谢

  • kruton
  • yomai
  • xfoxfu
Licensed under CC BY-NC-SA 4.0
最后更新于 2025-09-01
评论系统正在迁移中,暂未开放。

历史评论

lqs +5 置顶
测试了一下,有个更简便的方法:
先提前从bbunit拿到自己的IPv6地址(结尾1111的那个),配置到网卡上,然后网线直连光猫抓包,这时候应该能抓到ipip6隧道的包,就可以从里面拿到隧道对方的IPv6地址了。
Missing
是的,可以抓到destination是自己WAN IPv4的IPIP6包
慎平
我测试不用配置ipv6地址,直接插网线抓包即可
然后用ipv6.nxt == 4,更简单可以过滤到。GPT告诉我的嘿嘿
最后看包数据中ipv6的部分的源地址就可以拿到隧道对方的地址了
Thorn +1
所以最后博主是放弃了10G契约,换成1G契约了么()
Missing
这倒不是,1G契约用的人更多所以就写了1G的教程
10G有一个解决不掉的致命问题就暂时搁置了∠( ᐛ 」∠)_
tomo0611
I want to connect SoftBank光 10Gbps with OpenWRT Router.
"SoftbankBB RADIUS dictionary" seems XG-100NE, which is used in SoftBank光 10Gbps Service.
But You said 10G had a fatal problem that could not be solved.
What is the problem?
Missing
The DHCPv6 client in OpenWrt isn't compatible with Flet's Hikari Cross, and when the IPv6 prefix lifetime expires, odhcp6c will not actively send a renew message, which results in WAN6 losing connection for about 20s.
The prefix lifetime of Flet's Hikari Cross is only 4 hours, causing frequent network disruptions. Flet's Hikari Next has a prefix lifetime of a month, so the issue isn't easily noticed.
This bug was reported by someone 3 years ago, but it still hasn't been fixed.
使用的路由器是unifi dream machine SE 抓包总是抓不到RADIUS pppoe也抓不到。能出个视频详细讲解一下如何干掉Softbank的路由器吗,实现自己的路由器和NTT连接。ntt 直连路由器wan口 是任何网络都没有 要设置哪些东西啊。日语不好真的头疼。。。
Missing
上面有评论提到可以直接NTT光猫直连PC抓远程BR服务器发来的数据包喔。视频就不放了,毕竟这个严格来说是不合法的
谢谢大佬
otonashikurumi
ax11000最新固件好像已经支持sb光的ipv4+ipv6
Missing
哦?具体是哪个品牌的AX11000?支持的是IPoE IPv6 + IPv4 over IPv6方式还是IPoE IPv6 + PPPoE IPv4?
otonashikurumi
网络这块我也不太懂。我自己的路由器是华硕的ax11000之前一直用的au光没怎么更新过固件这次换到sb的网。一通瞎操作整的上不了网索性恢复出厂设置后再升级了固件。然后看到ipv6里多了很多选项。。用onu直连ipv4那里还是pppoe。ipv6那里选了passthrough。重启路由器后有ipv4+ipv6.ipv6 test也能测到有ipv6不过会出现你的浏览器不愿意使用ipv6。
Missing
正常的,SB光1G在开通BB单元之后可以通过DHCPv6拿到IPv6,另外本身它自带PPPoE IPv4。本文探讨的是IPv4 over IPv6的方式获取IPv4
StevenLang +2
我是忍受不了自己楼的VDSL电话线拉了一条nuro光,nuro狗的是光猫不能改桥接,超级管理员密码在网上也没有一点线索,不过看到了一个博主的帖子接了vsol光猫,可是抽象的是桥接模式下怎么都要不到ipv6地址🥲各种方式都试过了。。。就是不行。。。。
算了我还是只用ipv4吧,反正桥接得到一个公网也挺适合搭服务器的😭
Missing
NURO 2G 光猫的超级账户已经被禁用了,如果是 sony 光猫的话根本没有设计桥接功能,只能用第三方光猫替换。至于 IPv6,2G 我不太清楚,10G 的话和 NTT 一样只通过纯 DHCPv6 分配一个 PD 前缀,地址需要路由器自己分配。
慎平
IPoE设置好了的话可以和PPPoE组多播吗[狗头]
慎平
https://downloads.openwrt.org/releases
现在最新版的openwrt内置了ipip6协议,想问一下这个可以直接用吗。
我研究了两三天也没搞明白[捂脸]
Missing
啊,那个ipip6就是我提交的。把本文里抓到的参数填进去就好了。
另外SB光1G理论上最多可以拿到4个IP来着(PPPoE 3个+IPoE 1个)
慎平
那难道可以组四拨[狂喜]。那另外两个PPPoE怎么获取呢,也是直接填同样的认证ID吗
Missing
用SB光的SID可以双拨拿到2个IP,然后NTT在部分地区有提供一个学术研究用的公共PPPoE账号
慎平
厉害厉害,感谢大佬
YB
你好博主,请问现在NTT 1G的网络能用猫棒直接上网吗,比如华为,诺基亚等其他牌子的猫棒能否使用?
2.NTT在部分地区友提供学术研究用公用PPPOE账号的,方便再提供一些信息吗?我目前是使用NTT系列BIGLOBE的回线,另外通过CAF番号在NTT的后台契约了マルチセッション3拨,每月另外付费990日元,加上原有的就5拨了,照你的意思是其实不用契约也可以多播的意思吗
慎平
用代码的方式配置好重启之后是成功了,不过测速只有BB单元的一半⌇●﹏●⌇
慎平
使用luci的方式也成功了,不过wan6要配置成静态地址,ipv6地址设为路由器1111的,网关设置为作为DHCP客户端时获取的网关。不过测速还是很慢。。。。
慎平
重新配置了一下,不知怎么就好了,速度也上去了
慎平
不知道为什么用一段时间就会降速。需要重新修改一下隧道设置再改回去就好了。不知道为什么,也许是需要重置缓存之类的?
Jerry
老板您好,
网络方面我不是很懂,想请教一下
1G 和 10G 的光,如果想要实现 nat loopback 的话,只能是通过修改 DMZ 实现吗?
akigo
大佬你好,我最近遇到一个问题,我现在在用的路由器是日版华硕AX89X,家中的网络环境是ビッグローブ10ギガ,只能使用ipv6オプション协议,但是在华硕路由器wan选项中只有v6プラス。我的AX89X没有办法进行上网认证。我该如何解决这个问题?该刷openwrt吗?刷openwrt之后的ipv6オプション又该如何配置呢?望大佬解答,谢谢!
Missing
与V6プラス设置方法差不多,都是MAPE。日文社区有很多教程了。不过印象里华硕只有Merlin固件可以用,那个好像不能设置MAPE吧。
某G口
感谢您非常有用的指导。
我是日本人,但我一直想更换bbunit和用其他"企业"路由器。(例如,YAMAHA RTX、NEC UNIVERGE。)
我终于扔掉了bbunit。非常感谢
nep
softbank的ipv4公网地址用了这个方法会有影响吗
根据教程没有实现成功,大佬方便探讨交流一下么
zearh
我的 softbank 10g ipv4的ip被aws 的 cloudfront ban 了,所有 aws cdn 的网站全部 403。
咨询 softbank 回答不能手动换 ip。只有解约这一条路可以走了吗 ?😭
Missing
你可以加一个BB Unit,然后就可以额外获得一个V4地址。
Jasmine
他用的是10G契约,SBB没有提供10G契约的PPPoE,所以是做不到的。
慎平
抓包后过滤器设置为“ipv6.nxt == 4”即可找到ipipv6隧道包
黑影儿
搞定了大阪softbank 1G光的多拨(用文中的v4 over v6,之后又加了一个同时单线拨PPPOE)。但后来还是去掉了,害怕被查到……
小也
软银现在的10g光还是不能用市贩的路由器吗?我看好多市贩的华硕都更新固件支持ipoe了,是不是只有软银10g还不行?
Sumie
本来想趁回去时弄个bpi-r4过来然后软银1g换10g,但软银10g那边不能省略掉那个home gateway s吗😨
Powered by Hugo | Theme Stack