Ενώνοντας 2 DSL για διπλό bandwidth

Συζήτηση γύρω από θέματα λογισμικού
Post Reply
mp
AMD Athlon
Posts: 813
Joined: Sat Mar 10, 2007 12:51 pm
PWMN Wind ID: 320

Ενώνοντας 2 DSL για διπλό bandwidth

Post by mp » Sun Mar 02, 2008 12:23 pm

Τελικά μετά από αρκετή προσπάθεια κατάφερα να ενώσω δύο DSL σε linux ώστε να λειτουργούν σαν μία. Παραθέτω τα scripts που το πετυχαίνουν για όποιον ενδιαφέρεται:

Code: Select all

#!/bin/sh
# script variables: LINKNAME, IFNAME, IPLOCAL , IPREMOTE
# this is for DSL1

case "$1" in
 start)
        # disable reverse path filter on the interface
        echo 0 > /proc/sys/net/ipv4/conf/$IFNAME/rp_filter
        echo $IPREMOTE > /tmp/dsl1-gw
        echo $IFNAME > /tmp/dsl1-ifname
        # add default gateway to multilink table
        /sbin/ip route add table 1 default dev $IFNAME src $IPLOCAL
        # reply packets from the same connection
        /sbin/ip rule add from $IPLOCAL lookup 1
        # setup multipath routing if both lines are up
        if [ -s "/tmp/dsl2-ifname" ]; then
                DSL2IFNAME=`cat /tmp/dsl2-ifname`
                DSL2GW=`cat /tmp/dsl2-gw`
                /sbin/ip route del default
                /sbin/ip route add default scope global nexthop via $IPREMOTE dev $IFNAME weight 1 \
                                                        nexthop via $DSL2GW dev $DSL2IFNAME weight 1
        else
                /sbin/ip route add default dev $IFNAME
        fi
 
        ;;
 stop)
        # remove entries from multilink routing table, remove rule to reply from incoming line
        ip route flush table 1
        ip rule del from $IPLOCAL
        rm /tmp/dsl1-gw
        rm /tmp/dsl1-ifname
        if [ -s "/tmp/dsl2-ifname" ]; then
                DSL2IFNAME=`cat /tmp/dsl2-ifname`
                DSL2GW=`cat /tmp/dsl2-gw`
                /sbin/ip route add default dev $DSL2IFNAME
        fi
        ;;
 *)
        echo $"Usage: $0 {start|stop}"
        exit 1
esac
και

Code: Select all

#!/bin/sh
# script variables: LINKNAME, IFNAME, IPLOCAL , IPREMOTE
# this is for DSL2

case "$1" in
 start)
        # disable reverse path filter on the interface
        echo 0 > /proc/sys/net/ipv4/conf/$IFNAME/rp_filter
        echo $IPREMOTE > /tmp/dsl2-gw
        echo $IFNAME > /tmp/dsl2-ifname
        # add default gateway to multilink table
        /sbin/ip route add table 2 default dev $IFNAME src $IPLOCAL
        # reply packets from the same connection
        /sbin/ip rule add from $IPLOCAL lookup 2
        # setup multipath routing if both lines are up
        if [ -s "/tmp/dsl1-ifname" ]; then
                DSL1IFNAME=`cat /tmp/dsl1-ifname`
                DSL1GW=`cat /tmp/dsl1-gw`
                /sbin/ip route del default
                /sbin/ip route add default scope global nexthop via $IPREMOTE dev $IFNAME weight 1 \
                                                        nexthop via $DSL1GW dev $DSL1IFNAME weight 1
        else
                /sbin/ip route add default dev $IFNAME
        fi
 
        ;;
 stop)
        # remove entries from multilink routing table, remove rule to reply from incoming line
        ip route flush table 2
        ip rule del from $IPLOCAL
        rm /tmp/dsl2-gw
        rm /tmp/dsl2-ifname
        if [ -s "/tmp/dsl1-ifname" ]; then
                DSL1IFNAME=`cat /tmp/dsl1-ifname`
                DSL1GW=`cat /tmp/dsl1-gw`
                /sbin/ip route add default dev $DSL1IFNAME
        fi
        ;;
 *)
        echo $"Usage: $0 {start|stop}"
        exit 1
esac
Η συμπεριφορά ειδικά σε torrents με πολλαπλά connections είναι απλώς τέλεια, 100% utilisation και των δύο DSL.

mp

User avatar
korkakak
AMD Athlon
Posts: 992
Joined: Wed Mar 07, 2007 11:52 pm
PWMN Wind ID: 87
Location: Πλατεία Όλγας

