使用 NDP 与 Dnsmasq-DHCPv6 获取原生 IPv6 地址

在 LGA1150 的指导下终于解决 IPv6 不稳定的问题。

中山大学东校区在 OpenWRT 完成 iNode 认证和 IPv6 地址获取这一篇博客中,我使用了 odhcpd 完成 IPv6 地址的分配和路由通告,但是实际上 odhcpd 很不稳定,在 @LGA1150 同学的指导下,我换成了 NDP 与 Dnsmasq-DHCPv6 的组合。

例如我的 MAC 地址是 74:44:01:02:A3:E8

我的 WAN6 设置为

config interface 'wan6'
        option ifname 'eth1'
        option _orig_ifname 'eth1'
        option _orig_bridge 'false'
        option proto 'static'
        option ip6gw 'fe80::3a22:d6ff:fee7:21e6'
        option metric '1024'
        option ip6addr '2001:250:3002:4405:7644:1ff:fe02:a3e8/64'

如果 MAC 是 11:11:11:11:11:11,那么 IPv6 地址后 64 位就是 1311:11ff:fe11:1111

ip6gw 是网关地址,就是 ip -6 route 中那个 fe80 地址。

LAN 口的 IPv6 地址设置为静态的 option ip6addr '2001:250:3002:4405:abcd:abcd:abcd:abcd/112'

注意,不同宿舍分到的 /64 地址是不一样的,不要直接抄本教程的。

我的 ndppd.conf 设置如下

route-ttl 30000
proxy eth1 {
   router yes
   timeout 500
   ttl 30000
   rule 2001:250:3002:4405:abcd:abcd:abcd::/112 {
      auto
   }
}

其中 eh1 是我的 WAN 口,2001:250:3002:4405:abcd:abcd:abcd::/112 是划给内网的 IPv6 段。

LAN 口的 DHCP 设置为

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option ra_management '1'
        option dhcpv6 'server'
        option ra 'server'

修改 /etc/sysctl.conf 使得

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.proxy_ndp=1

sysctl -p 使配置生效。