I run Gargoyle Router (based on OpenWRT 12.09) on my TP-Link WDR4300. It works great, and I like the interface and features better than plain OpenWRT w/ LuCI.
Unfortunately, the latest experimental release of Gargoyle (1.5.9) does not seem to support IPv6:
root@Gargoyle:~# insmod /lib/modules/3.3.8/ipv6.ko insmod: can't insert '/lib/modules/3.3.8/ipv6.ko': unknown symbol in module, or unknown parameter
So I decided to compile a custom version of Gargoyle that supports everything I wanted. Using the directions here, I downloaded the latest source and compiled a custom image with the following configuration (+ means added feature, – means removed).
Base Config: usb_large (OpenVPN, Tor, BW Monitor, USB Printer and Storage support)
-Tor, obfsproxy, gargoyle-plugin-tor
+hfs, hfsplus partition support
+IPv6 support
+wide-dhcpv6-client (ipk)
+wide-dhcpv6-server (ipk)
+bridge support
+bonding support
+rdisc6 (ipk)
+traceroute6 (ipk)
+radvd (ipk)
+screen (ipk)
+sed (ipk)
+vim (ipk)
And probably a few other additions that I can’t remember. The config file can be downloaded here: config.gargoyle.usb_large.notor.ipv6
I built this configuration for the following routers:
WDR3600 / WDR4300 / WDR4310
It should be possible to change the target profile to match whatever router you want.
Attached are the factory and sysupgrade images. *WARNING* I have only tested the 4300 sysupgrade image on my personal router. Do not try these files if you’re unwilling to accept that they may not work. Have a backup method of flashing a clean image ready.
gargoyle_1.5.x-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin.tar … 6459eedd89638965e688a81b8db9c350
gargoyle_1.5.x-ar71xx-generic-tl-wdr3600-v1-squashfs-sysupgrade.bin.tar … dc2ed60282c5f155bfcb2afb7d5fdd5b
gargoyle_1.5.x-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin.tar … 1acabb6db6c37c6fcc103d04e38f8780
gargoyle_1.5.x-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin.tar … 17c5725b5522d5427462a2cb17856925
gargoyle_1.5.x-ar71xx-generic-tl-wdr4310-v1-squashfs-factory.bin.tar … 1a3cd942f3680a7e6121c9d7bc894769
gargoyle_1.5.x-ar71xx-generic-tl-wdr4310-v1-squashfs-sysupgrade.bin.tar … 8254f9289cf52fcb5455fe1e045fe801
The MD5s are for the bin file only, not the tar/gz’d file. Extract the file before running md5sum and comparing the values.
Packages
The packages for this release are hosted on my server. You can either download and transfer the ipk to your router or you can add my server to your repository list.
Downloading The IPKs
They are hosted here: http://www.uscee.com/gargoyle_052013/
Adding to opkg repository
Open the opkg configuration file at /var/opkg.conf. Add the following line:
src/gz uscee http://www.uscee.com/gargoyle_052013
Comment out the two existing src/gz lines to force opkg to read packages from my server, unless you have a specific need to also access packages in the main repositories. Then run opkg update.
Activating Native IPv6
These directions are specifically for Comcast’s native IPv6 implementation, and they are heavily based on this blog post: http://www.frameloss.org/2013/01/12/ipv6-on-comcast-using-openwrt/
Follow those directions to install wide-dhcpv6-client and radvd. I had to make the following changes to the configuration files:
For /etc/config/network:
... config interface 'wan' option ifname 'eth0.2' option proto 'dhcp' option accept_ra 1 # SET THIS TO ONE option send_rs 0 option defaultroute 1 ...
In some directions, it is also advised to set ‘na’ to 1 for dhcp6c to obtain the /128 address on the WAN interface. In my experience, this was not required and actually prevented the default IPv6 route from being created properly.
After installing and setting up the configuration files, run these commands to start IPv6:
/etc/init.d/network restart /etc/init.d/radvd start /etc/init.d/dhcp6c start
After this, you should be able to run ifconfig and see a local link IPv6 address assigned to eth0.2. You should also see both a local link and global link IPv6 address on br-lan. If your computer is IPv6 ready, you should also get assigned an IPv6 address. On the router, make sure you can ping out:
ping6 ipv6.google.com
If you cannot, check to make sure there’s a default route set by running:
root@Gargoyle:/etc# ip -6 route 2601:9:xxxx:xx::/64 dev br-lan proto kernel metric 256 fe80::/64 dev eth0 proto kernel metric 256 fe80::/64 dev eth0.2 proto kernel metric 256 fe80::/64 dev br-lan proto kernel metric 256 default via fe80::201:xxxx:xxxx:xxx dev eth0.2 proto kernel metric 1024 expires 1799sec
If you do not see a default route, try changing the ‘na’ setting in DHCP6C’s configuration file and the ‘accept_ra’ parameter for WAN in the network config file.
If you can ping google from the router, but still cannot access IPv6 pages on your network, try adding the following line to /etc/sysctl.conf:
net.ipv6.conf.all.forwarding=1
Then restart sysctl with the command /etc/init.d/sysctl restart
If everything went well, you should now be able to access IPv6 sites from your local network.
Further Reference: http://wiki.openwrt.org/doc/howto/ipv6
Could you make a custom version of Gargoyle that supports ipv6 and 3g modem support for TP-LINK TL-MR3420 ?