blob: 35d6a2a235459f7f8a1a862bf12c179d6a60762d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#!/bin/sh
set -x
# Inside of dnsmasq.conf we have:
#
# server=/c.youtube.com/127.0.0.1#39128
# server=/netflix.com/127.0.0.1#39129
#
# The devices tun11 and tun12 are OpenVPN tun network interfaces.
#
# This script routes youtube videos over tun12 and netflix over tun11.
sets() {
iptables -t mangle -D PREROUTING -m set --set "$1" dst,src -j MARK --set-mark "$2" 2>/dev/null
ipset -X "$1" 2>/dev/null
ipset -N "$1" iphash
iptables -t mangle -A PREROUTING -m set --set "$1" dst,src -j MARK --set-mark "$2"
}
sets youtube 1
sets netflix 2
routes() {
echo 0 > /proc/sys/net/ipv4/conf/$2/rp_filter
ip route flush table $1 2>/dev/null
ip rule del table $1 2>/dev/null
ip rule add fwmark $1 table $1 priority 1000
ip route add default via "$(ip route show dev $2 | head -n 1 | cut -d ' ' -f 1)" table $1
}
routes 1 tun12
routes 2 tun11
killall ipset-dns 2>/dev/null
ipset-dns youtube 39128 8.8.8.8
ipset-dns netflix 39129 8.8.8.8
killall -SIGHUP dnsmasq # Clear dnsmasq's cache
|