Unifi EdgeRouter X配置基于ULA(fd00:/8)地址的LAN端IPv6 DNS及DHCP服务问询
Unifi EdgeRouter X配置基于ULA(fd00:/8)地址的LAN端IPv6 DNS及DHCP服务问询
嘿,刚好我在EdgeRouter X上折腾过一模一样的需求——ISP只有IPv4,但想给LAN配置ULA的IPv6,还要用路由器自带的DNS和DHCPv6,完全不用额外的树莓派!下面是适配你EdgeOS v2.0.9-hotfix.7版本的实操步骤,跟着来就行:
1. 生成并配置ULA前缀
首先你需要一个专属的ULA前缀(得在fd00:/8范围内),可以自己生成,或者直接用我示例里的(记得换成你自己的,避免和其他网络冲突)。登录ER-X的CLI,执行以下命令:
configure # 替换成你自己的ULA前缀,比如fd00:你的自定义标识::/48 set system ipv6 ula-prefix fd00:abcd:1234::/48 commit save exit
2. 给LAN接口配置IPv6地址
假设你的LAN是用switch0(ER-X默认桥接eth1-4为switch0),如果是单独的LAN接口就换成对应的名称(比如eth1)。这里推荐手动分配一个/64子网,更可控:
configure # 从ULA前缀里划一个/64子网,网关设为::1 set interfaces switch switch0 ipv6 address fd00:abcd:1234:1::1/64 # 开启IPv6支持 set interfaces switch switch0 ipv6 enable # 确保系统IPv6转发开启 set system ipv6 forwarding enable commit save exit
3. 配置DHCPv6服务器(无状态/有状态可选)
如果你只需要客户端自动生成IPv6地址(无状态),同时获取DNS和域名信息,用下面的配置;如果需要路由器分配固定IPv6地址(有状态),可以额外加一段范围配置。
无状态DHCPv6配置
configure set service dhcpv6-server shared-network-name LAN subnet fd00:abcd:1234:1::/64 prefix-delegation prefix fd00:abcd:1234:1::/64 # 指定DNS服务器为路由器自身的IPv6地址 set service dhcpv6-server shared-network-name LAN subnet fd00:abcd:1234:1::/64 name-server fd00:abcd:1234:1::1 # 设置你的本地域名,比如home.local set service dhcpv6-server shared-network-name LAN subnet fd00:abcd:1234:1::/64 domain-name "home.local" commit save exit
(可选)有状态DHCPv6配置
如果需要给客户端分配固定范围的IPv6地址,在上面的基础上再加:
configure set service dhcpv6-server shared-network-name LAN subnet fd00:abcd:1234:1::/64 range RANGE1 start fd00:abcd:1234:1::100 end fd00:abcd:1234:1::200 commit save exit
4. 配置DNS转发支持IPv6动态更新
EdgeOS的dnsmasq支持自动从DHCPv6客户端同步AAAA记录,这样你就能通过本地域名访问IPv6设备了。配置如下:
configure # 开启IPv6 DNS转发 set service dns forwarding ipv6 enable # 设置本地域名 set service dns forwarding domain "home.local" # 添加dnsmasq自定义选项,开启RA和DHCPv6动态更新 set service dns forwarding options "enable-ra" set service dns forwarding options "dhcp-range=::,constructor:switch0,ra-names,12h" set service dns forwarding options "dhcp-option=option6:dns-server,[fd00:abcd:1234:1::1]" set service dns forwarding options "dhcp-option=option6:domain-search,home.local" set service dns forwarding options "enable-dhcpv6" commit save exit
注意: 这里的constructor:switch0要和你的LAN接口名称一致,如果是eth1就换成constructor:eth1。
5. 验证配置是否生效
最后重启相关服务,确保配置生效:
restart dhcpv6-server restart dns forwarding
然后在客户端做以下验证:
- 检查客户端是否获取到
fd00:开头的IPv6地址 - 用
nslookup或者dig查询客户端的主机名,看是否返回对应的AAAA记录 - 用
ping6 fd00:abcd:1234:1::1测试和路由器的IPv6连通性
如果遇到问题,可以检查ER-X的系统日志(show log),看看DHCPv6和DNS服务有没有报错。
备注:内容来源于stack exchange,提问作者GaryO




