IPv6 Test Pod: Demo

IPv6 Test Pod

Learning about the Future

by Craig Miller

Last month we discussed the Test Pod project, and the different transition technologies available. The point of the Test Pod to allow an organization to test their applications in different IPv6 environments, to see first hand which transition technology is best for them.

The Test Pod can run on any OpenWrt router with Wifi capability, 16 MB of flash, and 64 MB of RAM, or better.

A Review of the Transition Technologies

Below is a table of the technologies available on the Test Pod

SSID IPv6 Transition Tech
Dual-Stack Traditional IPv4 & IPv6
IPv6-Only None, IPv6 only
IPv6-Only-D64 DNS64
IPv6Only-DP64 DNS64 and PREF64
IPv6Only-P64 PREF64
IPv6Mostly-DP64 DNS64, PREF64 & DHCPv4 Option 108
IPv6Mostly-P64 PREF64 & DHCPv4 Option 108

Converting your OpenWrt router into an IPv6 Test Pod

The test pod creation script, pod-openwrt-gen-config.sh, must be downloaded to the router and run via an ssh session on the router. In addition to the script, one also needs a configuration file, pod.conf in the same directory. The configuration file has information for the Test Pod, including login password, Wifi passwords, and Wireguard info.

The configuration file should be customized to your needs before running the Test Pod creation script.

The configuration file, and creation script can be found in the NetSIG/Labs directory.

Downloading the script and config file to the router

It is possible to download the tgz file directly to the router using wget with the following command:

wget -O test_pod.tgz http://www.makiki.ca/netsig/labs/test_pod.tgz

Once the file in on the router, untar it with the command:

tar xvzf test_pod.tgz

Editing the config file

As mentioned earlier, the configuration file must be edited before running the creation script. First make a copy of the example configuration file.

cp pod.conf.example pod.conf

Use vi to edit the configuration file, pod.conf. Most of the data will come from James Harr if you are using the Wireguard backhaul to the Internet2 site.

If you are using your own IPv6 connection (via the WAN interface), then you will only need to edit the login password, Wifi Password, and an IPv6 prefix address space (a /56) from your organization.

Make a back of your current config

Prior to running the script, it is a good idea to make a backup of your /etc directory. You can do this by using LuCI->System->Backup/Flash Firmware. However, should you need to restore, it will reboot the router.

A faster way is to just tar the /etc directory. In an ssh session:

cd /root
tar cvzf backup_etc.tgz /etc

Should you need to restore, just untar the file, and reload_config

Running the Test Pod Creation Script

After editing the pod.conf to your needs on the router, it is almost time to run the creation script, pod-openwrt-gen-config.sh

