OpenWRT x86_64配置IPv6 NAT教程

发布于 2020-11-22  3.45k 次阅读


通过升级NAS时预留HDMI线,我终于能连接NAS的本地控制台了。

这次,解决之前部署软路由时由于编译参数导致的遗留问题:没有IPv6支持。

由于sjtu分配的IPv6为/128后缀,且内网设备无法继续申请地址。因此,不得不使用NAT-v6实现局域网设备的IPv6接入。

关于这篇教程的可用性:sjtu的同学可以直接抄作业,其他学校的同学请根据具体网络环境自行食用。

这里我采用的镜像来自:SuLingGG。具体版本已转载至:下载地址

首先,配置虚拟机:

由于我们的镜像支持EFI启动,所以Hyper-V直接选择2代虚拟机即可。网络配置可配置为静态Mac,Mac地址填充为你在学校申请时输入的地址。

要想配置IPv6,先要连接IPv4网络。

启动虚拟机,控制台中输入命令nano /etc/config/network,如图填入IPv4网络相关信息。

在我的配置中,eth0为wan接口,eth1为lan接口,局域网网段为10.1.1.1/24。

之后,修改root密码,方便ssh登录。

重启软路由,输入ssh root@Your_IP(我的路由器IP为10.1.1.1),之后输入你刚刚设置的密码,即可登入路由器。

我选择的固件没有自带IPv6相关内容,但可通过集成的ipv6-helper工具简单开启。

输入:ipv6-helper install,安装IPv6支持。

之后,修改/etc/config/network,在lan配置后加入以下内容:

option ip6addr 'fc00:100:100:1::1/64'

完成后,修改/etc/config/dhcp,加入以下内容:

接下来,修改防火墙配置,允许IPv6转发。

在nano /etc/firewall.user中加入以下内容:

ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

重启,你的路由器应该已经可以自动获取IPv6地址了(我获取的是2001开头的原生地址):

远程连入路由器,随便traceroute一个IPv6网站,查找你的IPv6网关。由于mirror.sjtu.edu.cn没有ipv6接入(至少我没有找到它的纯v6域名),所以我选择了同属教育网的ipv6.mirrors.ustc.edu.cn。

traceroute的第一跳就是你的IPv6网关节点。对我而言,是2001:da8:8000:e012::1。

在/etc/hotplug.d/iface中添加可执行脚本,输入以下内容:

#!/bin/sh

[ "$ACTION" = ifup ] || exit 0
route -A inet6 add default gw 2001:da8:8000:e012::1

default gw后为你自己的IPv6网关。

重启路由器,局域网内的机器应该可以正常使用IPv6了。(注意:部分路由器重启后需要手动获取IPv6地址,在网络-界面-WAN6中重新连接即可)

虽然个人并不喜欢Windows,但我还是不得不承认:Windows Server是好文明!


Faster than LIGHT