之前光猫改桥接用 openwrt 拨号,新建的 LAN 获取不到 IPv6 ,重启 WAN 口,新建的 LAN 时不时还会无法联网,后来又改回光猫拨号了。
周末想着继续用光猫拨号真是白瞎了我的软路由了,没有公网 IPv4 ,IPv6 还被光猫挡着不能从外部访问,就很难受,看朋友用的 iKuai ,说比较稳定,就准备给软路由重新装个系统。
首先从官网下载了 IMG 镜像文件,直接写入软路由的硬盘,然后信心满满的启动了软路由,结果启动后发现插哪个网口都没有获取到 IP ,真的很懵,没办法,给软路由接上显示器和键鼠,重新开机,发现开机后直接进了 BIOS 界面,没有启动系统。一番搜索发现写入 IMG 镜像的方式不支持 UEFI 启动,就很无语,openwrt 都能这么玩,iKuai 要用 UEFI 启动必须用 iso 文件安装。
用 iso 文件安装系统以后看到系统成功启动,设置了 lan1 的网卡和地址,心想终于弄好了,拔掉显示器和键鼠把软路由放回原处启动,结果还是没有获取到 IP ,真的是卧槽了,再搜发现 iKuai 默认没有开启 DHCP ,要手动设置 IP 才能连接上,等连上去后自己新建 DHCP 服务,再设置 WAN 口,还有系统设置的基础设置里有个上网模式,一定不要改成路由模式,没有仔细看下面的帮助提示就选了个路由模式,结果不能上网,只能用 NAT 模式。
确认 iKuai 能正常工作了,就把光猫又改成了桥接模式,再次尝试用 iKuai 进行拨号,尝试了一下,原有的 LAN 和新建的 LAN 能正常获取到 IPv6 ,工作也很稳定,用手机网络访问家里的 IPv6 地址也都正常。
因为没有用光猫做路由,所以防火墙就没了,IPv6 相当于完全敞开的状态,需要每个设备自身都开启防火墙才行,但是局域网内有对外开放访问需求的也就只有一台 NAS ,于是想用设置 iKuai 来做防火墙。
iKuai 的 ACL 规则默认是空的,允许所有流量,不做任何限制,所以只需要添加阻止的规则,尝试添加规则时发现 IPv4 的协议选项有 6 个,分别是:tcp 、udp 、tcp+udp 、icmp 、gre 、任意,IPv6 的协议选项只有 3 个,分别是:tcp 、udp 、任意。
如果想要外部 IP 能够 ping 通内部设备的 IPv6 就不能选择阻断任意协议,这里没有单独列出 ICMPv6 ,但是选择任意的话就会阻止。
首先阻止从外部访问内部的 IPv6 ,规则如下(如果不想阻止 ICMPv6 需要分别添加 tcp 和 udp ,不能选任意):
协议栈:IPv6
协议:任意
动作:阻断
方向:转发
连接方向匹配:原始方向(不能选择关闭,否则会把应答方向的入站一起阻断,导致无法上网)
进接口:wan1
不需要单独设置允许 lan 到 wan 的转发,没有阻止的都是允许的。
接下来阻止外部访问路由器的 WAN 口,只需要把上面规则里的方向改为进即可。
因为 IPv6 与 IPv4 的工作方式稍有不同,如果阻止 IPv6 的 WAN 口任意协议入站,为了保证能够正常收到 IPv6 前缀,需要单独放行 IPv6 协议栈的 UDP546,547 端口,否则会出现 WAN 口有 IPv6 地址,但是 IPv6 前缀是空的,导致 LAN 口没法分配 IPv6 。
IPv6 的内网配置如下:
内网接口:lan1
配置类型:自动获取
绑定外网线路:wan1
前缀分配长度:自动
DHCPv6:开启
DHCPv6 模式:无状态
前面阻止了 IPv6 WAN 口原始方向的转发,需要将内网设置暴露出去就需要再添加一条允许的 ACL 规则,允许的规则优先级高于阻断的规则, 比如需要放行 NAS 的 5001 端口。
协议栈:IPv6
协议:tcp
动作:允许
方向:转发
连接方向匹配:原始方向
目的地址: ::9209:d2ff:fe39:89c2/::ffff:ffff:ffff:ffff (表示固定后缀为::9209:d2ff:fe39:89c2 的的 IPv6 地址,这一段查看设备 IP 的时候有个 fe80::9209:d2ff:fe39:89c2 ,就是 fe80 后面的一段)
目的端口:5001
进接口:wan1
出接口:lan1
这个时候 NAS 的 5001 端口就可以从外部正常访问了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.