Linux несколько выравнивания нагрузки интернет-соединений с обработкой сбоя

Вы могли также использовать find утилита:

find / -name Fubini 2> /dev/null

/ искать запуск с /
-name Fubini ищите файл с "Fubini" в, он - имя
2> /dev/null ошибки перенаправления к/dev/null.

Перенаправление полезно при поиске от корня, потому что/proc каталоги не действительно там./proc является виртуальной файловой системой и findлуг через него является... хорошо просто не правильным :)

7
20.04.2012, 20:41
2 ответа

Используйте LVS в сочетании с lvs-поцелуем. Или что-то подобное.

LVS в основном ìpvsadm команда. Единственный недостаток той подсистемы балансировки нагрузки состоит в том, что она не контролирует. Таким образом, Вам нужна программа, которая делает это для Вас и удаляет битую ссылку из Вашей конфигурации (и добавляет его назад одно живое снова).

ldirectord от стека heartbeat могло бы быть другое lvs-дополнение (вместо lvs-поцелуя).

0
27.01.2020, 20:19
  • 1
    благодарит, я проверю –  sss123next 21.04.2012, 00:45
  • 2
    извините, я не понимающий, как использовать lvs для использования два восходящих канала, поскольку я знаю, что lvs для входящего трафика баланса между многими физическими узлами, но я должен использовать многих интернет-соединение на одной физической машине и совместно использовать его для сети прозрачно, –  sss123next 21.04.2012, 01:11
  • 3
    Так в этом случае, Ваш сервер является директором и двумя реальными серверами в том же поле. Один реальный сервер служит ppp0, другому eth2. Входящий трафик LAN прибывает из eth0 и/или eth1? –  Nils 21.04.2012, 22:46
  • 4
    incomming, прибывающий из br1, но я все еще не понимаю, как использовать lvs для NAT –  sss123next 22.04.2012, 05:43
  • 5
    @sss123next вместо того, чтобы использовать NAT, я рекомендую использовать надлежащий прокси - например, сверхпроводящий квантовый интерферометр. –  Nils 22.04.2012, 23:15

Как бывший член рабочей группы проекта LVS, я категорически не рекомендовал бы использование этой технологии для балансировки нескольких интернет-соединений; на самом деле я могу почти гарантировать Вам, что это не будет работать как ожидалось.

Теперь, обработка неудавшихся ссылок поставщика часто упоминается как мертвое обнаружение шлюза (DGD), и иногда называема соседним обнаружением недостижимости (NUD). Согласно RFC816 и RFC1122 там несколько способов выполнить DGD, однако я только занялся 3 из тех, которые в дикой природе (от старого моего сообщения до списка рассылки LVS):

  • Информация канального уровня, которая надежно обнаруживает и сообщает об отказах хоста (например, Место назначения ARPANET Мертвые сообщения) должна использоваться в качестве отрицательного совета.
  • Сообщение Перенаправления ICMP от конкретного шлюза должно использоваться в качестве положительного совета о том шлюзе.
  • Пакеты, прибывающие от конкретного адреса канального уровня, являются доказательством, что система в этом адресе жива. Однако превращение этой информации в совет о шлюзах требует отображения адреса канального уровня в IP-адрес, и затем проверяя что IP-адрес по шлюзам, на которые указывает кэш маршрутов. Это, вероятно, непомерно неэффективно.

Когда я оставил активное ядро Linux сетевой разработкой в 2006, не было все еще никакого определенного решения о том, как реализовать изменения состояния NUD. Мой друг и базовый разработчик LVS, Julian Anastasov, должны были решить Ваш вызов назад в 2002. Так, однажды вечером он сел и записал, рабочая версия DGD для статической маршрутизации путем добавления состояния NUD к FIB (передайте информационную основу). Можно найти его патч здесь и документацию здесь, здесь и здесь. Это должно дать Вам много информации о Ваших дальнейших поисках в обращении к этой нетривиальной задаче. Я вижу, что патчи все еще дико используются и поэтому совершенствуются недавних ядер. Вы могли бы хотеть запуститься со сценария как следующее (записанный Robert Kurjata):

#!/bin/bash
# This script is done by : Robert Kurjata Sep, 2003.
# feel free to use it in any useful way

# CONFIGURATION
IP=/sbin/ip
PING=/bin/ping

#--------------- LINK PART -----------------
# EXTIFn - interface name
# EXTIPn - outgoing IP
# EXTMn  - netmask length (bits)
# EXTGWn - outgoing gateway
#-------------------------------------------

# LINK 1
EXTIF1=eth2
EXTIP1=
EXTM1=
EXTGW1=

# LINK 2
EXTIF2=eth1
EXTIP2=
EXTM2=
EXTGW2=

#ROUTING PART
# removing old rules and routes

echo "removing old rules"
${IP} rule del prio 50 table main
${IP} rule del prio 201 from ${EXTIP1}/${EXTM1} table 201
${IP} rule del prio 202 from ${EXTIP2}/${EXTM2} table 202
${IP} rule del prio 221 table 221
echo "flushing tables"
${IP} route flush table 201
${IP} route flush table 202
${IP} route flush table 221
echo "removing tables"
${IP} route del table 201
${IP} route del table 202
${IP} route del table 221

# setting new rules
echo "Setting new routing rules"

# main table w/o default gateway here
${IP} rule add prio 50 table main
${IP} route del default table main

# identified routes here
${IP} rule add prio 201 from ${EXTIP1}/${EXTM1} table 201
${IP} rule add prio 202 from ${EXTIP2}/${EXTM2} table 202

${IP} route add default via ${EXTGW1} dev ${EXTIF1} src ${EXTIP1} proto static table 201
${IP} route append prohibit default table 201 metric 1 proto static

${IP} route add default via ${EXTGW2} dev ${EXTIF2} src ${EXTIP2} proto static table 202
${IP} route append prohibit default table 202 metric 1 proto static

# mutipath
${IP} rule add prio 221 table 221

${IP} route add default table 221 proto static \
            nexthop via ${EXTGW1} dev ${EXTIF1} weight 2\
            nexthop via ${EXTGW2} dev ${EXTIF2} weight 3

${IP} route flush cache

while : ; do
  ${PING} -c 1 ${EXTGW1}
  ${PING} -c 1 ${EXTGW2}
  sleep 60
done

Помимо этого, Вы могли проверить опцию выполнения протоколов динамической маршрутизации.

3
27.01.2020, 20:19
  • 1
    , вероятно, этот сценарий слишком стар. это не работает над последней человечностью. –  Zibri 01.04.2018, 02:35
  • 2
    @Zibri: Я не понимаю "слишком старую" часть в сочетании со сценарием, но что точно не работает и что составляет "последнюю человечность"? –  Moreaki 07.04.2018, 22:14

Теги

Похожие вопросы