openwrt路由的IPV6相关设置
文章目录
记录自己路由器IPV6设置.
问题
公网ipv6
国内一般是240x开头的.
除了看你路由器,还要看你电脑手机有没有分配.
正常情况下,每个设备都有好几个公网IPV6地址.(宽带多播的更多.)
如果家里没有公网IPV6,那么可以打电话给电信.他们可以远程帮你打开光猫IPV6设置
如果你有光猫超级管理员.光猫设置网络连接那里ip类型默认可能是IPV4,你改成IPV4和IPV6
无法ping V6
有公网IPV6 , 但是无法ping v6 ?
那么大概率是防火墙问题.
能ping通ip无法ping域名
能ping v6的IP , 不能ping v6的域名.
路由的DNS服务器不支持IPV6解析问题.
优先级
IPV4和IPV6必定有个优先级问题.
对同时有ipv4 和ipv6的网站/域名 ping的时候,ipv4优先级高的话.
可能是跃点问题. 参考别人的博文--> < windows 10 设置IPv6优先 >
不过他是在PC上设置,相关的路由器设置我再摸索摸索,后续补充博文.
路由器V6外网不能访问
这里是指路由器开启某个服务器,比如我路由器上开了web服务器.
自己内网能访问,外网不能访问. 这个就是IPV6没开放端口的问题.也属于防火墙的问题.
测试ping用IPV6资源
ipv6.getce.cn
也就是我博客的IPV6版.
仅绑定了IPV6地址.
可以浏览器打开访问.
当然也可以ping.
如果可以ping,但是不能访问.试试浏览器不走代理.
240C::6666
公共的IPV6 DNS.
可以ping.
t2.getce.cn
同时绑定了IPV4 IPV6.
只能ping不能访问.
(实际上IPV6能访问但是会报证书错误)
qzone.qq.com
同时绑定了IPV4和IPV6
IPV4可以访问,可以ping.
IPV6不可访问也不能ping.
如果你打开这个网站,打不开. 那么就是IPV6 DNS优先级高于IPV4优先级.
路由器DNS服务器支持IPV6
能ping ip,无法ping域名(无法解析域名绑定的IPV6地址)这都是DNS服务器引起的.
openwrt软件包
dnsmasq-full
ipv6-dns
这个组合比较方便简单.不需要设置,装上软件包就解决DNS问题.
永久关闭IPV6防火墙
我之前就是这样干的,但是极度不安全.
做法非常简单.
vi /etc/config/firewall
# defaults节点中添加 disable_ipv6
config defaults
option disable_ipv6 '1'
#重启防火墙
/etc/init.d/firewall restart
这相当于将你路由器的 web页面 ,ssh都暴露到了公网. 非常不安全.
非关闭IPV6防火墙方案
也就是开启IPV6防火墙.解决一些IPV6防火墙引起的问题.
在默认单条宽带,不多拨的情况下. IPV6防火墙基本不需要设置.
下面设置都是记录我一些特殊需求.
多播和IPV6防火墙冲突
表现情况就是,获取到了公网IPV6,无法ping任何外网的IPV6地址.
使用宽带多播的肯定遇到这个问题.
因为负载均衡到现在都不能支持IPV6负载均衡.
vi /lib/mwan3/mwan3.sh
将原来
IPT6="/usr/sbin/ip6tables -t mangle -w"
修改为
IPT6="/bin/true"
重启路由器防火墙,重新多播.
重新拔插PC网线.
当然,可以直接重启路由器.比较方便.
开放路由器IPV6端口
我博客的IPV6站点放到路由器上.
所以,路由器上需要对外开放端口.
如果不开放端口,
你内网能访问,不代表外网别人能访问.
内网有个内网环回.
你访问你路由器的网站服务器,虽然你用的公网IP访问.实际还是走的内网.
需要开放80和443端口
luci--网络--防火墙--通讯规则 -- 新增
参考下图.设置一个443
名称就是自己分辨用的.随意.
源端口空.
目标端口 443
目标区域 空
其他都是默认.
另外切到高级设置
匹配设备 未指定(默认)
限制地址 仅IPV6
然后保存,重启防火墙生效.
屏蔽外部访问路由IPV6端口
默认情况下,只需要开放端口,不需要屏蔽.
如果非要屏蔽,也非常简单.只需要参考上面443开放设置.
底部有个 动作 选 拒绝
转发/开放内网IPV6端口
上面说的是开放路由器的IPV6端口.这里是开放某台电脑的IPV6端口.
这个是内网的,所谓内网是相对IPV4的概念.
路由器给电脑分配的IPV6是公网IP,不过也需要路由器防火墙放行才能用.
依赖包
kmod-ipt-nat6
ip6tables-mod-nat
子网掩码
注意,IPV6没有子网掩码概念,这里只有前缀和后缀.
IPV6分配的地址比较长.而且前缀是运营商动态分配的.
没办法像IPV4那样开放指定的IP.
所以路由器开放IPV6端口,是需要以"掩码"的方式.来处理.
在这是之前,我们必须要固定设备的后缀.以保证整个IPV6地址最少后面一截是有规律可循的.
固定DHCPv6后缀
一般openwrt都是以网口MAC作为dhcp IP算法,
一般MAC不变后缀是固定的.
IPV4,IPV6都是
在DHCP设置里面里面每个设备有个DUID这个就是唯一值.
它参与后缀生成算法可以改变后缀.但是没办法实现指定你预想的后缀.
我之前看到一个文章介绍如何固定,忘记收藏了,我后面找找.
我通过DHCP分配的就是55c的后缀.我宽带4拨,所有有4个IPV6
yake-pc (yake-pc.lan)
240e:370:3f09:d560::55c
240e:370:3f09:d550::55c
240e:370:3f09:d540::55c
240e:370:3f09:d530::55c
fd69:d818:8b4c::55c
放行端口
和上面放行路由器端口一样.
只不过需要指定内网PC的IPV6地址.
在目标地址一栏
填写
::55c/::FFFF
55C就是根据DUID/MAC生成的后缀.前面几节都是运营商分配,没办法指控,所以用"掩码"方式.填写IPV6地址
::55c 完整写法应该是 0:0:0:0:0:0:0:55c 前面都是0所以可以简写成::55c
::ffff 同理 0:0:0:0:0:0:0:ffff 这么说吧.
无法固定的前缀用0替代.
假设IP更长一些
240e:370:3f09:d560:aaaa:ccc:bbb:55c
前面4节是运营分配,你不用管,.后面4节是你路由器生成的IPV6后缀.
那么
防火墙一栏填写IP地址应该是
0:0:0:0:aaaa:ccc:bbb:55c/0:0:0:0:ffff:ffff:ffff:ffff
简写就是
::aaaa:ccc:bbb:55c/::ffff:ffff:ffff:ffff
参考
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=248721&page=1