上海电信 ipv6 无法上网,断流问题

309 天前
 yjzll

第一、外网访问内网、端口问题 今后的趋势是端口全封,外网访问内网,基本不用考虑。现在有部分能访问, 当然是申请的,或者漏网之鱼。一般家庭用户以后也就只能买个 VPS ,转发。

第二、ipv6 获取方式,就两种:光猫拨号和光猫桥接。

光猫----》 路由器---》电脑

光猫桥接,适合漏网之鱼,代表能使用自己的路由器,该路由器拨号上网后, 能分配 ipv6 地址,管理路由,下级电脑关机后能回收地址,安卓设备能顺畅 使用 ipv6 。是理想的 ipv6 运行方式。

光猫拨号,此时,DHCP 服务器是光猫,自己的路由器有两种方式运行:

方式一、SALLC 方式,wan6 口和 lan 口都是中继运行,好处是获得全球唯一 ipv6 地址,坏处是,光猫只管理接在光猫 lan 口的设备,比如路由器,路由器下连接 的电脑,光猫能给地址,但不管理。表现的现象是,电脑开机后,ping 不通百度。 ping -6 www.baidu.com 第二个现象是,电脑使用一段时间后又无法联通 ipv6 了。 临时的解决方法是,在电脑上使用计划任务,启动、每隔几分钟, ping -6 路由器 wan 口的 ipv6 地址。 注意,每台电脑都要 ping ,不是一台 ping 了,其他就不用了。

方式二、路由器 DHCPv6 NAT 方式 这相当于,光猫拨号,光猫只管理 lan 口的路由器,路由器作为第二级 DHCPv6 服务器,接管接在下面的电脑,就解决了目前 ipv6 使用的烦恼, 有两个地方要注意,网关和 SALLC 。

先说网关,OpenWrt 等软路由,在这种方式下,固件有缺陷,表现为网关未 设置好,设置页面明明已经选了强制网关,实际就是没有写进路由。 解决办法是手工输入网关,方法如下,网关地址是光猫,光猫一般不会换。

查询路由器的默认 IPv6 网关 ip -6 route | grep default default from 240e:38a:2999:2e00::/64 via fe80::233:2cc9:26ef:3cb dev eth0 proto static metric 512 pref medium #外网到光猫 lan 侧 default from 240e:38a:2999:2e00::/64 via fe80::1 dev eth0 proto static metric 640 pref medium

这是默认的路由,来自 240e:38a:2999:2e00 网段,经过局域网 fe80::233:7cc9:26ef:3cb 地址(光猫的 lan 口地址 192.168.21.1 的 mac 地址 xx:C9:xx:EF:xx:CB ,是内部局域网的总管,下面还有 fd80 ),本路由表是建立在 eth0 上。proto 是静态 protecol 协议,metric 是跃点数,Pref 是偏好值 然后将上面查询得到的默认网关设置为当前 NAT6 模式下的 默认网关 。运行命令如下:

route -A inet6 add default gw fe80::233:2cc9:26ef:3cb dev eth0

也可写入文件,启动时自动执行,今后 fe80::233:2cc9:26ef:3cb 有变化,需要在此修改,光猫不换不会变 编辑文件 vim /etc/hotplug.d/iface/90-ipv6 #!/bin/sh [ "$ACTION" = ifup ] || exit 0 route -A inet6 add default gw fe80::233:2cc9:26ef:3cb dev eth0 赋予执行权限 chmod +x /etc/hotplug.d/iface/90-ipv6

再说 SALLC ,lan 端口配置--DHCP 服务--ipv6 RA 设置 启用 SALLC ,选择受管配置和其他配置( M 和 O 标记位) 安卓设备需要 SALLC ,才能流畅使用 ipv6

2101 次点击
所在节点    宽带症候群
16 条回复
lcdtyph
309 天前
是 slaac
ranaanna
309 天前
slaac 。OP 说的光猫拨号的两种方式都不对。方式一不应该使用 wan 口。方式二不应该使用 NAT ,这实际上是把 ipv6 当 ipv4 使用。放心吧不会端口全封的,最多封 80, 443, 1701, 1723, 500, 4500 等等,不然怎么愉快用网
ranaanna
309 天前
你的断流问题,其实很简单,相当于:光猫和路由器都在喊:“我是路由器,从我这里出去吧”,但是其实路由器是在乱喊,电脑听信了路由器的喊话就断流了,所以要持续 ping 光猫下的设备地址,告诉自己不光在路由器之下,还在光猫之下。解决的办法也很简单,1. 不要用路由器 wan 口,2. 让路由器闭嘴,不要设置 ra
ranaanna
309 天前
续上,当然,手动设置电脑的 ipv6 地址,将光猫的本地链路地址设为网关,也不失为一种办法
mantouboji
309 天前
洋洋洒洒,没说清楚到底是遇到了哪一款倒霉的光猫。
datou
308 天前
楼主对于 DHCPv6 的理解有误
mantouboji
308 天前
SLAAC 方式配置的地址,每个终端设备都大不同,低 64 位看上去像随机数。这时候的网关地址是通过 RA (路由器通告)方式得到的,高 64 位就是光猫从运营商得到的/56 或者/60 地址池里第一个/64 。

DHCPv6 方式,既可以分配地址,也可以分配前缀。

分配地址时,低 64 位都是用户可以指定的,有的猫只能指定最低 8 位或者 16 位,有的可以固定高 48 位外加顺序增加低 16 位,这时候用户拿到的地址看上去跟 v4 时代一样各个终端顺序排列。

分配前缀时,是下级路由器要主动申请,然后从光猫得到的地址池里划一块给下级路由器。比如运营商给了/60 ,光猫把它分成四大块/62 ,把第一个没用过的/62 给了下级路由器。

如果没有下挂二级路由器,光猫那边不需要开启 DHCPv6 ,只需要有 RA 即可。
LnTrx
308 天前
光猫拨号 SLAAC 模式下,下级路由支持 Passthrough 、IPv6 路由桥等中继方式的话,一般是可以正常用 IPv6 的。早期路由器中 6relayd 有 bug 会造成需要连续 ping 才能连上的现象,不知道楼主的路由器固件是什么。
yjzll
307 天前
@mantouboji 嘿嘿,还是你明白,我偶然发现,我家光猫,竟然在 ipv6 下有两个网关,隔壁家的光猫就一个网关,怪不得我搞了一个春节
yjzll
307 天前
谢谢楼上各位,是光猫问题和 openwrt ( istore )的综合问题
光猫问题:竟然在 ipv6 下有两个网关, 隔壁家的光猫就一个网关。
fe80::933:7cc9:26ef:3cb
fe80::1 fe80::1
电脑直接接在光猫后发现的。光猫固件较老,进光猫的 IP 地址 192.168.3.1 都被电信改了,变成 192.168.71.1 ,现在连光猫的管理页面都没了,电信配置下发,直接覆盖了光猫内容,而光猫固件又无法更新,两个神仙打架,结果,出来两个“网关”。
openwrt 问题:openwrt 的 wan6 口,在概览页面是正确的网关地址(也就是实际使用的 fe80::933:7cc9:26ef:3cb ),但 openwrt 在默认的路由表内却没有将此地址写进去,可能他们也没碰到两个网关的事情

解决方法是,终端命令
ip -6 route | grep default 得到:
default from 240e:38a:9999:3e00::/64 via fe80::933:7cc9:26ef:3cb dev eth0 proto static metric 512 pref medium
default from 240e:38a:9999:3e00::/64 via fe80::1 dev eth0 proto static metric 640 pref medium

编辑文件 vim /etc/hotplug.d/iface/90-ipv6
#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
route -A inet6 add default gw fe80::933:7cc9:26ef:3cb dev eth0
赋予执行权限
chmod +x /etc/hotplug.d/iface/90-ipv6

完美解决,两种运行方式都完美
方式一:wan6 口三个中继,lan 口三个中继
方式二:wan6 口三个中继,lan 口 RA 、DHCP 是服务器,另一个关掉

其他方式在该死的光猫下都不行,邻居家就没啥怪毛病
yjzll
306 天前
方式一:
文件 /etc/config/dhcp 如下
config dhcp 'lan'
option interface 'lan' #端口名称
option start '100' #端口号起始--结束
option limit '150'
option dhcpv4 'server'
option ra_management '2' #分配何种地址,0 仅 SLAAC ,1 是 SLAAC 和 DHCP 混合, '2'仅 DHCP 有状态
option leasetime '12h' # infinite 租期,v4v6 均有效
option ra 'relay ' #中继运行模式
option ndp 'relay' #中继运行模式
option dhcpv6 'relay' #中继运行模式

config dhcp 'wan'
option interface 'wan'
option ignore '1'

config dhcp 'wan6'
option interface 'wan6'
option master '1'
option ra 'relay'
option ndp 'relay'
option dhcpv6 'relay'
yjzll
306 天前
方式二:
2. 防火墙配置,防火墙--自定义规则中添加
ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
在 eth0 ( wan 口)上,nat 表的路由( POSTROUTING )