Post by korkakak » Sun Mar 02, 2008 12:32 pm

εχχμμμμμ μήπως αυτό δεν είναι bonding (Ενώνοντας...) αλλά load balancing?
Voilà! In view, a humble vaudevillian veteran, cast vicariously as both victim and villain by the vicissitudes of Fate. This visage, no mere veneer of vanity, is a vestige of the vox populi, now vacant, vanished. However, this valorous visitation of a by-gone vexation, stands vivified and has vowed to vanquish these venal and virulent vermin van-guarding vice and vouchsafing the violently vicious and voracious violation of volition.

ΠΡΟΣΦΕΡΕΤΕ ΕΝΕΡΓΑ ΣΤΗΝ ΚΟΙΝΟΤΗΤΑ! ΕΜΠΛΟΥΤΙΣΤΕ ΤΟ wiki

:arrow: my blog

mp
AMD Athlon
Posts: 813
Joined: Sat Mar 10, 2007 12:51 pm
PWMN Wind ID: 320

Post by mp » Sun Mar 02, 2008 12:44 pm

korkakak wrote:εχχμμμμμ μήπως αυτό δεν είναι bonding (Ενώνοντας...) αλλά load balancing?
Για να κάνεις bonding πρέπει να έχεις τον έλεγχο και στα δύο άκρα. Προφανώς κάτι τέτοιο με DSL δε γίνεται, εκτός κι αν είναι από τον ίδιο provider και συμφωνήσουν να σου τις ενώσουν. Οπότε όταν μιλάμε για "Ενώνοντας δύο DSL" μιλάμε προφανώς για ένα τρόπο που προσπαθεί να πάρει το μέγιστο δυνατό bandwidth και από τις δύο. Θεωρητικά δεν είναι ούτε load balancing, γιατί το equal cost multipath routing δουλεύει σε επίπεδο routes και όχι load γραμμής.

mp

edit: Και μερικές επεξηγήσεις: Τα scripts πρέπει να εκτελούνται στο up και down των ppp interfaces, με παραμέτρους start και stop αντίστοιχα. Υπάρχει risk condition στα scripts, αν τη στιγμή που πέφτει μία DSL σηκώνεται η άλλη, αλλά δε προσπάθησα να το εξαλείψω.

User avatar
korkakak
AMD Athlon
Posts: 992
Joined: Wed Mar 07, 2007 11:52 pm
PWMN Wind ID: 87
Location: Πλατεία Όλγας

Post by korkakak » Sun Mar 02, 2008 1:02 pm

Ναι το ECMP είναι η απλούστερη μορφή load balancing. Μια στέλνεις από το ένα μια από το άλλο if.

Κάντο race condition οχι risk :lol:
Voilà! In view, a humble vaudevillian veteran, cast vicariously as both victim and villain by the vicissitudes of Fate. This visage, no mere veneer of vanity, is a vestige of the vox populi, now vacant, vanished. However, this valorous visitation of a by-gone vexation, stands vivified and has vowed to vanquish these venal and virulent vermin van-guarding vice and vouchsafing the violently vicious and voracious violation of volition.

ΠΡΟΣΦΕΡΕΤΕ ΕΝΕΡΓΑ ΣΤΗΝ ΚΟΙΝΟΤΗΤΑ! ΕΜΠΛΟΥΤΙΣΤΕ ΤΟ wiki

:arrow: my blog

User avatar
korkakak
AMD Athlon
Posts: 992
Joined: Wed Mar 07, 2007 11:52 pm
PWMN Wind ID: 87
Location: Πλατεία Όλγας

Post by korkakak » Sat Mar 08, 2008 4:47 pm

Και μερικά extra info μαζί με τα mechanics που δεν περιλαμβάνονται στο post του παναγιώτη εδώ:

http://lartc.org/howto/lartc.rpdb.multiple-links.html
Voilà! In view, a humble vaudevillian veteran, cast vicariously as both victim and villain by the vicissitudes of Fate. This visage, no mere veneer of vanity, is a vestige of the vox populi, now vacant, vanished. However, this valorous visitation of a by-gone vexation, stands vivified and has vowed to vanquish these venal and virulent vermin van-guarding vice and vouchsafing the violently vicious and voracious violation of volition.

ΠΡΟΣΦΕΡΕΤΕ ΕΝΕΡΓΑ ΣΤΗΝ ΚΟΙΝΟΤΗΤΑ! ΕΜΠΛΟΥΤΙΣΤΕ ΤΟ wiki

:arrow: my blog

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests