部署这个的原因呢是我改造家里的软路由,原先使用的openwrt,使用dnsmasq我不喜欢,所以寒假空忙时间去实现自己从零开始配置,选择自己喜欢的软件和工具,DIY化
可能有人看到这个标题就要问了,ipv6明明可以直接公网分配给每一个设备,为什么还要设置nat6呢
其实不是我不想配置,实在是我所动用的工具有点难以实现(主要还是技术不够)
大部分所实现分配公网v6所使用的是使用dnsmasq和wide-dhcpv6-client之类的工具,我使用的工具是isc-dhcp-server和radvd,dns解析为AdGurad Home
[!IMPORTANT]
本文基于Debian11.8,X86_64架构,如使用环境不同,请自行搜索相应对照
vim /etc/default/isc-dhcp-server

编辑sysctl.conf
vim /etc/sysctl.conf

貌似在电信宽带下需要修改
/etc/sysctl.conf, 这条需要2改为1
net.ipv6.conf.ppp0.accept_ra=1
而联通宽带还需要增加一条
在/etc/ppp/peers/dsl-provider文件,加入
+ipv6
否则wan口没法获取ipv6公网地址
配置ipv6静态地址
vim /etc/network/interfaces
添加以下内容,加在lan口配置处,我是eno1
iface eno1 inet6 static
address fc00:a:b:100::1
netmask 64
这个地址你可以根据v6规范自己修改,内网地址
配置dhcp6
vim /etc/dhcp/dhcpd6.conf

添加上面内容,subnet6那里开始,那个fc00:a:b:100要根据上面的对照
配置ip6tables
vim /etc/ufw/before6.rules

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s fc00:a:b:100::/64 -o ppp0 -j MASQUERADE
COMMIT
我使用的是ufw防火墙,如果你要使用如iptables或者nftables之类的防火墙,请自行搜索一下如何配置
注意ppp0是你的wan口名称,请自行修改
apt-get install radvd
vim /etc/radvd.conf
这个主要是发ra使用,eno1是lan口网卡

interface eno1{
AdvSendAdvert on;
prefix fc00:a:b:100::/64{
AdvOnLink on;
AdvAutonomous on;
};
};
接下来就剩ipv6的dns了,由于我配置的有AdGuradHome担任DNS解析工作,所以我只需要在dhcpd6.conf中指定lan口的v6地址即可


应该是fc00:a:b:100::1和fe80::62be:b4ff:fe08:e306都可以
你可以用你局域网设备测试一下是否有v6了
curl 6.ipw.cn
如果有,那就恭喜你成功了
此文由 Mix Space 同步更新至 xLog
原始链接为 https://www.ssstttar.com/posts/Z-turn/Nat6