@Xentrk
I think you've done a great job with your script, I'm still working on getting it to work properly against amazon prime, but that is just because I haven't had enough time to get back to it. I wanted to ask do you think what you have done could possibly be baked into the merlin code so that we could just configure this through the UI without copying scripts and editing lines of code.
Thanks!
The
IPSET_Netflix.sh script in the
repository will route both Amazon Prime and Netflix. Amazon Prime routing was not done intentionally when I first wrote the script. But because Netflix hosts on the Amazon AWS server farm in US, I included all of the AWS server farm addresses in US, which includes Amazon Prime. This past year, Amazon Prime also started blocking known VPN servers.
IPSET_Netflix_Domains.sh uses a different technique and only includes the Amazon servers Netflix hosts on.
I do have a solution that
@Martineau shared with me that is more integrated with the firmware GUI and "user friendly". See the screen shot in the
post. This past weekend, I finished the coding and have it working for routing IPSET lists thru the VPN interfaces (I think some additional changes would be required to route an IPSET list thru the WAN interface though). I have to "beautify" the code do a QA check before posting to GitHub. I also need to write an installer. Unfortunately, I had to leave town on Sunday and work will be delayed until I return in approximately two weeks.
The only part that requires coding by the user is creating the IPSET list. To help simplify the process,
@Martineau came up with script based solution of passing parms to the script for IPSET lists specified inside of dnsmasq to make it more user friendly for users. I made some mods so the user can also specify manually created lists or an AS number. Amazon is unique because the source of the IPv4 addresses is json file.
Following is an example what I came up with so far.
Code:
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_AMAZON_ipset.sh
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_MANUAL_ipset.sh BBC
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_MANUAL_ipset.sh BBC_IPLAYER
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_MANUAL_ipset.sh CBS
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_MANUAL_ipset.sh SLINGTV_LIST
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_ASN_ipset.sh HULU AS23286
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_ASN_ipset.sh NETFLIX AS2906
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_ASN_ipset.sh SLINGTV AS35873
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_DNSMASQ_ipset.sh CBS_WEB cbs.com,www.cbs.com,cbsnews.com,www.cbsnews.com,cbssports.com,www.cbssports.com
sh /jffs/scripts/Asuswrt-Merlin-Selective-Routing/load_DNSMASQ_ipset.sh BBC_WEB bbc.com,bbci.co.uk,bbc.co.uk
After trying all of the different firmware, pfSense really shines when it comes to selective routing. It can all be done in the Web GUI using the package pfBlockerNG to create the lists followed by defining the routing rules in the Firewall-LAN screen. The changes described above will definitely help make selective routing more user friendly for Asuswrt-Merlin Firmware users.