OpenWRT 配置 IPv6

OpenWRT 配置 IPv6,在网上有许多教程,但大部分都说的不清不楚。 所以我从 OpenWRT 配置文件的角度,给出一个肯定能用的配置。 相关配置原理不详述,可自行上网查找。

系统环境

  • 北京联通 300M 家宽 (客服说100元/月,可提供公网IPv4/IPv6地址,其实IPv6是免费给的)
  • OpenWRT(PVE虚机,非直通网卡)
    • 目标平台:x86/64
    • 固件版本:OpenWrt 21.02.0 r16279-5cc0535800 / LuCI openwrt-21.02 branch git-23.093.57360-e98243e
    • 内核版本:5.4.143
    • DHCPv6 客户端 (odhcp6c)
    • RA & DHCPv6 服务器 (odhcpd)
    • IPv6 防火墙 (ip6tables)
    • Luci网页配置 (luci-proto-ipv6)

配置流程

  1. 光猫桥接(电话联通,远程搞定)
  2. OpenWRT WAN IPv6 配置
 1# /etc/config/network
 2...
 3config interface 'lan'
 4        option proto 'static'
 5        option ipaddr '192.168.10.10'
 6        option netmask '255.255.255.0'
 7        option device 'eth0'
 8        option ip6assign '64' # IPv6分配长度。要与 wan 口一致。
 9
10config interface 'wan'
11        option proto 'pppoe'
12        option username '***********'
13        option password '***********'
14        option device 'eth1'
15        option ipv6 'auto' # 自动获取IPv6地址,使用这个选项后,会自动创建一个虚拟动态接口(WAN_6),不用配置。
16        option ip6assign '64' # IPv6分配长度。参考 WAN_6 接口 IPv6-PD 的掩码长度,一般为“60”,比它大即可,系统默认为64。
17...
  1. OpenWRT 防火墙配置
 1# /etc/config/firewall
 2...
 3config zone
 4        option name 'lan'
 5        list network 'lan'
 6        option input 'ACCEPT'
 7        option output 'ACCEPT'
 8        option forward 'ACCEPT'
 9
10config zone
11        option name 'wan'
12        list network 'wan'
13        option input 'DROP' # 关闭 wan 口输入流量
14        option output 'ACCEPT' # 只出不进
15        option forward 'REJECT'
16        option masq '1' # 打开 NAT 功能
17        option mtu_fix '1' # 路由器直接拨号时使用
18...
19# 转发规划很重要
20config forwarding
21        option src 'lan'
22        option dest 'wan'
23...
24# 允许外网IPv6协议下,任意地址的547端口的UDP包通过wan口,访问本机546端口
25config rule
26        option name 'Allow-DHCPv6'
27        option proto 'udp'
28        option src 'wan'
29        option src_port '547'
30        option dest_port '546'
31        option target 'ACCEPT'
32        option family 'ipv6'
  1. OpenWRT DHCP 配置
 1# /etc/config/dhcp
 2...
 3config dhcp 'lan'
 4        option interface 'lan'
 5        option start '100'
 6        option dhcpv4 'server'
 7        option limit '200'
 8        option force '1'
 9        option leasetime '2h'
10        option ra 'server' # RA服务 服务器模式
11        option dhcpv6 'server' # DHCPv6服务 服务器模式
12        list ra_flags 'none' # RA标记 无
13
14config dhcp 'wan'
15        option interface 'wan'
16        option ignore '1'
17        list ra_flags 'none'
18
19config odhcpd 'odhcpd'
20        option maindhcp '0'
21        option leasefile '/tmp/hosts/odhcpd'
22        option leasetrigger '/usr/sbin/odhcpd-update'
23        option loglevel '4'
24
  1. 重启OpenWRT
  2. 查看 Luci -> 网络 -> 接口 -> LAN,已拿到的IPv6地址
  3. 测试本机外网IPv6地址,与 LAN 的 IPv6地址一致即可
1$ curl 6.ipw.cn

参考文档

相关专栏文章