Anleitung: Asus Router (mit Merlin Image) selektives Routing

sagxgas

New Member
Hallo zusammen

Sollte jemand mit einem Asus Router (mit Merlin Image) nach einer Lösung suchen wie man trotz aktiver VPN-Verbindung zumindest im eigenen Land Netflix nutzen kann, dann könnte dies vielleicht das Problem lösen. So funktioniert zumindest bei mir Netflix bei einer aktiven VPN-Verbindung (zu einem Schweizer VPN Server).
Die VPN-Verbindunf ist über OpenVPN direkt auf dem Router permanent aktiv und meine Clients laufen über diese Verbindung.

Was wird benötigt?
- Asus Router mit Merlin Image
- USB Stick

Los geht es.

1. USB-Stick am Router einstecken
2. SSH auf dem Aus Router (mit Merlin Image) aktivieren, ACHTUNG ich würde SSH NUR für LAN aktivieren und nicht auch noch für WAN (Sicherheitsrisiko)
3. Über Putty (Win) oder Terminal (OSX) auf den Router verbinden
4. AMTM installieren mit curl -Os https://diversion.ch/amtm/amtm && sh amtm installieren ( https://diversion.ch/amtm.html )
5. nach der Installation von AMTM starten wir ATM mit dem Command /jffs/scripts/amtm
6. den USB-Stick über das Menü "Run format disk" formatieren (fd ausführen)
7. USB-Stick nach den empfohlenen Einstellungen formatieren
8. Anschliessend unter AMTM das "Entware Package" installieren ( https://github.com/Entware/Entware )

nun ist alles bereit um weitere Addons für den Router zu installieren

9. Installation von x3mRouting (Menü: 6) ( https://github.com/Xentrk/x3mRouting )
10. Für das Routing von Netflix habe ich die Methode 3 gewählt, je nach Bedürfnisse könnte auch die Methode 2 für einige eine Option sein.
11. Wenn die Installation abgeschlossen ist, müssen ein paar Commands ausgeführt werden, dafür können wir AMTM beenden.

Wichtig ist noch zu verstehen wie die Parameter der Commands lautet:

0 = WAN / 1 = OVPNC1 / 2 = OVPNC2 / 3 = OVPNC3 / 4 = OVPNC4 / 5 = OVPNC5

Also in diesem Fall "0" wird der Traffic von Netflix über WAN geleitet, alles andere läuft weiterhin über die definierte VPN Connection 1-5

Code:
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 NETFLIX-812 AS812
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 NETFLIX-2906 AS2906
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 NETFLIX-14618 AS14618
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 NETFLIX-394406 AS394406
sh /jffs/scripts/x3mRouting/load_AMAZON_ipset_iface.sh 0 AMAZON-GLOBAL GLOBAL
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 AMAZON-16509 AS16509
Diese Commands erstellen eine IPSET list. Ob diese erfolgreich war, können wir mit folgenden Commands prüfen (Zahlenwerte können abweichen)

Code:
admin@RT-AC86U-3588:/jffs/scripts# liststats
AMAZON-16509 - 3080
AMAZON-GLOBAL - 43
NETFLIX-14618 - 189
NETFLIX-2906 - 150
NETFLIX-394406 - 2
NETFLIX-812 - 574
die IPTables können wir ebenfalls noch prüfen

Code:
admin@RT-AC86U-3588:/jffs/scripts# iptables -nvL PREROUTING -t mangle --line
Chain PREROUTING (policy ACCEPT 1810 packets, 279K bytes)
num   pkts bytes target     prot opt in     out     source               destination       
1    69588   67M MARK       all  --  tun11  *       0.0.0.0/0            0.0.0.0/0            MARK xset 0x1/0x7
2        0     0 MARK       all  --  br0    *       0.0.0.0/0            0.0.0.0/0            match-set NETFLIX-812 dst MARK or 0x8000
3        0     0 MARK       all  --  br0    *       0.0.0.0/0            0.0.0.0/0            match-set NETFLIX-2906 dst MARK or 0x8000
4       47  3226 MARK       all  --  br0    *       0.0.0.0/0            0.0.0.0/0            match-set NETFLIX-14618 dst MARK or 0x8000
5        0     0 MARK       all  --  br0    *       0.0.0.0/0            0.0.0.0/0            match-set NETFLIX-394406 dst MARK or 0x8000
6        0     0 MARK       all  --  br0    *       0.0.0.0/0            0.0.0.0/0            match-set AMAZON-GLOBAL dst MARK or 0x8000
7       16  2832 MARK       all  --  br0    *       0.0.0.0/0            0.0.0.0/0            match-set AMAZON-16509 dst MARK or 0x8000
wie auch noch die IP-Rule

Code:
admin@RT-AC86U-3588:/jffs/scripts# ip rule
0:    from all lookup local
9990:    from all fwmark 0x8000/0x8000 lookup main
10101:    from 192.168.99.160 lookup ovpnc1
10102:    from 192.168.99.79 lookup ovpnc1
10103:    from 192.168.99.154 lookup ovpnc1
10104:    from 192.168.99.104 lookup ovpnc1
10105:    from 192.168.99.12 lookup ovpnc1
10106:    from 192.168.99.53 lookup ovpnc1
10107:    from 192.168.99.51 lookup ovpnc1
32766:    from all lookup main
32767:    from all lookup default
12. Auf Web-GUI des Router müssen wir zwingend noch folgendes beim entsprechenden VPN Client setzen

Code:
Accept DNS Configuration = Exclusive
Force Internet traffic through tunnel = Police Rules (strict)
Nun kann man testen ob Netflix läuft

Damit die IPSET list automatisch erstellt wird bei jedem Router Restart empfehlt es sich diese über die nat-start Datei einzutragen

Code:
#!/bin/sh
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 NETFLIX-812 AS812
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 NETFLIX-2906 AS2906
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 NETFLIX-14618 AS14618
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 NETFLIX-394406 AS394406
sh /jffs/scripts/x3mRouting/load_AMAZON_ipset_iface.sh 0 AMAZON-GLOBAL GLOBAL
sh /jffs/scripts/x3mRouting/load_ASN_ipset_iface.sh 0 AMAZON-16509 AS16509
Ich hoffe es funktioniert und ich konnte etwas helfen.

Gruss
 
Top