~# ./pod-openwrt-gen-config.sh -d
Installing minimal packages
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/packages/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_base
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_kmods
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_luci
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_packages
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_routing
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/routing/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_telephony
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/telephony/Packages.sig
Signature check passed.
Installing jool-tools-netfilter (4.1.14-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/jool-tools-netfilter_4.1.14-r1_mipsel_24kc.ipk
Installing libnl-core200 (3.10.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libnl-core200_3.10.0-r1_mipsel_24kc.ipk
Installing libnl-genl200 (3.10.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libnl-genl200_3.10.0-r1_mipsel_24kc.ipk
Installing libnl-route200 (3.10.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libnl-route200_3.10.0-r1_mipsel_24kc.ipk
Installing libnl-nf200 (3.10.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libnl-nf200_3.10.0-r1_mipsel_24kc.ipk
Installing libnl-cli200 (3.10.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libnl-cli200_3.10.0-r1_mipsel_24kc.ipk
Installing libnl200 (3.10.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libnl200_3.10.0-r1_mipsel_24kc.ipk
Installing kmod-jool-netfilter (6.6.93.4.1.14-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/kmod-jool-netfilter_6.6.93.4.1.14-r1_mipsel_24kc.ipk
Installing ethtool (6.11-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/ethtool_6.11-r1_mipsel_24kc.ipk
Installing luci-app-commands (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-app-commands_25.222.74622~4d26a4d_all.ipk
Installing luci-app-unbound (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-app-unbound_25.222.74622~4d26a4d_all.ipk
Installing liblua5.1.5 (5.1.5-r11) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/liblua5.1.5_5.1.5-r11_mipsel_24kc.ipk
Installing lua (5.1.5-r11) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/lua_5.1.5-r11_mipsel_24kc.ipk
Installing luci-lib-nixio (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-lib-nixio_25.222.74622~4d26a4d_mipsel_24kc.ipk
Installing luci-lib-ip (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-lib-ip_25.222.74622~4d26a4d_mipsel_24kc.ipk
Installing luci-lib-jsonc (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-lib-jsonc_25.222.74622~4d26a4d_mipsel_24kc.ipk
Installing liblucihttp-lua (2023.03.15~9b5b683f-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/liblucihttp-lua_2023.03.15~9b5b683f-r1_mipsel_24kc.ipk
Installing luci-lib-base (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-lib-base_25.222.74622~4d26a4d_all.ipk
Installing libubus-lua (2025.07.02~5952b48e-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libubus-lua_2025.07.02~5952b48e-r1_mipsel_24kc.ipk
Installing ucode-mod-lua (1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/ucode-mod-lua_1_mipsel_24kc.ipk
Installing luci-lua-runtime (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-lua-runtime_25.222.74622~4d26a4d_mipsel_24kc.ipk
Installing luci-compat (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-compat_25.222.74622~4d26a4d_all.ipk
Installing libatomic1 (13.3.0-r4) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/packages/libatomic1_13.3.0-r4_mipsel_24kc.ipk
Installing libopenssl3 (3.0.17-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libopenssl3_3.0.17-r1_mipsel_24kc.ipk
Installing libevent2-7 (2.1.12-r2) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libevent2-7_2.1.12-r2_mipsel_24kc.ipk
Installing libunbound (1.21.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/libunbound_1.21.0-r1_mipsel_24kc.ipk
Installing unbound-daemon (1.21.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/unbound-daemon_1.21.0-r1_mipsel_24kc.ipk
Installing unbound-control (1.21.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/unbound-control_1.21.0-r1_mipsel_24kc.ipk
Installing unbound-control-setup (1.21.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/unbound-control-setup_1.21.0-r1_mipsel_24kc.ipk
Installing libopenssl-conf (3.0.17-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/libopenssl-conf_3.0.17-r1_mipsel_24kc.ipk
Installing openssl-util (3.0.17-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/openssl-util_3.0.17-r1_mipsel_24kc.ipk
Installing wireguard-tools (1.0.20210914-r4) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/wireguard-tools_1.0.20210914-r4_mipsel_24kc.ipk
Installing ip-tiny (6.11.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/ip-tiny_6.11.0-r1_mipsel_24kc.ipk
Installing kmod-crypto-lib-chacha20 (6.6.93-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/kmod-crypto-lib-chacha20_6.6.93-r1_mipsel_24kc.ipk
Installing kmod-crypto-lib-poly1305 (6.6.93-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/kmod-crypto-lib-poly1305_6.6.93-r1_mipsel_24kc.ipk
Installing kmod-crypto-lib-chacha20poly1305 (6.6.93-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/kmod-crypto-lib-chacha20poly1305_6.6.93-r1_mipsel_24kc.ipk
Installing kmod-crypto-kpp (6.6.93-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/kmod-crypto-kpp_6.6.93-r1_mipsel_24kc.ipk
Installing kmod-crypto-lib-curve25519 (6.6.93-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/kmod-crypto-lib-curve25519_6.6.93-r1_mipsel_24kc.ipk
Installing kmod-udptunnel4 (6.6.93-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/kmod-udptunnel4_6.6.93-r1_mipsel_24kc.ipk
Installing kmod-udptunnel6 (6.6.93-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/kmod-udptunnel6_6.6.93-r1_mipsel_24kc.ipk
Installing kmod-wireguard (6.6.93-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/kmods/6.6.93-1-ae7dcdf01cb63b83c64f5cb8d8960511/kmod-wireguard_6.6.93-r1_mipsel_24kc.ipk
Package kmod-wireguard (6.6.93-r1) installed in root is up to date.
Installing luci-proto-wireguard (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-proto-wireguard_25.222.74622~4d26a4d_all.ipk
Installing luci-lib-uqr (25.222.74622~4d26a4d) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/luci/luci-lib-uqr_25.222.74622~4d26a4d_all.ipk
Installing resolveip (2) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/base/resolveip_2_mipsel_24kc.ipk
Package tcpdump (4.99.5-r1) installed in root is up to date.
Installing iperf (2.1.9-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/iperf_2.1.9-r1_mipsel_24kc.ipk
Installing libstdcpp6 (13.3.0-r4) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/targets/ramips/mt7621/packages/libstdcpp6_13.3.0-r4_mipsel_24kc.ipk
Installing curl (8.12.1-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/curl_8.12.1-r1_mipsel_24kc.ipk
Installing libnghttp2-14 (1.63.0-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/libnghttp2-14_1.63.0-r1_mipsel_24kc.ipk
Installing libcurl4 (8.12.1-r1) to root...
Downloading https://downloads.openwrt.org/releases/24.10.2/packages/mipsel_24kc/packages/libcurl4_8.12.1-r1_mipsel_24kc.ipk
Configuring ip-tiny.
Configuring kmod-crypto-lib-chacha20.
Configuring kmod-crypto-lib-poly1305.
Configuring kmod-crypto-lib-chacha20poly1305.
Configuring kmod-crypto-kpp.
Configuring kmod-crypto-lib-curve25519.
Configuring kmod-udptunnel4.
Configuring kmod-udptunnel6.
Configuring kmod-wireguard.
Configuring wireguard-tools.
Configuring luci-lib-uqr.
Configuring resolveip.
Configuring luci-proto-wireguard.
Configuring libatomic1.
Configuring libopenssl3.
Configuring liblua5.1.5.
Configuring lua.
Configuring luci-lib-nixio.
Configuring luci-lib-ip.
Configuring luci-lib-jsonc.
Configuring liblucihttp-lua.
Configuring luci-lib-base.
Configuring libstdcpp6.
Configuring iperf.
Configuring libubus-lua.
Configuring libopenssl-conf.
Generating engines.cnf
Generating providers.cnf
Configuring openssl-util.
Configuring ucode-mod-lua.
Configuring luci-lua-runtime.
Configuring libevent2-7.
Configuring libunbound.
Configuring unbound-daemon.
unbound: default protocol configuration
unbound: default memory configuration
unbound: default recursion configuration
Configuring libnl-core200.
Configuring libnl-route200.
Configuring libnl-genl200.
Configuring libnl-nf200.
Configuring libnl-cli200.
Configuring libnl200.
Configuring luci-compat.
Configuring luci-app-unbound.
Configuring unbound-control.
Configuring unbound-control-setup.
Configuring ethtool.
Configuring kmod-jool-netfilter.
Configuring libnghttp2-14.
Configuring libcurl4.
Configuring curl.
Configuring luci-app-commands.
Configuring jool-tools-netfilter.

=========== Merge System =========
=========== Config rpcd, ucitrack uhttpd unbound =========
=========== Merge Wireless =========
=========== Merge Network =========
=========== Configure dhcp odhcp =========
=========== Merge Firewall =========
=========== Configure Jool =========
=========== Config Complete, show changes =========
firewall.cfg11e63d='defaults'
firewall.cfg11e63d.input='REJECT'
firewall.cfg11e63d.output='ACCEPT'
firewall.cfg11e63d.forward='REJECT'
firewall.cfg11e63d.synflood_protect='1'
firewall.cfg12dc81='zone'
firewall.cfg12dc81.name='lan'
firewall.cfg12dc81.input='ACCEPT'
firewall.cfg12dc81.output='ACCEPT'
firewall.cfg12dc81.forward='ACCEPT'
firewall.cfg12dc81.network+='br-lan'
firewall.cfg12dc81.network+='vlan101_DualStk'
firewall.cfg12dc81.network+='vlan102_v6Only'
firewall.cfg12dc81.network+='vlan103_v6_D64'
firewall.cfg12dc81.network+='vlan104_v6_DP64'
firewall.cfg12dc81.network+='vlan105_v6_P64'
firewall.cfg12dc81.network+='vlan106_6M_DP64'
firewall.cfg12dc81.network+='vlan107_6M_P64'
firewall.cfg13dc81='zone'
firewall.cfg13dc81.name='wan'
firewall.cfg13dc81.input='REJECT'
firewall.cfg13dc81.output='ACCEPT'
firewall.cfg13dc81.forward='REJECT'
firewall.cfg13dc81.masq='1'
firewall.cfg13dc81.mtu_fix='1'
firewall.cfg13dc81.network+='wan'
firewall.cfg13dc81.network+='wg0'
firewall.cfg1492bd='rule'
firewall.cfg1492bd.name='Allow-DHCP-Renew'
firewall.cfg1492bd.src='wan'
firewall.cfg1492bd.proto='udp'
firewall.cfg1492bd.dest_port='68'
firewall.cfg1492bd.target='ACCEPT'
firewall.cfg1492bd.family='ipv4'
firewall.cfg1592bd='rule'
firewall.cfg1592bd.name='Allow-Ping'
firewall.cfg1592bd.src='wan'
firewall.cfg1592bd.proto='icmp'
firewall.cfg1592bd.icmp_type='echo-request'
firewall.cfg1592bd.family='ipv4'
firewall.cfg1592bd.target='ACCEPT'
firewall.cfg1692bd='rule'
firewall.cfg1692bd.name='Allow-IGMP'
firewall.cfg1692bd.src='wan'
firewall.cfg1692bd.proto='igmp'
firewall.cfg1692bd.family='ipv4'
firewall.cfg1692bd.target='ACCEPT'
firewall.cfg1792bd='rule'
firewall.cfg1792bd.name='Allow-DHCPv6'
firewall.cfg1792bd.src='wan'
firewall.cfg1792bd.proto='udp'
firewall.cfg1792bd.dest_port='546'
firewall.cfg1792bd.family='ipv6'
firewall.cfg1792bd.target='ACCEPT'
firewall.cfg1892bd='rule'
firewall.cfg1892bd.name='Allow-MLD'
firewall.cfg1892bd.src='wan'
firewall.cfg1892bd.proto='icmp'
firewall.cfg1892bd.src_ip='fe80::/10'
firewall.cfg1892bd.icmp_type+='130/0'
firewall.cfg1892bd.icmp_type+='131/0'
firewall.cfg1892bd.icmp_type+='132/0'
firewall.cfg1892bd.icmp_type+='143/0'
firewall.cfg1892bd.family='ipv6'
firewall.cfg1892bd.target='ACCEPT'
firewall.cfg1992bd='rule'
firewall.cfg1992bd.name='Allow-ICMPv6-Input'
firewall.cfg1992bd.src='wan'
firewall.cfg1992bd.proto='icmp'
firewall.cfg1992bd.icmp_type+='echo-request'
firewall.cfg1992bd.icmp_type+='echo-reply'
firewall.cfg1992bd.icmp_type+='destination-unreachable'
firewall.cfg1992bd.icmp_type+='packet-too-big'
firewall.cfg1992bd.icmp_type+='time-exceeded'
firewall.cfg1992bd.icmp_type+='bad-header'
firewall.cfg1992bd.icmp_type+='unknown-header-type'
firewall.cfg1992bd.icmp_type+='router-solicitation'
firewall.cfg1992bd.icmp_type+='neighbour-solicitation'
firewall.cfg1992bd.icmp_type+='router-advertisement'
firewall.cfg1992bd.icmp_type+='neighbour-advertisement'
firewall.cfg1992bd.limit='1000/sec'
firewall.cfg1992bd.family='ipv6'
firewall.cfg1992bd.target='ACCEPT'
firewall.cfg1a92bd='rule'
firewall.cfg1a92bd.name='Allow-ICMPv6-Forward'
firewall.cfg1a92bd.src='wan'
firewall.cfg1a92bd.dest='*'
firewall.cfg1a92bd.proto='icmp'
firewall.cfg1a92bd.icmp_type+='echo-request'
firewall.cfg1a92bd.icmp_type+='echo-reply'
firewall.cfg1a92bd.icmp_type+='destination-unreachable'
firewall.cfg1a92bd.icmp_type+='packet-too-big'
firewall.cfg1a92bd.icmp_type+='time-exceeded'
firewall.cfg1a92bd.icmp_type+='bad-header'
firewall.cfg1a92bd.icmp_type+='unknown-header-type'
firewall.cfg1a92bd.limit='1000/sec'
firewall.cfg1a92bd.family='ipv6'
firewall.cfg1a92bd.target='ACCEPT'
firewall.cfg1b92bd='rule'
firewall.cfg1b92bd.name='Allow-IPSec-ESP'
firewall.cfg1b92bd.src='wan'
firewall.cfg1b92bd.dest='lan'
firewall.cfg1b92bd.proto='esp'
firewall.cfg1b92bd.target='ACCEPT'
firewall.cfg1c92bd='rule'
firewall.cfg1c92bd.name='Allow-ISAKMP'
firewall.cfg1c92bd.src='wan'
firewall.cfg1c92bd.dest='lan'
firewall.cfg1c92bd.dest_port='500'
firewall.cfg1c92bd.proto='udp'
firewall.cfg1c92bd.target='ACCEPT'
firewall.cfg1d92bd='rule'
firewall.cfg1d92bd.name='Remote management for IPv6 Pod project admins'
firewall.cfg1d92bd.src='wan'
firewall.cfg1d92bd.src_ip+='2001:468:f01::/56'
firewall.cfg1d92bd.dest_port='22 80 443 7681 667'
firewall.cfg1d92bd.target='ACCEPT'
firewall.cfg1d92bd.proto+='tcp'
firewall.cfg1e3837='redirect'
firewall.cfg1e3837.target='DNAT'
firewall.cfg1e3837.name='vlan103_v6_D64 - DNS64 redirect'
firewall.cfg1e3837.family='ipv6'
firewall.cfg1e3837.src='lan'
firewall.cfg1e3837.src_dip='2001:468:f01:2303::1'
firewall.cfg1e3837.src_dport='53'
firewall.cfg1e3837.dest_port='6453'
firewall.cfg1e3837.reflection='0'
firewall.cfg1f3837='redirect'
firewall.cfg1f3837.target='DNAT'
firewall.cfg1f3837.name='vlan104_v6_DP64 - DNS64 redirect'
firewall.cfg1f3837.family='ipv6'
firewall.cfg1f3837.src='lan'
firewall.cfg1f3837.src_dip='2001:468:f01:2304::1'
firewall.cfg1f3837.src_dport='53'
firewall.cfg1f3837.dest_port='6453'
firewall.cfg1f3837.reflection='0'
firewall.cfg203837='redirect'
firewall.cfg203837.target='DNAT'
firewall.cfg203837.name='vlan106_6M_DP64 - DNS64 redirect'
firewall.cfg203837.family='ipv6'
firewall.cfg203837.src='lan'
firewall.cfg203837.src_dip='2001:468:f01:2306::1'
firewall.cfg203837.src_dport='53'
firewall.cfg203837.dest_port='6453'
firewall.cfg203837.reflection='0'
firewall.cfg2192bd='rule'
firewall.cfg2192bd.name='Allow DNS'
firewall.cfg2192bd.src='lan'
firewall.cfg2192bd.dest_port='53 6453'
firewall.cfg2192bd.target='ACCEPT'
-firewall.cfg03dc81
-firewall.cfg02dc81
network.wg0='interface'
network.wg0.proto='wireguard'
network.wg0.private_key='oM+m5ntJNg4IfiMOiL2QjWjWeALN8eJTuCLHMgKs2Xo='
network.wg0.addresses+='2001:468:f01:2300::1/128'
network.cfg0996fc='wireguard_wg0'
network.cfg0996fc.description='tunnel1.ipv6-pod.info'
network.cfg0996fc.public_key='asGLRr0ZrW+SSgX7psFo2IeLVM62cmVIWzIjS6AR9QI='
network.cfg0996fc.route_allowed_ips='1'
network.cfg0996fc.endpoint_host='ipv4.tunnel1.ipv6-pod.info'
network.cfg0996fc.endpoint_port='51820'
network.cfg0996fc.persistent_keepalive='60'
network.cfg0996fc.allowed_ips+='::/0'
network.vlan101_DualStk='interface'
network.vlan101_DualStk.proto='static'
network.vlan101_DualStk.device='br-lan.101'
network.vlan101_DualStk.ipaddr='192.168.1.1'
network.vlan101_DualStk.netmask='255.255.255.0'
network.vlan101_DualStk.ip6addr+='2001:468:f01:2301::1/64'
network.vlan101_DualStk.delegate='0'
network.vlan102_v6Only='interface'
network.vlan102_v6Only.proto='static'
network.vlan102_v6Only.device='br-lan.102'
network.vlan102_v6Only.ip6addr+='2001:468:f01:2302::1/64'
network.vlan103_v6_D64='interface'
network.vlan103_v6_D64.proto='static'
network.vlan103_v6_D64.device='br-lan.103'
network.vlan103_v6_D64.ip6addr+='2001:468:f01:2303::1/64'
network.vlan104_v6_DP64='interface'
network.vlan104_v6_DP64.proto='static'
network.vlan104_v6_DP64.device='br-lan.104'
network.vlan104_v6_DP64.ip6addr+='2001:468:f01:2304::1/64'
network.vlan105_v6_P64='interface'
network.vlan105_v6_P64.proto='static'
network.vlan105_v6_P64.device='br-lan.105'
network.vlan105_v6_P64.ip6addr+='2001:468:f01:2305::1/64'
network.vlan106_6M_DP64='interface'
network.vlan106_6M_DP64.proto='static'
network.vlan106_6M_DP64.device='br-lan.106'
network.vlan106_6M_DP64.ip6addr+='2001:468:f01:2306::1/64'
network.vlan106_6M_DP64.ipaddr='192.168.6.1'
network.vlan106_6M_DP64.netmask='255.255.255.0'
network.vlan107_6M_P64='interface'
network.vlan107_6M_P64.proto='static'
network.vlan107_6M_P64.device='br-lan.107'
network.vlan107_6M_P64.ip6addr+='2001:468:f01:2307::1/64'
network.vlan107_6M_P64.ipaddr='192.168.7.1'
network.vlan107_6M_P64.netmask='255.255.255.0'
network.cfg110f15='device'
network.cfg110f15.name='br-lan'
network.cfg110f15.type='bridge'
network.cfg110f15.ports+='lan1'
network.cfg110f15.ports+='lan2'
network.cfg110f15.ports+='lan3'
network.cfg110f15.ports+='lan4'
network.cfg110f15.ports+='lan5'
network.cfg120f15='device'
network.cfg120f15.name='lan1'
network.cfg120f15.macaddr='94:83:c4:a2:06:c9'
network.cfg130f15='device'
network.cfg130f15.name='lan2'
network.cfg130f15.macaddr='94:83:c4:a2:06:c9'
network.cfg140f15='device'
network.cfg140f15.name='lan3'
network.cfg140f15.macaddr='94:83:c4:a2:06:c9'
network.cfg150f15='device'
network.cfg150f15.name='lan4'
network.cfg150f15.macaddr='94:83:c4:a2:06:c9'
network.cfg160f15='device'
network.cfg160f15.name='lan5'
network.cfg160f15.macaddr='94:83:c4:a2:06:c9'
network.cfg17a1b0='bridge-vlan'
network.cfg17a1b0.device='br-lan'
network.cfg17a1b0.vlan='101'
network.cfg17a1b0.ports+='lan1'
network.cfg18a1b0='bridge-vlan'
network.cfg18a1b0.device='br-lan'
network.cfg18a1b0.vlan='102'
network.cfg18a1b0.ports+='lan2'
network.cfg19a1b0='bridge-vlan'
network.cfg19a1b0.device='br-lan'
network.cfg19a1b0.vlan='103'
network.cfg19a1b0.ports+='lan3'
network.cfg1aa1b0='bridge-vlan'
network.cfg1aa1b0.device='br-lan'
network.cfg1aa1b0.vlan='104'
network.cfg1aa1b0.ports+='lan4'
network.cfg1ba1b0='bridge-vlan'
network.cfg1ba1b0.device='br-lan'
network.cfg1ba1b0.vlan='105'
network.cfg1ca1b0='bridge-vlan'
network.cfg1ca1b0.device='br-lan'
network.cfg1ca1b0.vlan='106'
network.cfg1da1b0='bridge-vlan'
network.cfg1da1b0.device='br-lan'
network.cfg1da1b0.vlan='107'
network.cfg1da1b0.ports+='lan7'
system.cfg05e48a='system'
system.cfg05e48a.hostname='pod23'
system.cfg05e48a.timezone='UTC'
system.cfg05e48a.ttylogin='0'
system.cfg05e48a.log_size='64'
system.cfg05e48a.urandom_seed='0'
system.cfg05e48a.compat_version='1.0'
system.ntp.server+='0.openwrt.pool.ntp.org'
system.ntp.server+='1.openwrt.pool.ntp.org'
system.ntp.server+='2.openwrt.pool.ntp.org'
system.ntp.server+='3.openwrt.pool.ntp.org'
wireless.wifinet0='wifi-iface'
wireless.wifinet0.device='radio0'
wireless.wifinet0.mode='ap'
wireless.wifinet0.ssid='pod23-DualStack'
wireless.wifinet0.encryption='psk2+ccmp'
wireless.wifinet0.key='hawaii50'
wireless.wifinet0.ieee80211w='2'
wireless.wifinet0.network='vlan101_DualStk'
wireless.wifinet1='wifi-iface'
wireless.wifinet1.device='radio1'
wireless.wifinet1.mode='ap'
wireless.wifinet1.ssid='pod23-DualStack'
wireless.wifinet1.encryption='psk2+ccmp'
wireless.wifinet1.key='hawaii50'
wireless.wifinet1.ieee80211w='2'
wireless.wifinet1.network='vlan101_DualStk'
wireless.wifinet2='wifi-iface'
wireless.wifinet2.device='radio0'
wireless.wifinet2.mode='ap'
wireless.wifinet2.ssid='pod23-IPv6Only'
wireless.wifinet2.encryption='psk2+ccmp'
wireless.wifinet2.key='hawaii50'
wireless.wifinet2.ieee80211w='2'
wireless.wifinet2.network='vlan102_v6Only'
wireless.wifinet3='wifi-iface'
wireless.wifinet3.device='radio1'
wireless.wifinet3.mode='ap'
wireless.wifinet3.ssid='pod23-IPv6Only'
wireless.wifinet3.encryption='psk2+ccmp'
wireless.wifinet3.key='hawaii50'
wireless.wifinet3.ieee80211w='2'
wireless.wifinet3.network='vlan102_v6Only'
wireless.wifinet4='wifi-iface'
wireless.wifinet4.device='radio0'
wireless.wifinet4.mode='ap'
wireless.wifinet4.ssid='pod23-IPv6Only-D64'
wireless.wifinet4.encryption='psk2+ccmp'
wireless.wifinet4.key='hawaii50'
wireless.wifinet4.ieee80211w='2'
wireless.wifinet4.network='vlan103_v6_D64'
wireless.wifinet5='wifi-iface'
wireless.wifinet5.device='radio1'
wireless.wifinet5.mode='ap'
wireless.wifinet5.ssid='pod23-IPv6Only-D64'
wireless.wifinet5.encryption='psk2+ccmp'
wireless.wifinet5.key='hawaii50'
wireless.wifinet5.ieee80211w='2'
wireless.wifinet5.network='vlan103_v6_D64'
wireless.wifinet6='wifi-iface'
wireless.wifinet6.device='radio0'
wireless.wifinet6.mode='ap'
wireless.wifinet6.ssid='pod23-IPv6Only-DP64'
wireless.wifinet6.encryption='psk2+ccmp'
wireless.wifinet6.key='hawaii50'
wireless.wifinet6.ieee80211w='2'
wireless.wifinet6.network='vlan104_v6_DP64'
wireless.wifinet7='wifi-iface'
wireless.wifinet7.device='radio1'
wireless.wifinet7.mode='ap'
wireless.wifinet7.ssid='pod23-IPv6Only-DP64'
wireless.wifinet7.encryption='psk2+ccmp'
wireless.wifinet7.key='hawaii50'
wireless.wifinet7.ieee80211w='2'
wireless.wifinet7.network='vlan104_v6_DP64'
wireless.wifinet8='wifi-iface'
wireless.wifinet8.device='radio0'
wireless.wifinet8.mode='ap'
wireless.wifinet8.ssid='pod23-IPv6Only-P64'
wireless.wifinet8.encryption='psk2+ccmp'
wireless.wifinet8.key='hawaii50'
wireless.wifinet8.ieee80211w='2'
wireless.wifinet8.network='vlan105_v6_P64'
wireless.wifinet9='wifi-iface'
wireless.wifinet9.device='radio1'
wireless.wifinet9.mode='ap'
wireless.wifinet9.ssid='pod23-IPv6Only-P64'
wireless.wifinet9.encryption='psk2+ccmp'
wireless.wifinet9.key='hawaii50'
wireless.wifinet9.ieee80211w='2'
wireless.wifinet9.network='vlan105_v6_P64'
wireless.wifinet10='wifi-iface'
wireless.wifinet10.device='radio0'
wireless.wifinet10.mode='ap'
wireless.wifinet10.ssid='pod23-IPv6Mostly-DP64'
wireless.wifinet10.encryption='psk2'
wireless.wifinet10.key='hawaii50'
wireless.wifinet10.ieee80211w='2'
wireless.wifinet10.network='vlan106_6M_DP64'
wireless.wifinet11='wifi-iface'
wireless.wifinet11.device='radio1'
wireless.wifinet11.mode='ap'
wireless.wifinet11.ssid='pod23-IPv6Mostly-DP64'
wireless.wifinet11.encryption='psk2+ccmp'
wireless.wifinet11.key='hawaii50'
wireless.wifinet11.ieee80211w='2'
wireless.wifinet11.network='vlan106_6M_DP64'
wireless.wifinet12='wifi-iface'
wireless.wifinet12.device='radio0'
wireless.wifinet12.mode='ap'
wireless.wifinet12.ssid='pod23-IPv6Mostly-P64'
wireless.wifinet12.encryption='psk2+ccmp'
wireless.wifinet12.key='hawaii50'
wireless.wifinet12.ieee80211w='2'
wireless.wifinet12.network='vlan107_6M_P64'
wireless.wifinet13='wifi-iface'
wireless.wifinet13.device='radio1'
wireless.wifinet13.mode='ap'
wireless.wifinet13.ssid='pod23-IPv6Mostly-P64'
wireless.wifinet13.encryption='psk2+ccmp'
wireless.wifinet13.key='hawaii50'
wireless.wifinet13.ieee80211w='2'
wireless.wifinet13.network='vlan107_6M_P64'
=========== Set Password  =========
Changing password for root
New password: 
Bad password: too weak
Retype password: 
passwd: password for root changed by root
=========== Config Commit Changes =========
Look around, then run the following commands to activate config:
uci commit
reload_config
=========== Add remote admin ssh key =========
Pau

If the WireGuard tunnel is required (e.g. no native IPv6 on the WAN), then you will need to reboot the router to enable the WireGuard interface.

Demo

So let's run the demo, and you can connect your laptops (with Wireshark installed)and give it a test.

The table from (above) lists the technologies available on the Test Pod

SSID IPv6 Transition Tech
Dual-Stack Traditional IPv4 & IPv6
IPv6-Only None, IPv6 only
IPv6-Only-D64 DNS64
IPv6Only-DP64 DNS64 and PREF64
IPv6Only-P64 PREF64
IPv6Mostly-DP64 DNS64, PREF64 & DHCPv4 Option 108
IPv6Mostly-P64 PREF64 & DHCPv4 Option 108

The IPv6 Test Pod

Because the expansion of the Internet can only be via IPv6 (we have run out of IPv4 addresses), it is time to start testing which IPv6 network technologies will work for you and your applications. The IPv6 Test Pod is a tool to quickly determine which IPv6 network transition technology is best for your network.


Notes:

13 August 2025