:) Направих го ....
Май май съм забравил да си запазя конфига на кернела и нищо не съм
компилирал :)
Както и да е оправих се! Благодаря много!


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

Reply via email to