Hallo,
was hier steht ist keine Anleitung und vielleicht stümperhaft umgesetzt !!!
Ich nutze:
1 x server im Rechenzentrum mit vollem Zugriff
1 x OpenWRT router TP-link WDR-3600
1 x Debian Rechner
1 x Huawei Mobilrouter Telefonica LTE
1 x Huawei Mobilrouter Vodafone LTE
1 x Android Mobilgerät Telekom LTE
1 x DOCSIS Kabelrouter Unitymedia
Der server (95.XXX.XXX.1) muss das Kernelmodul "bonding" nutzen können, bei vielen virtuellen servern ist das nicht möglich. Die Pakete uml-utilities (tunctl) und ifenslave müssen installiert sein, ssh root login muss aktiviert sein. Es laufen vier SSH Instanzen (port 39504, 39505, 39506, 39507)
Auf dem OpenWRT router (192.168.50.1) sind das Paket mwan3 sowie alle nötigen Treiber zum Betrieb der angeschlossenen Geräte installiert.
Anschlüsse sind: LAN - Kabelrouter, 5Ghz client - Huawei Mobilrouter, USB - Huawei Mobilrouter, USB - Android USB tethering
Alle Leitungen werden im mwan3 Menü eingerichtet, zusätzlich werden dort policies angelegt die jedes Gerät über einen der vier SSH ports routen.
Auf dem Debian Rechner (192.168.50.XXX) ist wie beim server uml-utilities und ifenslave sowie autossh installiert, er ist über LAN mit dem OpenWRT router verbunden. Es wurde ein Zertifikat erstellt und übertragen für die automatische SSH Einwahl zum server.
#router /etc/network/interfaces
iface bond0 inet static
address 172.26.0.2
netmask 255.255.255.248
bond-slaves tap5
bond_mode balance-rr
iface bond1 inet static
address 172.26.1.2
netmask 255.255.255.248
bond-slaves tap6 tap7 tap8 tap9 tap10 tap11 tap12
bond_mode balance-rr
#router bond.sh
ifdown bond0
ifdown bond1
ip link delete tap5
ip link delete tap6
ip link delete tap7
ip link delete tap8
ip link delete tap9
ip link delete tap10
ip link delete tap11
ip link delete tap12
killall -u root autossh
sleep 2
tunctl -t tap5
tunctl -t tap6
tunctl -t tap7
tunctl -t tap8
tunctl -t tap9
tunctl -t tap10
tunctl -t tap11
tunctl -t tap12
ifconfig tap5 10.8.0.2 netmask 255.255.255.0
ifconfig tap6 10.8.1.2 netmask 255.255.255.0
ifconfig tap7 10.8.2.2 netmask 255.255.255.0
ifconfig tap8 10.8.3.2 netmask 255.255.255.0
ifconfig tap9 10.8.4.2 netmask 255.255.255.0
ifconfig tap10 10.8.5.2 netmask 255.255.255.0
ifconfig tap11 10.8.6.2 netmask 255.255.255.0
ifconfig tap12 10.8.7.2 netmask 255.255.255.0
autossh -f -o Tunnel=ethernet -w 5:5 root@95.XXX.XXX.1 -p 39504 true
autossh -f -o Tunnel=ethernet -w 6:6 root@95.XXX.XXX.1 -p 39504 true
autossh -f -o Tunnel=ethernet -w 7:7 root@95.XXX.XXX.1 -p 39504 true
autossh -f -o Tunnel=ethernet -w 8:8 root@95.XXX.XXX.1 -p 39505 true
autossh -f -o Tunnel=ethernet -w 9:9 root@95.XXX.XXX.1 -p 39506 true
autossh -f -o Tunnel=ethernet -w 10:10 root@95.XXX.XXX.1 -p 39506 true
autossh -f -o Tunnel=ethernet -w 11:11 root@95.XXX.XXX.1 -p 39507 true
autossh -f -o Tunnel=ethernet -w 12:12 root@95.XXX.XXX.1 -p 39507 true
sleep 2
ip route add 95.XXX.XXX.1 via 192.168.50.1 dev eth1
ifup bond0
ifup bond1
sleep 2
sysctl net.ipv4.ip_forward=1
iptables -A FORWARD -o bond0 -s 192.168.0.0/16 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -o bond1 -s 192.168.0.0/16 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o bond0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o bond1 -j MASQUERADE
#router route.sh
ip route del 172.26.0.0/29 dev bond0
ip route del 172.26.0.0/29 dev bond0
ip route del 172.26.1.0/29 dev bond1
ip route del 172.26.1.0/29 dev bond1
ip route add 172.26.0.0/29 dev bond1
ip route add 172.26.1.0/29 dev bond1
--------------------------------------------------------------------------------------------------------------------
#server /etc/network/interfaces
iface bond0 inet static
address 172.26.0.1
netmask 255.255.255.248
bond-slaves tap5
bond_mode balance-rr
iface bond1 inet static
address 172.26.1.1
netmask 255.255.255.248
bond-slaves tap6 tap7 tap10 tap12 tap13 tap15 tap16
bond_mode balance-rr
#server bond.sh
ifdown bond0
ifdown bond1
ip link delete tap5
ip link delete tap6
ip link delete tap7
ip link delete tap8
ip link delete tap9
ip link delete tap10
ip link delete tap11
ip link delete tap12
sleep 3
tunctl -t tap5
tunctl -t tap6
tunctl -t tap7
tunctl -t tap8
tunctl -t tap9
tunctl -t tap10
tunctl -t tap11
tunctl -t tap12
ifconfig tap5 10.8.0.1 netmask 255.255.255.0
ifconfig tap6 10.8.1.1 netmask 255.255.255.0
ifconfig tap7 10.8.2.1 netmask 255.255.255.0
ifconfig tap8 10.8.3.1 netmask 255.255.255.0
ifconfig tap9 10.8.4.1 netmask 255.255.255.0
ifconfig tap10 10.8.5.1 netmask 255.255.255.0
ifconfig tap11 10.8.6.1 netmask 255.255.255.0
ifconfig tap12 10.8.7.1 netmask 255.255.255.0
ifup bond0
ifup bond1
sysctl net.ipv4.ip_forward=1
iptables -A FORWARD -o eth0 -i bond0 -s 10.0.0.0/8 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -o eth0 -i bond1 -s 10.0.0.0/8 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
#server route.sh
ip route del 172.26.0.0/29 dev bond0
ip route del 172.26.0.0/29 dev bond0
ip route del 172.26.1.0/29 dev bond1
ip route del 172.26.1.0/29 dev bond1
ip route add 172.26.0.0/29 dev bond0
ip route add 172.26.1.0/29 dev bond0
------------------------------------------------------------------------------------------------------------
Man kann also die bonding Adapter in die /etc/network/interfaces einfügen und die Skripte entsprechend anpassen, ich nutze in dem Beispiel einen Tunnel (tap5 über 39504 - UM) für den download und sieben Tunnel (tap6/tap7 über 39504 - UM, tap8 über 39505 - T, tap9/tap10 über 39506 - VF und tap11/tap12 über 39507 - TEF) für den upload.
Für die Internetnutzung kann man das default gateway auf dem Debian Rechner ersetzen durch bond1 172.26.0.1, andere Geräte im Netzwerk können auch diese Verbindung nutzen.
Wie gesagt dies ist keine Anleitung !!! Ich habe mir das nur so zusammengebastelt.
Ich freue mich über Verbesserungsvorschläge oder Erfahrungsberichte zu anderen Möglichkeiten.
MfG Antennenmann