Титла: рутиране Публикувано от: runtime в Jan 08, 2008, 14:19 Здр, интересува ме как мога да рутирам интернет от две ISP? Така, че ако единият спре да върви другия, също така да мога да ползвам определени услуги от единия, които са невидими за другия?
Ще съм благодарен ако ми дадете някакъв съвет! Титла: рутиране Публикувано от: Gaara в Jan 08, 2008, 14:24 Титла: рутиране Публикувано от: runtime в Jan 08, 2008, 17:31 До тук добре направих го но като ги изпълня скриптовете и ми връща само RTNETLINK answers: File exists на почти всеки изпълнен ред... при което всякакъв вид интернет спира, също така в route таблицата не влиза нищо ... като напша route -n няма един гейтуей вътре ...
Титла: рутиране Публикувано от: Gaara в Jan 08, 2008, 19:15 Дай едно по едно
![]() Покажи първо htb скриптовете, както и каква е точно твоята постановка..... направо дай съпка по стъпка какво си направил ![]() Титла: рутиране Публикувано от: runtime в Jan 08, 2008, 20:01 Значи постановката е следната:
Имам два доставчика на интернет и две локални мрежи. Искам по описаната статия по-горе да си рутирам интернета така че да ползвам услугите и на двата едновремено, а ако спре единият да продължи на другия. Както и да ползвам определени услуги които са налични само от единият доставчик. Така само да кажа интерфейсите ми eth0 - БТК с адрес 192.168.1.2 gw: 192.168.1.1 eth1 - Локална мрежа 1 192.168.0.1 eth2 - Ликална мрежа 2 192.168.142.1 eth3 - Доставчик 2 ip: 84.54.160.198 gw: 84.54.160.197 Ако си ги задам gw по 1 всеки от тях си работи ... Локалната си работи и няма проблеми ... Сега какво съм писал: #!/bin/bash #/etc/lb/rc.lb # This script is done by : Robert Kurjata Sep, 2003. # feel free to use it in any usefull way # Modifyed Milan Enev Jul, 2004. ################## IP=/sbin/ip PING=/bin/ping EXTIF0=eth3 EXTIP0=84.54.160.198 EXTM0=30 EXTGW0=84.54.160.197 EXTIF1=eth0 EXTIP1=192.168.1.2 EXTM1=24 EXTGW1=192.168.1.1 echo "removing old rules" $IP rule del prio 50 table main $IP rule del prio 201 from $EXTIP0/$EXTM0 table 201 $IP rule del prio 202 from $EXTIP1/$EXTM1 table 202 $IP rule del prio 211 table 211 $IP rule del prio 212 table 212 $IP rule del prio 220 table 220 $IP rule del prio 221 table 221 echo "flushing tables" $IP route flush table 201 $IP route flush table 202 $IP route flush table 211 $IP route flush table 212 $IP route flush table 220 $IP route flush table 221 echo "removing tables" $IP route del table 201 $IP route del table 202 $IP route del table 211 $IP route del table 212 $IP route del table 220 $IP route del table 221 $IP rule add prio 201 from $EXTIP0/$EXTM0 table 201 $IP rule add prio 202 from $EXTIP1/$EXTM1 table 202 $IP route add default via $EXTGW0 dev $EXTIF0 src $EXTIP0 proto static table 201 $IP route append prohibit default table 201 metric 1 proto static $IP route add default via $EXTGW1 dev $EXTIF1 src $EXTIP1 proto static table 202 $IP route append prohibit default table 202 metric 1 proto static $IP rule add prio 211 table 211 for i in $(cat /etc/lb/ipig.conf); do #echo "$IP route add $i via $EXTGW0 dev $EXTIF0 src $EXTIP0 proto static able 211" ip route add $i via $EXTGW0 dev $EXTIF0 src $EXTIP0 proto static table 211 done $IP rule add prio 212 table 212 for i in $(cat /etc/lb/btkip.conf); do #echo "$IP route add $i via $EXTGW1 dev $EXTIF1 src $EXTIP1 proto static able 212" $IP route add $i via $EXTGW1 dev $EXTIF1 src $EXTIP1 proto static table 212 done echo "BG Traffic" $IP rule add prio 220 table 220 for i in $(cat /etc/lb/bg_net1.conf); do $IP route add $i table 220 proto static \ nexthop via $EXTGW0 dev $EXTIF0 weight 1 \ nexthop via $EXTGW1 dev $EXTIF1 weight 6 # echo " $IP route add $i table 220 proto static \ # nexthop via $EXTGW0 dev $EXTIF0 weight 1\ # nexthop via $EXTGW1 dev $EXTIF1 weight 3" done echo "Int. Traffic" $IP rule add prio 221 table 221 $IP route add default table 221 proto static \ nexthop via $EXTGW0 dev $EXTIF0 weight 3 \ nexthop via $EXTGW1 dev $EXTIF1 weight 1 $IP route flush cache което ми връща следното нещо: removing old rules RTNETLINK answers: No such process RTNETLINK answers: No such process RTNETLINK answers: No such process RTNETLINK answers: No such process RTNETLINK answers: No such process RTNETLINK answers: No such process RTNETLINK answers: No such process flushing tables Nothing to flush. Nothing to flush. Nothing to flush. Nothing to flush. Nothing to flush. Nothing to flush. removing tables RTNETLINK answers: No such process RTNETLINK answers: No such process RTNETLINK answers: No such process RTNETLINK answers: No such process RTNETLINK answers: No such process RTNETLINK answers: No such process Set ISP tables Set Local 1 RTNETLINK answers: Invalid argument RTNETLINK answers: Invalid argument Set local 2 BG Traffic Int. Traffic root@domain:/etc/lb# ip route show table main 84.54.160.196/30 dev eth3 proto kernel scope link src 84.54.160.198 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2 192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.1 192.168.142.0/24 dev eth2 proto kernel scope link src 192.168.142.1 default via 192.168.1.1 dev eth0 default via 84.54.160.197 dev eth3 metric 1 тук да кажа, че двата гейтуея съм ги наблъскал аз ръчно!?! За iptables съм писал: #!/bin/sh #/etc/rc.d/rc.firewall #Milan Enev , Sep, 2002 function mark_src { for i in $(cat $1); do #echo " $IPTABLES -t mangle -A $2 -s $i -j MARK --set-mark $3" $IPTABLES -t mangle -A $2 -s $i -j MARK --set-mark $3 done $IPTABLES -t mangle -A $2 -m mark --mark $3 -j RETURN } function mark_dst { $IPTABLES -t mangle -N $1_$2 $IPTABLES -t mangle -A $1 -m mark --mark $2 -j $1_$2 for i in `seq $4 $5`; do $IPTABLES -t mangle -A $1_$2 -d $3$i/32 -j MARK --set-mark $(($2 | $i)) done } #INTERFACE SETTINGS IPTABLES=/usr/sbin/iptables EXTIF0="eth3" EXTIF1="eth0" INTIF0="eth1" INTIF1="eth2" #IP LONET0_M_F_T="18 30" LONET0_M="192.168.168." ALL="0/0" ##Files LO_NET_EXTIF0="/etc/lb/ipig.conf" LO_NET_EXTIF1="/etc/lb/btkip.conf" BG_NET_EXTIF1="/etc/lb/bg_net1.conf" ALL_NET="/etc/lb/all_net.conf" ##MARK LO_MARK_EXTIF0="0x1000" INT_MARK_EXTIF0="0x1200" LO_MARK_EXTIF1="0x2000" BG_MARK_EXTIF1="0x2100" INT_MARK_EXTIF1="0x2200" $IPTABLES -t mangle -N MARK_0_S $IPTABLES -t mangle -N MARK_0_D $IPTABLES -t mangle -N MARK_1_S $IPTABLES -t mangle -N MARK_1_D $IPTABLES -t mangle -A PREROUTING -i $EXTIF0 -j MARK_0_S $IPTABLES -t mangle -A PREROUTING -i $EXTIF1 -j MARK_1_S $IPTABLES -t mangle -A POSTROUTING -o $INTIF0 -j MARK_0_D mark_src $LO_NET_EXTIF0 MARK_0_S $LO_MARK_EXTIF0 mark_src $ALL_NET MARK_0_S $INT_MARK_EXTIF0 mark_src $LO_NET_EXTIF1 MARK_1_S $LO_MARK_EXTIF1 mark_src $BG_NET_EXTIF1 MARK_1_S $BG_MARK_EXTIF1 mark_src $ALL_NET MARK_1_S $INT_MARK_EXTIF1 mark_dst MARK_0_D $LO_MARK_EXTIF0 $LONET0_M $LONET0_M_F_T mark_dst MARK_0_D $INT_MARK_EXTIF0 $LONET0_M $LONET0_M_F_T mark_dst MARK_0_D $LO_MARK_EXTIF1 $LONET0_M $LONET0_M_F_T mark_dst MARK_0_D $BG_MARK_EXTIF1 $LONET0_M $LONET0_M_F_T mark_dst MARK_0_D $INT_MARK_EXTIF1 $LONET0_M $LONET0_M_F_T echo "-Enabbling SNAT..." #$IPTABLES -t nat -A POSTROUTING -o $EXTIF0 -j SNAT --to 192.168.0.1 #$IPTABLES -t nat -A POSTROUTING -o $EXTIF1 -j SNAT --to 192.168.142.1 $IPTABLES -t nat -A POSTROUTING -o $EXTIF0 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o $EXTIF1 -j MASQUERADE при което ми връща само: -Enabbling SNAT... Според което би трябвало да прилага веригите и правилата.... След всичко това в локалната мрежа интернет липсва ... сървъра който е на 192.168.0.1 или 192.168.142.1 не се вижда и няма пинг до него - имам 2 локални мрежи м/у другото Според вас къде може да е проблема? Титла: рутиране Публикувано от: runtime в Jan 08, 2008, 20:26 RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument Това го разбрах от къде е. $IP, а съм писал само ip. Обаче нет продължава да няма в локалната. edit by neter: Редактирах съобщението ти, съгласно т.3 от правилата на форума. Нека не се повтаря Титла: рутиране Публикувано от: runtime в Jan 09, 2008, 09:11 Да попитам все пак някой правил ли го е това по описаната статия и другото е кернела трябва ли да се пачва с посочения пач? При мен модолите бяха заредени ... kernel 2.4.33.3
edit by neter: Редактирано, съгласно т.5 от правилата на форума. Пояснявам, тук не беше сложил //offtopic пред това, което изтрих. А т.3 изисква писане на кирилица. Не спори с мен, а си гледай темата ![]() Титла: рутиране Публикувано от: tolostoi в Jan 09, 2008, 14:18 Виж zeridon какво е написал http://www.getoto.net/2007/06/the-perfect-soho-router-part-4/lang/bg/
Титла: рутиране Публикувано от: runtime в Jan 09, 2008, 15:08 Ок пробвах и по този начин: ето и настройките:
Ехотата съм ги сложил да се ориентирам от къде идва грешката .... Ето това ми връща: 1 50: from all lookup main Nothing to flush. 201: from 192.168.1.0/24 lookup isp_rules1 202: from 84.54.160.0/30 lookup isp_rules2 2 3 4 5 6 7 8 9 В /etc/iproute2/rt_tables съм сложил 201 isp_rules1 202 isp_rules2 Като: ip ru ls | grep isp_rules1 201: from 192.168.1.0/24 lookup isp_rules1 ip ru ls | grep isp_rules2 202: from 84.54.160.0/30 lookup isp_rules2 Но в локалната мрежа продължава да няма интернет... Титла: рутиране Публикувано от: runtime в Jan 09, 2008, 18:38 Значи в крайна сметка си намерих ето това решение, което върши работа
![]()
|