:) Направих го .... Май май съм забравил да си запазя конфига на кернела и нищо не съм компилирал :) Както и да е оправих се! Благодаря много!
2008/1/16, Vladimir Vitkov <[EMAIL PROTECTED]>: > > # Remote networks with static routes > ip r a < NETWORK IN ISP1 > via $ISP1_GW dev $ISP1_IF > ip r a < NETWORK IN ISP2 > via $ISP2_GW dev $ISP2_IF > > On 16/01/2008, valentin Petkov <[EMAIL PROTECTED]> wrote: > > Здр, радвам се за отговора който получих, но този скрипт в статията на > soho > > кода е отрязан на по-дългите редове и за това и не съм си играл да го > > ползвам, но все пак ще го помъча и него :) Що се отнася ди кернела ... > то > > съм го прекомпилирал с опциите! > > М/у другото ще се пробвам сам да си добавя prohibit :) > > И все пак да си питам: Как да рутирам пакетите отправени към определени > > класове мрежи да минават от определения за тях гейтуей? > > > > 2008/1/15, Vladimir Vitkov <[EMAIL PROTECTED]>: > > > Здрасти, добър вечер, приятна бира и т.н. > > > > > > Първо за да балансираш в кернела ти трябват няколко опции най-вече > > > MULTIPATH_* и поне една от MULTIPATH_ дисциплините. Лично аз съм фен > > > на WRR (Weighted Round Robin) > > > > > > Второ в скрипта ти липсва блокиране на рутирането през доставчик т.е. > > > на края във всяка таблица трябва да имаш prohibit за да може все пак в > > > някакъв момент да се стигне и до другия доставчик. > > > > > > трето > > http://www.getoto.net/2007/06/the-perfect-soho-router-part-4/pref/bg/ > > > към средата на страницата има даден пример за работещо балансиране на > > > два доставчика със един вътрешен сегмент. Предполагам че ще ти свърши > > > работа. Ползвам го от доста време и работи безпроблемно (е почти, > > > понеже ползвам нетис и онлайн при изпадане на нетис малко бавно се > > > завърта трафика към онлайн но и за това си има мръсни нимера) > > > > > > On 15/01/2008, valentin Petkov < [EMAIL PROTECTED]> wrote: > > > > Здр, > > > > > > > > Къде ли не питах и не четох ... сам тук ми остана надецдата някой да > ми > > > > помогне. > > > > Ползвам скрипта по-доло за рутиране на интернета от 2 доставчика и > две > > > > локални мрежи и се опитвам да направя load balancing обаче нещо така > и > > не се > > > > получава. Нито ползва двете мрежи, нито ако дръпна едната другата да > > подържа > > > > ... с две думи нищо не прави, а видима причина за това няма? Ще съм > > особенно > > > > благодарен ако някой ми подъде едно рамо да го оправим този скрипт, > че > > вече > > > > от няколко седмици си блъскам главата над него :( > > > > Ип адресите няма да ги пиша, то си ги има в скрипта. > > > > > > > > Та скрипта е: > > > > > > > > > > > > #! /bin/sh > > > > # Load balancing script by mambang > > > > # using 4 nics, 2 isp, 2 lan segment > > > > # > > > > > > PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin > > > > IFCONFIG=/sbin/ifconfig > > > > NETWORK=/etc/init.d/networking > > > > IP=/sbin/ip > > > > IPTABLES=/sbin/iptables > > > > > > > > #Device 1 connected to ISP1 > > > > DEV1=eth3 > > > > NET1=84.54.160.198 > > > > SUB1=84.54.160.0/30 > > > > GW1=84.54.160.197 > > > > > > > > #Device 2 connected to ISP2 > > > > DEV2=eth0 > > > > NET2= 192.168.1.2 > > > > SUB2=192.168.1.0/24 > > > > GW2=192.168.1.1 > > > > > > > > #LAN device connected to LAN group1 > > > > DEV3=eth1 > > > > LAN1= 192.168.0.1 > > > > SUB3=192.168.0.0/24 > > > > > > > > #LAN device connected to LAN group2 > > > > DEV4=eth2 > > > > LAN2= 192.168.142.1 > > > > SUB4=192.168.142.0/24 > > > > > > > > > > > > #---------------------DO THIS MANUALLY------------ > > > > #echo "1 T1" >> /etc/$IProute2/rt_tables > > > > #echo "2 T2" >> /etc/$IProute2/rt_tables > > > > #------------------------------------------------- > > > > > > > > START_ROUTING(){ > > > > #segement1 > > > > $IP route add $SUB1 dev $DEV1 src $NET1 table T1 > > > > $IP route add $SUB3 dev $DEV3 src $LAN1 table T1 > > > > $IP route add default via $GW1 table T1 > > > > > > > > #segment2 > > > > $IP route add $SUB2 dev $DEV2 src $NET2 table T2 > > > > $IP route add $SUB4 dev $DEV4 src LAN2 table T1 > > > > $IP route add default via $GW2 table T2 > > > > > > > > #rules for all segment > > > > $IP rule add from $NET1 table T1 > > > > $IP rule add from $LAN1 table T1 > > > > $IP rule add from $NET2 table T2 > > > > $IP rule add from $LAN2 table T1 > > > > > > > > #using iptable to mark packets > > > > $IPTABLES -t mangle -A OUTPUT --source $SUB3 -j MARK --set-mark > 0x10 > > > > $IPTABLES -t mangle -A OUTPUT --source $SUB4 -j MARK --set-mark > 0x20 > > > > $IPTABLES -t nat -A POSTROUTING -o $DEV1 -j SNAT --to-source=$NET1 > > > > $IPTABLES -t nat -A POSTROUTING -o $DEV2 -j SNAT --to-source=$NET2 > > > > > > > > #default gateway for other > > > > $IP route add default via $GW1 > > > > > > > > #avoids incoming packets from rejected > > > > echo 0 > /proc/sys/net/ipv4/conf/$DEV1/rp_filter > > > > echo 0 > /proc/sys/net/ipv4/conf/$DEV2/rp_filter > > > > > > > > # adding rule for fwmark > > > > $IP rule add fwmark 0x10 pri 100 table T1 > > > > $IP rule add fwmark 0x20 pri 101 table T2 > > > > > > > > # make sure packets comes and returns using same route > > > > ip rule add from $NET1 pri 200 table T1 > > > > ip rule add from $NET2 pri 300 table T2 > > > > > > > > } > > > > > > > > BALANCING(){ > > > > #load balancing > > > > #$IP route add default scope global nexthop via $GW1 dev $DEV1 > weight 1 > > \ > > > > #nexthop via $GW2 dev $DEV2 weight 1 > > > > $IP route replace default equalize \ > > > > nexthop via $GW1 dev $DEV1 \ > > > > nexthop via $GW2 dev $DEV2 > > > > } > > > > > > > > > > > > #-------------flushes all route and rule------------------- > > > > REMOVE_TABLE(){ > > > > ALLDEV="eth0|eth1|et h2|eth3|lo" > > > > ALLTABLES="T1|T2" > > > > keepers="dev ($ALLDEV)" > > > > tables="lookup ($ALLTABLES)" > > > > > > > > > > > > echo > > > > echo ***Before > > > > echo "Rules..." > > > > $IP ru sh > > > > echo"" > > > > echo "Routes..." > > > > $IP ro sh > > > > echo "Rules for table T1..." > > > > $IP ro sh table T1 > > > > echo"" > > > > echo "Rules for table T2..." > > > > $IP ro sh table T2 > > > > echo"" > > > > > > > > $IP route delete default &>/dev/null > > > > $IP route show | awk -v k="$keepers" '$0 !~ k \ > > > > { print " $IP route delete " $0 | "bash" }' > > > > > > > > for wan in ${ALLTABLES//|/ }; do > > > > $IP route flush table $wan &>/dev/null > > > > done > > > > > > > > $IP rule show | awk -v k="$tables" '$0 ~ k \ > > > > { sub(/from all/,""); print "ip rule del " substr($0, 5) | "bash" > }' > > > > echo "" > > > > $IP rule show | awk -v k="$tables" '$0 ~ k \ > > > > { sub(/from all/,""); print "ip rule del " substr($0, 7) | "bash" > }' > > > > echo "" > > > > echo "ALL Tables and Rules Deleted" > > > > > > > > echo "Adding default gateway ....." > > > > $IP route add default via $GW1 > > > > > > > > $IP route flush cache > > > > echo > > > > echo "***After" > > > > echo "Rules..." > > > > $IP ru sh > > > > echo "Routes..." > > > > $IP ro sh > > > > echo "Rules for table T1..." > > > > $IP ro sh table T1 > > > > echo "Rules for table T2..." > > > > $IP ro sh table T2 > > > > } > > > > > > > > > > > > case "$1" in > > > > start) > > > > echo "Creating new routing tables ....." > > > > START_ROUTING > > > > echo "Start load balancing rules ....." > > > > BALANCING > > > > echo "DONE....New routing has been added." > > > > #Flush routing cache > > > > $IP route flush cache > > > > ;; > > > > stop) > > > > REMOVE_TABLE > > > > echo "DONE....Default routing has been restore." > > > > echo "" > > > > echo "Flushing iptables mangle rules ....: > > > > iptables -F -t mangle > > > > echo "DONE" > > > > ;; > > > > *) > > > > N=/etc/init.d/splitgateway > > > > echo "Cara Guna: $N {start|stop}" >&2 > > > > exit 1 > > > > ;; > > > > esac > > > > > > > > exit 0 > > > > > > > > # end of script > > > > > > > > > > > > Принципно в локалната мрежа имам интернет, но и така не ми балансира > м/у > > > > двата доставчика а си кара само на единия. > > > > И също един последен въпрос... > > > > Тъй като знам ип адресите по класове на доставчика как да ги > изкарвам > > през > > > > съответния гейтуей ....??? > > > > > > > > Наистина ще се надявам някой да помогне! > > > > > > > > > > > > > > > > _______________________________________________ > > > > Lug-bg mailing list > > > > [email protected] > > > > http://linux-bulgaria.org/mailman/listinfo/lug-bg > > > > > > > > > > > > > > > > > -- > > > С уважение, > > > Владимир Витков > > > > > > http://www.netsecad.com > > > http://www.supportbg.com > > > _______________________________________________ > > > Lug-bg mailing list > > > [email protected] > > > http://linux-bulgaria.org/mailman/listinfo/lug-bg > > > > > > > > > _______________________________________________ > > Lug-bg mailing list > > [email protected] > > http://linux-bulgaria.org/mailman/listinfo/lug-bg > > > > > > > -- > С уважение, > Владимир Витков > > http://www.netsecad.com > http://www.supportbg.com > _______________________________________________ > Lug-bg mailing list > [email protected] > http://linux-bulgaria.org/mailman/listinfo/lug-bg >
_______________________________________________ Lug-bg mailing list [email protected] http://linux-bulgaria.org/mailman/listinfo/lug-bg
