第一、外网访问内网、端口问题 今后的趋势是端口全封,外网访问内网,基本不用考虑。现在有部分能访问, 当然是申请的,或者漏网之鱼。一般家庭用户以后也就只能买个 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
1
lcdtyph 309 天前 via iPhone
是 slaac
|
2
ranaanna 309 天前
slaac 。OP 说的光猫拨号的两种方式都不对。方式一不应该使用 wan 口。方式二不应该使用 NAT ,这实际上是把 ipv6 当 ipv4 使用。放心吧不会端口全封的,最多封 80, 443, 1701, 1723, 500, 4500 等等,不然怎么愉快用网
|
3
ranaanna 308 天前
你的断流问题,其实很简单,相当于:光猫和路由器都在喊:“我是路由器,从我这里出去吧”,但是其实路由器是在乱喊,电脑听信了路由器的喊话就断流了,所以要持续 ping 光猫下的设备地址,告诉自己不光在路由器之下,还在光猫之下。解决的办法也很简单,1. 不要用路由器 wan 口,2. 让路由器闭嘴,不要设置 ra
|
4
ranaanna 308 天前
续上,当然,手动设置电脑的 ipv6 地址,将光猫的本地链路地址设为网关,也不失为一种办法
|
5
mantouboji 308 天前
洋洋洒洒,没说清楚到底是遇到了哪一款倒霉的光猫。
|
6
datou 308 天前
楼主对于 DHCPv6 的理解有误
|
7
mantouboji 308 天前
SLAAC 方式配置的地址,每个终端设备都大不同,低 64 位看上去像随机数。这时候的网关地址是通过 RA (路由器通告)方式得到的,高 64 位就是光猫从运营商得到的/56 或者/60 地址池里第一个/64 。
DHCPv6 方式,既可以分配地址,也可以分配前缀。 分配地址时,低 64 位都是用户可以指定的,有的猫只能指定最低 8 位或者 16 位,有的可以固定高 48 位外加顺序增加低 16 位,这时候用户拿到的地址看上去跟 v4 时代一样各个终端顺序排列。 分配前缀时,是下级路由器要主动申请,然后从光猫得到的地址池里划一块给下级路由器。比如运营商给了/60 ,光猫把它分成四大块/62 ,把第一个没用过的/62 给了下级路由器。 如果没有下挂二级路由器,光猫那边不需要开启 DHCPv6 ,只需要有 RA 即可。 |
8
LnTrx 307 天前
光猫拨号 SLAAC 模式下,下级路由支持 Passthrough 、IPv6 路由桥等中继方式的话,一般是可以正常用 IPv6 的。早期路由器中 6relayd 有 bug 会造成需要连续 ping 才能连上的现象,不知道楼主的路由器固件是什么。
|
9
yjzll OP @mantouboji 嘿嘿,还是你明白,我偶然发现,我家光猫,竟然在 ipv6 下有两个网关,隔壁家的光猫就一个网关,怪不得我搞了一个春节
|
10
yjzll OP 谢谢楼上各位,是光猫问题和 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 是服务器,另一个关掉 其他方式在该死的光猫下都不行,邻居家就没啥怪毛病 |
11
yjzll OP 方式一:
文件 /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' |
12
yjzll OP 方式二:
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' |
13
yjzll OP 常用命令
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 |
14
yjzll OP 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 |
16
flynaj 301 天前 via Android
你这个要解决需要桥接,路由器拨号,光猫的系统其实就是很老的 12.09,ipv6 支持太差。
|