electro_ Posted February 8, 2016 (edited) · Report post всем спасибо Edited February 9, 2016 by electro_ Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vop Posted February 8, 2016 · Report post Второй дефолт поднимается с метрикой, больше 1 ip ro add default via 194.44.239.73 dev eth0.1365 ip ro add default via 194.44.6.65 dev eth1.1368 metric 2 Первый можно прописать через gateway в самом начале. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
[anp/hsw] Posted February 8, 2016 · Report post Дефолты переключаться так не будут (точнее будут, но если шлюз перестанет отвечать на ARP-запросы), т.е. это не полноценное резервирование. Еще могут переключиться, если физически линк пропадет на интерфейсе, но это не ваш случай (при vlan не сработает, он всегда UP). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted February 8, 2016 · Report post Примите фул вью об обоих операторов? Нафига эта свистопляска с горожением костылей и сомнительными схемами фейлавера? Лучшая схема фейлавера, что я видел в своей жизни - это принятый BGP Full view. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
electro_ Posted February 8, 2016 · Report post ' timestamp='1454944047' post='1239203']Дефолты переключаться так не будут (точнее будут, но если шлюз перестанет отвечать на ARP-запросы), т.е. это не полноценное резервирование. Еще могут переключиться, если физически линк пропадет на интерфейсе, но это не ваш случай (при vlan не сработает, он всегда UP). В чем прикол, что эта схема не работает, когда гасится первый дефолт, второй не подхватывает Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
[anp/hsw] Posted February 8, 2016 · Report post А как вы его гасите? Вы в курсе, что по-хорошему еще conntrack надо очистить? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
electro_ Posted February 8, 2016 · Report post ' timestamp='1454944371' post='1239208']А как вы его гасите? Вы в курсе, что по-хорошему еще conntrack надо очистить? Вытащил кабель. Нет пинга -- переход на второй шлюз, вот что мне нужно. conntrack - iptables не использую Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted February 8, 2016 · Report post Блин, B-G-P! Ставите препенд на входящий трафик для бэкап провайдера. Ставите препенд на исходящий трафик на маршруты через бэкап провайдера. Как только основной сдохнет, входящий _автоматом_ полетит на вас. А исходяший полетит через нескоько секунду - как только отвалятся лучшие маршруты. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
electro_ Posted February 8, 2016 (edited) · Report post Примите фул вью об обоих операторов? Нафига эта свистопляска с горожением костылей и сомнительными схемами фейлавера? Лучшая схема фейлавера, что я видел в своей жизни - это принятый BGP Full view. ДА, принимаю Full view, оператов один, два канала, один Киев, второй резерв Львов. Каким образом сие чудо сконфигурировать ? Блин, B-G-P! Ставите препенд на входящий трафик для бэкап провайдера. Ставите препенд на исходящий трафик на маршруты через бэкап провайдера. Как только основной сдохнет, входящий _автоматом_ полетит на вас. А исходяший полетит через нескоько секунду - как только отвалятся лучшие маршруты. Да, простите, но я не очень силен в БГП. Можете на это примере соорудить конфиг, а его волью и на стенде потестирую. Буду очень благодарен. Я так понял BGP дает работать без дефолтных маршутов ? или мне на сервере нужно принимать 2 дефолта ? Edited February 8, 2016 by electro_ Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Hawk128 Posted February 8, 2016 · Report post Ну и что что один пров, стыка то два. Они независимые. Не вижу проблемы резервировать через БГП. У самого сейчас есть линк с двумя каналами от одного прова - 2 сессии БГП. Все прекрасно работает. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted February 8, 2016 · Report post BGP может работать в двух режимах (условно) - 1) default 2) full view. При фул вью вы получаете таблицу маршрутов всего интернета, которые видны через данного аплинка при дефалте - 1 путь. Пример дать не могу, у вас же итак BGP настроен, просто примите full view от обоих (обычно нужно написать/позвонить оператору) и посмотрите, что будет. Самое страшное что случится - вольется трафик на бэкап канал. Ну и памяти чтобы на машине было хотя бы гигабайта два, а-то не влезет :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kayot Posted February 8, 2016 · Report post pavel.odintsov И на кой ему для 1 ноги фуллвью? :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
electro_ Posted February 9, 2016 · Report post pavel.odintsov И на кой ему для 1 ноги фуллвью? :) У всех когда то бывает первый раз :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kayot Posted February 9, 2016 · Report post electro_ Это как младенцу презерватив вручить, когда-то пригодится :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
electro_ Posted February 9, 2016 · Report post electro_ Это как младенцу презерватив вручить, когда-то пригодится :) -j DROP Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
trksergey Posted February 11, 2016 (edited) · Report post Возможно подойдет следующий вариант (Ubuntu 14) Нужно добавить две дополнительные таблицы роутинга (по одной для каждого провайдера) в файл /etc/iproute2/rt_tables # cat /etc/iproute2/rt_tables 1 provider1 2 provider2 У каждого провайдера будет своя таблица маршрутизация. Запускаем по крону (5 минут) следующий скрипт. #!/bin/bash ############################################# # CONFIG # ############################################# ## IP CONFIG ################################ ### LAN LAN_IF="em2" LAN_NETWORK="10.0.0.0/8" ### WAN 1 DORIS WAN1_IF="em1.3" WAN1_IP="ххх.ххх.ххх.174" WAN1_GATEWAY="ххх.ххх.ххх.173" WAN1_NETWORK="ххх.ххх.ххх.172/30" ### WAN 2 EVROTEL WAN2_IF="em1.4" WAN2_IP="ххх.ххх.ххх.174" WAN2_GATEWAY="ххх.ххх.ххх.173" WAN2_NETWORK="ххх.ххх.ххх.172/30" # IP ROUTE TABLES WAN1_ROUTE_TABLE="provider1" WAN2_ROUTE_TABLE="provider2" ## IP PING HOSTS ############################# PING_HOSTS="8.8.8.8 77.88.8.1" PING_COUNT=3 PING_MAX_LOSS=2 PING_OPT="-c$PING_COUNT -s 100 -W5 -i1 -I" ## DIRECTORY ################################ # полный путь до скрипта ABSOLUTE_FILENAME=`readlink -e "$0"` # каталог в котором лежит скрипт DIRECTORY=`dirname "$ABSOLUTE_FILENAME"` ## STATUS FILE FILE_STATUS="${DIRECTORY}/status.dat" ## IPTABLES IPTABLES_COMMON="${DIRECTORY}/iptables/common.sh" IPTABLES_WAN1="${DIRECTORY}/iptables/wan1.sh" IPTABLES_WAN2="${DIRECTORY}/iptables/wan2.sh" IPTABLES_BOTH="${DIRECTORY}/iptables/both.sh" ## ROUTE ROUTING="${DIRECTORY}/routing.sh" ## "WHITE" IP REALIP="${DIRECTORY}/iptables/realip.sh" REALIP_LIST="${DIRECTORY}/realip.list" ############################################# # VAR # ############################################# ## FILE VAR VAR_FILE_AUTO_SW=1 # enable auto switch VAR_FILE_PING_HOST=0 # not testing hosts VAR_FILE_IF1=1 # interface 1 up VAR_FILE_IF2=1 # interface 2 up VAR_FILE_STATUS=3 # load iptables for both inteface ## TESTING TEST_RESULT=0 # testing host, return code 0 - not work; 1 - int 1; 2 - int 2; 3 - work both TEST_WAN1_IFUP=1 # interface 1 up TEST_WAN2_IFUP=1 # interface 2 up ############################################# # FUNCTION # ############################################# # log "message" function log() { DATE=$(date +"%d-%m-%y %H:%M:%S"); LOG_FILE="${DIRECTORY}/sw.log"; echo "$DATE | $1" >> $LOG_FILE return 0 } ############ lock ########################### LOCK_FILE=${DIRECTORY}/sw.lock if [ -e $LOCK_FILE ] then PID=`cat $LOCK_FILE` PID_NAME=`ps -p $PID -o comm=` if [ ! -z $PID_NAME ] then log "[ERR] The script $0 is found in the list of processes"; exit -1; else log "[WARNING] Discovered lock-file with a non-existent ID process" rm $LOCK_FILE fi fi echo $$ > $LOCK_FILE ######### end lock ######################### # FILE VAR ################################ # Structure file # AUTO:HOSTS:IF1:IF2:STATUS function load() { while IFS=: read F_AUTO F_HOSTS F_IF1 F_IF2 F_STATUS do VAR_FILE_AUTO_SW=$F_AUTO; VAR_FILE_PING_HOST=$F_HOSTS; VAR_FILE_IF1=$F_IF1; VAR_FILE_IF2=$F_IF2; VAR_FILE_STATUS=$F_STATUS; done < $FILE_STATUS } function save() { echo "$VAR_FILE_AUTO_SW:$VAR_FILE_PING_HOST:$VAR_FILE_IF1:$VAR_FILE_IF2:$VAR_FILE_STATUS" > $FILE_STATUS } function resetif() { load; VAR_FILE_AUTO_SW=1; VAR_FILE_PING_HOST=1; VAR_FILE_IF1=2; VAR_FILE_IF2=2; VAR_FILE_STATUS=4; echo "$VAR_FILE_AUTO_SW:$VAR_FILE_PING_HOST:$VAR_FILE_IF1:$VAR_FILE_IF2:$VAR_FILE_STATUS" > $FILE_STATUS log "--RESET CONFIG--" } # config to log configtolog() { log "Auto=${VAR_FILE_AUTO_SW} Hosts=${VAR_FILE_PING_HOST} Doris=${VAR_FILE_IF1} Evrotel=${VAR_FILE_IF2} Iptables=${VAR_FILE_STATUS}"; } ## PING ############################################## # lping interface host function lping() { status=`ping $PING_OPT $1 $2 | grep "packet loss" | awk '{print $1-$4}'` if [ $status -lt $PING_MAX_LOSS ]; then echo 1 else echo 0 fi } # testing gateway provider function tprovider() { TEST_WAN1_IFUP=$(lping $WAN1_IF $WAN1_GATEWAY) TEST_WAN2_IFUP=$(lping $WAN2_IF $WAN2_GATEWAY) #log "Test provider wan1=$TEST_WAN1_IFUP ; wan2=$TEST_WAN2_IFUP " } # tetsting hosts # work on both interface only load route both interface function thosts() { # succeful ping in interfaces PING_IF1=0 PING_IF2=0 # number ping hosts NUM_HOST=0 for HOST_UP in $PING_HOSTS do if (( $TEST_WAN1_IFUP == 1 )); then PING_IF1=$(( $PING_IF1 + $(lping $WAN1_IF $PING_HOSTS) )) fi if (( $TEST_WAN2_IFUP == 1 )); then PING_IF2=$(( $PING_IF2 + $(lping $WAN2_IF $PING_HOSTS) )) fi NUM_HOST=$(($NUM_HOST+1)) done #log "Host test Doris=${PING_IF1} Evrotel=${PING_IF2}"; # result if (( ($PING_IF1 > 0) || ($PING_IF2 > 0) )); then # interface enable if (( (($PING_IF1 == $NUM_HOST) && ($PING_IF2 == $NUM_HOST)) || ($PING_IF1 == $PING_IF2) )); then # turn on both intrerface echo 3 elif (( $PING_IF1 > $PING_IF2 )); then # turn on interface 1 echo 1 else # turn on interface 2 echo 2 fi else # interface not on echo 0 fi } # manual turn on inteface function onWAN1 () { log "Turn on onWAN1 (хххх) interface" source $ROUTING ip route delete default ip route add default via $WAN1_GATEWAY dev $WAN1_IF source $IPTABLES_WAN1 TEST_RESULT=1 VAR_FILE_STATUS=1 log "Turn on WAN1 finish" } function onWAN2 () { log "Turn on onWAN2 (хххх) interface" source $ROUTING ip route delete default ip route add default via $WAN2_GATEWAY dev $WAN2_IF source $IPTABLES_WAN2 TEST_RESULT=2 VAR_FILE_STATUS=2 log "Turn on WAN2 finish" } function onBOTH() { log "Turn on both interface (хххх + хххх)" source $ROUTING ip route delete default ip route add default scope global nexthop via $WAN1_GATEWAY dev $WAN1_IF weight 1 nexthop via $WAN2_GATEWAY dev $WAN2_IF weight 1 source $IPTABLES_BOTH TEST_RESULT=3; VAR_FILE_STATUS=3 log "Turn on BOTH finish" } # AUTO #################################### function auto_sw() { load; # Выводим данные о начальных данных #configtolog; # Тестируем интерфейсы tprovider; if (( ( $TEST_WAN1_IFUP == 1 ) || ( $TEST_WAN2_IFUP == 1 ) )); then # Если работает хоть один интерфейс if (( ($TEST_WAN1_IFUP != $VAR_FILE_IF1) || ($TEST_WAN2_IFUP != $VAR_FILE_IF2) )); then # Если изменилось состояние одного из интерфейса log "Interface changes"; # Сохраняем данные о интерфейсах VAR_FILE_IF1=$TEST_WAN1_IFUP; VAR_FILE_IF2=$TEST_WAN2_IFUP; if (( ($TEST_WAN1_IFUP == 1) && ($TEST_WAN2_IFUP == 1) )); then # Если включились оба интервейса log "WAN1 and WAN2 to UP" if (( $VAR_FILE_PING_HOST == 1 )); then #log "Enable check host" onBOTH; #ip route delete default #ip route add default scope global nexthop via $P1 dev $IF1 weight $W1 nexthop via $P2 dev $IF2 weight $W2 else log "Fast switch - BOTH" onBOTH; fi else # Если включился только один интерфейс if (( $TEST_WAN1_IFUP == 1 )); then log "Fast switch - WAN1 (хххх)" onWAN1; else log "Fast switch - WAN2 (хххх)" onWAN2; fi fi fi # host testing if (( ($VAR_FILE_PING_HOST == 1) && ($TEST_WAN1_IFUP == 1) && ($TEST_WAN2_IFUP == 1) )); then TEST_RESULT=$(thosts); #log "debug ${TEST_RESULT} ${VAR_FILE_STATUS}" if (( $TEST_RESULT != $VAR_FILE_STATUS )); then log "Host changes ${TEST_RESULT}" case $TEST_RESULT in 1) onWAN1;; 2) onWAN2;; *) onBOTH; VAR_FILE_STATUS=$TEST_RESULT; ;; esac fi fi else # Выключенны оба информацию log "DOWN BOTH INTERFACE!!!" onBOTH; VAR_FILE_AUTO_SW=1; VAR_FILE_IF1=2; VAR_FILE_IF2=2; VAR_FILE_STATUS=4; TEST_RESULT=0; fi save; } ############################################# # Command # ############################################# # echo enable params function echo_help() { echo " " echo "[input params]" echo "--------------------------" echo "-start) reset and start" echo "-wan1) switch provider 1 (хххх). auto=off" echo "-wan2) switch provider 2 (хххх). auto=off" echo "-all) switch both provider. auto=off" echo "-hosts) on check hosts and -nohosts) off check hosts" echo "-auto) auto switch only else auto=on" echo "-t) test" echo "-a) set auto" return 0 } if [ $# = 0 ]; then echo_help exit 0 else load; case $1 in -wan1) #switch if1; VAR_FILE_AUTO_SW=0; #log "Console switch if1." log "[OFF] Auto mode" onWAN1; save; ;; -wan2) #switch if2; VAR_FILE_AUTO_SW=0; #log "Console switch if2" log "[OFF] Auto mode" onWAN2; save; ;; -all) #Switch all if; VAR_FILE_AUTO_SW=0; #log "Console switch both" log "[OFF] Auto mode" onBOTH; save; ;; -start) # Start log ">>> START >>>"; onBOTH; VAR_FILE_AUTO_SW=1; save; resetif; auto_sw; ;; -auto) #AUTO TESTING if (( $VAR_FILE_AUTO_SW == 1 )); then auto_sw; else log "[ERR] Auto switch DISABLE - auto mode off"; fi ;; -t) # Set auto mode #log "Test"; tprovider; ;; -a) # Set auto mode log "Console on auto mode"; VAR_FILE_AUTO_SW=1; save; resetif; ;; -hosts) # Set on check hosts log "[ON ] check hosts"; VAR_FILE_PING_HOST=1; save; #resetif; ;; -nohosts) # Set off check hosts log "[OFF] check hosts"; VAR_FILE_PING_HOST=0; save; #resetif; ;; -d) # Set off check hosts log "Debug"; tprovider; TEST_RESULT=$(thosts); echo "debug ${TEST_RESULT}" #resetif; ;; *) echo "Error command"; log "ERROR Console command" echo_help; ;; esac fi ########### delete lock ################# rm $LOCK_FILE exit 0; routing.sh #!/bin/bash # Clear route table ip route flush table $WAN1_ROUTE_TABLE > /dev/null 2>&1 ip route flush table $WAN2_ROUTE_TABLE > /dev/null 2>&1 # Create route table ip route add $WAN1_NETWORK dev $WAN1_IF src $WAN1_IP table $WAN1_ROUTE_TABLE > /dev/null 2>&1 ip route add default via $WAN1_GATEWAY table $WAN1_ROUTE_TABLE > /dev/null 2>&1 ip route add $WAN2_NETWORK dev $WAN2_IF src $WAN2_IP table $WAN2_ROUTE_TABLE > /dev/null 2>&1 ip route add default via $WAN2_GATEWAY table $WAN2_ROUTE_TABLE > /dev/null 2>&1 ip route add $WAN1_NETWORK dev $WAN1_IF src $WAN1_IP > /dev/null 2>&1 ip route add $WAN2_NETWORK dev $WAN2_IF src $WAN2_IP > /dev/null 2>&1 ip route add default via $WAN1_GATEWAY > /dev/null 2>&1 ip rules add from $WAN1_IP table $WAN1_ROUTE_TABLE > /dev/null 2>&1 ip rules add from $WAN2_IP table $WAN2_ROUTE_TABLE > /dev/null 2>&1 ip route add $LAN_NETWORK dev $LAN_IF table $WAN1_ROUTE_TABLE > /dev/null 2>&1 ip route add $WAN2_NETWORK dev $WAN2_IF table $WAN2_ROUTE_TABLE > /dev/null 2>&1 ip route add 127.0.0.1/8 dev lo table $WAN1_ROUTE_TABLE > /dev/null 2>&1 ip route add $LAN_NETWORK dev $LAN_IF table $WAN2_ROUTE_TABLE > /dev/null 2>&1 ip route add $WAN1_NETWORK dev $WAN1_IF table $WAN2_ROUTE_TABLE > /dev/null 2>&1 ip route add 127.0.0.1/8 dev lo table $WAN2_ROUTE_TABLE > /dev/null 2>&1 # Set rules for mark trafic ip rule add fwmark 10 table $WAN1_ROUTE_TABLE 2>&1 ip rule add fwmark 20 table $WAN2_ROUTE_TABLE 2>&1 source $IPTABLES_COMMON; ip route delete default ip route add default scope global nexthop via $WAN1_GATEWAY dev $WAN1_IF weight 1 \ nexthop via $WAN2_GATEWAY dev $WAN2_IF weight 1 status.dat 1:1:1:1:3 common.sh #!/bin/bash # Start config iptables # Enable forward echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_dynaddr echo 1 > /proc/sys/net/ipv4/conf/default/forwarding #CLEAR IPTABLE ########################## iptables -F iptables -F -t nat iptables -t mangle -F iptables -X #DEFAULT POLICE ########################## iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT #LOCALHOST INTERFACE ##################### iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #OUT SERVICE ############################# #SSH iptables -A INPUT -i ${LAN_IF} -s ${LAN_NETWORK} -p TCP --dport 22 -j ACCEPT iptables -A INPUT -i ${WAN1_IF} -p TCP --dport 22 -j DROP iptables -A INPUT -i ${WAN2_IF} -p TCP --dport 22 -j DROP #PING iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT iptables -A OUTPUT -p icmp -j ACCEPT #BLACKLIST iptables -A FORWARD -m set --match-set blacklist src -j DROP iptables -t nat -A PREROUTING -s ${LAN_NETWORK} -m set --match-set blacklist dst -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128 iptables -A INPUT -i ${LAN_IF} -s ${LAN_NETWORK} -j ACCEPT wan1.sh #!/bin/bash #LOCAL INTERFACE ######################### # LOAD REAL IP source $REALIP; # Marking trafic # mark 10 - ххххх trafic iptables -t mangle -A PREROUTING -s 10.0.0.0/20 ! -d 10.0.0.0/20 -j MARK --set-mark 10 # OUT trafic iptables -t nat -A POSTROUTING -m mark --mark 10 -j SNAT --to-source ххх.ххх.ххх.65-ххх.ххх.ххх.94 --persistent wan2.sh #!/bin/bash # Load iptables #LOCAL INTERFACE ######################### # Marking trafic # mark 20 - Evrotel trafic iptables -t mangle -A PREROUTING -s 10.0.0.0/20 ! -d 10.0.0.0/20 -j MARK --set-mark 20 # OUT trafic iptables -t nat -A POSTROUTING -m mark --mark 20 -j SNAT --to-source ${WAN2_IP} both.sh #!/bin/bash log "start iptables both" # Load iptables #LOCAL INTERFACE ######################### # LOAD REAL IP source $REALIP; # Marking trafic # mark 10 - ххх trafic # mark 20 - yyy trafic iptables -t mangle -A PREROUTING -s 10.0.0.0/255.255.240.1 -j MARK --set-mark 10 iptables -t mangle -A PREROUTING -s 10.0.0.1/255.255.240.1 -j MARK --set-mark 20 # OUT trafic iptables -t nat -A POSTROUTING -m mark --mark 10 -j SNAT --to-source xxx.xxx.xxx.65-xxx.xxx.xxx.94 --persistent #{WAN1_IP} iptables -t nat -A POSTROUTING -m mark --mark 20 -j SNAT --to-source ${WAN2_IP} sudo crontab -e */5 * * * * sudo /etc/script/sw/sw.sh -auto Директории sw/ - корневой каталог - iptables/ - каталог с настройками iptables | common.sh - iptables для всех интерфейсов | wan1.sh - iptables для ххх | wan2.sh - iptables для yyy | both.sh - iptables для балансировки нагрузки, работают два канала | realip.sh - скрипт выдачи белых ip адресов nat 1-1 | sw.sh - главный файл и конфигурация | sw.log - логи | routing.sh - создает маршруты для интерфейсов | status.dat - в файле сохраняются данные о состояние интерфейсов между запуском скрипта В скрипте добавьте свои настройки и проверьте скрипт - выдран с рабочего сервера с обвязкой. Есть одна особенность работы при тестирование внешних ip - "check hosts on", не шлюзов - он переключается при потери более 2/3 пакетов и не переключается обратно при восстановлении, только если на активном канале пропадет интернет. Поэтому необходимо раз в сутки по крону перезапускать скрипт - 2 3 * * * sudo /dir/sw.sh -start; Если у Вас на шлюзе не стоит dns и т.п., то выше указанная проблема исправляться удаление строки в скрипте ip route add default scope global nexthop via $WAN1_GATEWAY dev $WAN1_IF weight 1 nexthop via $WAN2_GATEWAY dev $WAN2_IF weight 1 В этом варианте при пропадание одного из каналов на шлюзе будут нестабильно работать софт, потеря пакетов. Edited February 11, 2016 by trksergey Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted February 11, 2016 · Report post pavel.odintsov И на кой ему для 1 ноги фуллвью? :) Можно и без фул вью :) Я просто такое с фул вью делал, потому что у меня 3 аплинка и они всегда все active. С дефалтами просто не особо понятно, как их квагга в роут таблицу линукса запихает. Но решать задачу нужно силами BGP, пусть с приемом только дефалта, а не наколенных скриптов. Люди думали, писали, корректировали протокол в котором учтено все, что нужно учесть для роутинга. Нет, блин, все равно у всех желание написать чудо скрпит там, где 1) он сделает хуже 2) он сделает точку отказа. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...