记录自己路由器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