文件 /etc/config/dhcp 如下
config dhcp 'lan'
option interface 'lan' #端口名称
option start '100' #端口号起始--结束
option limit '150'
option dhcpv4 'server'
option leasetime '12h' # infinite 租期,v4v6 均有效
option ra 'server' #路由器通告运行模式
option ra_default '2' # 1 是 SALLC 和 DHCP 下均通告,2 是强制通告
option ra_management '2' #分配何种地址,0 仅 SALLC ,1 是 SALLC 和 DHCP 混合, '2'仅 DHCP 有状态
option dhcpv6 'server' #DHCP 运行模式
list dns '2001:4860:4860::8888'
list dns '2001:4860:4860::8844'

config dhcp 'wan'
option interface 'wan'
option ignore '1'

config dhcp 'wan6'
option interface 'wan6'
option master '1'
option ra 'relay'
option ndp 'hybrid'
option dhcpv6 'relay'

文件 /etc/config/network 如下:

config globals 'globals'
option ula_prefix 'fd00::/64' # 'fd00:2222:2222:2222::/64' 'fd00::/8' 均可,方便记忆
option packet_steering '1'
yjzll
306 天前
常用命令
RA ,Router Advertisement, 路由器通告,指路由器在广播域内喊话。
DHCP ,动态主机配置,分发管理 IP 地址,通常一个子网一台。含网关和 DNS 服务器信息。
维护一个表,记录哪些机器对应哪些 IP ,及其租期和续租,不续租则收回地址
SLAAC ,通过 RA 消息,发送路由器通告,无状态地址
第一步:从路由器 FE80::1 到 特定保留的地址( FF02::1 ,代表所有在线机器),发送前缀/长度,但不含网关和 DNS 服务器信息
第二步:客户端收到,前缀/长度,缺省网关设置成发送 RA 消息的主机 FE80::1 (开源软路由经常错误设置,需要手动配置),
产生单播的全球唯一地址( EUI-64 算法计算后 64 位随机值)
无状态地址:显示临时地址
有状态地址:不显示临时地址

网络邻居
ping ff02::1
64 bytes from fe80::6a:cdff:fe06:15: seq=0 ttl=64 time=0.252 ms
64 bytes from fe80::1875:bcf0:93c9:4870: seq=0 ttl=64 time=238.389 ms (DUP!)

路由器
ping ff02::2
64 bytes from fe80::87a:cdff:fe54:15: seq=0 ttl=64 time=0.646 ms

DHCP 服务器
ping ff02::1:2
64 bytes from fe80::20a::15: seq=0 ttl=64 time=0.276 ms
ip 地址通过哪种方式下发,对 fe80::20a::15 抓包,看有无路由器通告消息,有--SLAAC

查询路由器的默认 IPv6 网关
ip -6 route | grep default
ipv4 、6 路由表
ip -6 route show

查看 icmp6 协议信息
tcpdump -nn -i eth0 icmp6
tcpdump -nn -i eth0 icmp6 -v
tcpdump -nn -i eth0 icmp6 -vv


查看邻居 mac 地址
ip -6 neighbor show

检查哪些端口和应用在运行,如过滤 19422 相关内容
netstat -anp -p udp
netstat -anp -p udp | grep 19422

ipv6 DNS 服务器
2001:4860:4860::8888
2001:4860:4860::8844
240e:4c:4008::1
240e:4c:4808::1
2001:dc7:1000::1
240C::6666
240C::6644
2400:3200::1
2402:4e00::
2400:da00::6666

IPV6 联网测试
https://testipv6.cn/
https://ipv6-test.com
yjzll
306 天前
openwrt 需要的 ipv6 包,更新,不能更新就不更新:
odhcp6c 2022-08-05-7d21e8d8-18
odhcpd 2023-01-02-4a673e1c-2, 和 only 二选一
odhcpd-ipv6only 2023-01-02-4a673e1c-2 ,ipv6 版本
luci-proto-ipv6 git-23.355.78888-e047387
ip6tables-extra 1.8.7-7
ip6tables-mod-nat 1.8.7-7
ip6tables-nft 1.8.7-7
ip6tables-zz-legacy 1.8.7-7
kmod-ip6tables 5.10.201-1
kmod-ip6tables-extra 5.10.201-1
kmod-nf-ipt6 5.10.201-1
linhu66
303 天前
@yjzll 你这是云宽带大哥
flynaj
302 天前
你这个要解决需要桥接,路由器拨号,光猫的系统其实就是很老的 12.09,ipv6 支持太差。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1018070

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX