Добро пожаловать на форум, Гость!
Войдите или зарегистрируйтесь!
Имя пользователя:   Пароль:  
Запомнить меня 




Начать новую тему Ответить на тему   [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: fallover && HA сервера.
СообщениеДобавлено: 29 май 2012, 14:25 
Модератор
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 803

Зарегистрирован: 02 мар 2010, 16:13
Благодарил (а): 6 раз.
Поблагодарили: 12 раз.
В общем. Что мы имеем:
7 виртуалок, из них
5 в одной сети
1 во второй сети
1 в третьей сети

Задача: взять две виртуалки и настроить на них ipsec туннель с двумя другими. на пятой виртуалке замутить гре туннель с одной из первых двух виртуалок. Две другие виртуалки, которые в разных сетях надо зацепить в одну сеть через туннель. Для полного счастья первые две виртуалки сделать высокодоступными.
Для начала чешем репу. После того как почесали мы поднимаем все виртуалки. Поднимал на дебиане.
Переходим к конфигурированию. Хосты keepalived{1,2} будут отказоустойчивыми и высокодоступными. хосты test{1,2} и test3 - обычными. Хосты keepalived{1,2} и test{1..3} находятся в одной сети. test 4 - в другой и test5 в третьей.
test1 будет ходить по айписеку к keepalived1 и test2 будет ходить по айписеку к keepalived2. Гре туннель будет поднят на test3 и keepalived1. test4 будет ходить к test5 через туннель между test3 и keepalived1.

Решение ipsec:
для всего этого нам понадобяццо 4 виртуалки, на которых будут стоять ipsec-tools, racoon. На keepalived* будет стоять keepalived. Ставятся они через apt.
Выделил я два ипа, которые будут являтся отказоустойчивыми. 192.168.5.20{1,2}
/etc/network/interfaces
Код:
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
   address 192.168.5.183
   netmask   255.255.255.0
   gateway   192.168.5.1
   post-up iptables-restore < /etc/ipt
auto eth1
iface eth1 inet static
   address 192.168.4.1
   netmask   255.255.255.0

auto tunnel
iface tunnel inet static
   address 10.0.0.1
   pointopoint 10.0.0.2
   netmask 255.255.255.0
   up ifconfig ${IFACE} multicast
   pre-up iptunnel add ${IFACE} mode gre local 192.168.5.201 remote 192.168.5.184 ttl 255
   post-up ip route add 192.168.3.0/24 via 10.0.0.2
   post-down iptunnel del ${IFACE}

и на втором
Код:
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
   address 192.168.5.182
   netmask   255.255.255.0
   gateway   192.168.5.1

auto eth1
iface eth1 inet static
   address 192.168.4.2
   netmask   255.255.255.0

auto tunnel
iface tunnel inet static
   address 10.0.0.1
   pointopoint 10.0.0.2
   netmask 255.255.255.0
   up ifconfig ${IFACE} multicast
   pre-up iptunnel add ${IFACE} mode gre local 192.168.5.201 remote 192.168.5.184 ttl 255
   post-up ip route add 192.168.3.0/24 via 10.0.0.2
   post-down iptunnel del ${IFACE}


Как настраивать ipsec думаю рассказывать не надо. Расскажу только то, что завязал я их между 192.168.5.200<->192.168.5.202 192.168.5.201<->192.168.5.203
Из конфига ракуна важное то, что он вешается на 2 интерфейса
Код:
listen
{
    isakmp 192.168.5.202 [500];
    isakmp 192.168.5.201 [500];
}

Также правила одинаковые для двух айписеков сразу в ipsec-tools.conf и psk указан для обоих хостов.

Думаю, что всё понятно. Переходим к реализации отказоустойчивости
/etc/keepalived/keepalived.conf
Код:
vrrp_script chk_racoon {
   script "pidof racoon"
   intelrval 1
   weight 2
}

vrrp_instance test1 {
        interface eth1
        state MASTER
        virtual_router_id 31
        priority 101
       
   garp_master_delay 1

   track_script {
      chk_racoon
   }

   authentication {
            auth_type PASS
            auth_pass trololo
        }
        virtual_ipaddress {
                192.168.5.201/24 dev eth0 label eth0:t1-MASTER
        }
   virtual_routes {
      192.168.5.203 dev eth0 src 192.168.5.201
   }
   notify_backup "/usr/local/bin/notyfier.sh  BACKUP   test1"
   notify_master "/usr/local/bin/notyfier.sh  MASTER  test1"
   notify_fault  "/usr/local/bin/notifier.sh  FAULT  test1"

}

vrrp_instance test2 {
        interface eth1
        state BACKUP
        virtual_router_id 32
        priority 100

   garp_master_delay 1
       
   track_script {
      chk_racoon
   }

   authentication {
            auth_type PASS
            auth_pass trololo
        }
        virtual_ipaddress {
           192.168.5.202/24 dev eth0 label eth0:t2-BACKUP src 192.168.5.202
        }
   virtual_routes {
      192.168.5.200 dev eth0 src 192.168.5.202
   }
        notify_backup "/usr/local/bin/notyfier.sh  BACKUP   test2"
        notify_master "/usr/local/bin/notyfier.sh  MASTER  test2"
        notify_fault  "/usr/local/bin/notifier.sh  FAULT  test2"

}

И со второго:
Код:
vrrp_script chk_racoon {
   script "pidof racoon"
   intelrval 1
   weight 2
}

vrrp_instance test1 {
        interface eth1
        state BACKUP
        virtual_router_id 31
        priority 101
       
   garp_master_delay 1

   track_script {
      chk_racoon
   }

   authentication {
            auth_type PASS
            auth_pass trololo
        }
        virtual_ipaddress {
                192.168.5.201/24 dev eth0 label eth0:t1-BACKUP
        }
   virtual_routes {
      192.168.5.203 dev eth0 src 192.168.5.201
   }
   notify_backup "/usr/local/bin/notyfier.sh  BACKUP   test1"
   notify_master "/usr/local/bin/notyfier.sh  MASTER  test1"
   notify_fault  "/usr/local/bin/notifier.sh  FAULT  test1"

}

vrrp_instance test2 {
        interface eth1
        state MASTER
        virtual_router_id 32
        priority 100

   garp_master_delay 1
       
   track_script {
      chk_racoon
   }

   authentication {
            auth_type PASS
            auth_pass trololo
        }
        virtual_ipaddress {
           192.168.5.202/24 dev eth0 label eth0:t2-MASTER src 192.168.5.202
        }
   virtual_routes {
      192.168.5.200 dev eth0 src 192.168.5.202
   }
        notify_backup "/usr/local/bin/notyfier.sh  BACKUP   test2"
        notify_master "/usr/local/bin/notyfier.sh  MASTER  test2"
        notify_fault  "/usr/local/bin/notifier.sh  FAULT  test2"

}


Таким образом у нас схема
master backup
backup master

Если вывалился один сервак, то выполняется скрипт /usr/local/bin/notifier.sh
Код:
#!/bin/bash
state=$1
fromVI=$2
if [[ "$state" == "MASTER" && "$fromVI" == "test1" ]]; then
    echo test2 is DOWN. Im MASTER now
    echo `date`  $fromVI changed state into MASTER >> /tmp/keepalived.log
    /etc/init.d/racoon restart
    echo Racoon restarted >> /tmp/keepalived.log
    ifdown tunnel && ifup tunnel
    ping 192.168.5.200 -c 5
    ping 192.168.5.203 -c 5
    sleep 5
elif [[ "$state" == "MASTER" && "$fromVI" == "test2" ]]; then
    echo test1 is DOWN. Im MASTER now
    echo `date` $fromVI changed state into MASTER >> /tmp/keepalived.log
    /etc/init.d/racoon restart
    echo Racoon restarted >> /tmp/keepalived.log
    ifdown tunnel && ifup tunnel
    ping 192.168.5.200 -c 5
    ping 192.168.5.203 -c 5
    sleep 5
fi


Как видно, он рестартит ракун, переподнимает туннель, посылает пинги и срет в лог.

Что имеем на выходе:
Простой туннелей в 5 секунд. Автоматическое переключение с сервака на сервак.
ЗЫ если один сервак выпал и второй забрал на него VIP, то он отдаст его только в том случае. если сам упадет.

Сцылки:
http://xgu.ru/wiki/VRRP
man keepalived.conf


Изображение

Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD



За это сообщение автора Gen1us2k поблагодарил: romb
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: fallover && HA сервера.
СообщениеДобавлено: 30 май 2012, 10:38 
Бородатый сис
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 2902
Откуда: Из серверной
Зарегистрирован: 03 мар 2010, 15:12
Благодарил (а): 19 раз.
Поблагодарили: 122 раз.
ОС: RHEL 6.7
Gen1us2k писал(а):
ЗЫ если один сервак выпал и второй забрал на него VIP, то он отдаст его только в том случае. если сам упадет.

Т.е. autofailback не предусмотрен?


Я не злопамятный, я просто часто ковыряю логи
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: fallover && HA сервера.
СообщениеДобавлено: 30 май 2012, 12:13 
Модератор
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 803

Зарегистрирован: 02 мар 2010, 16:13
Благодарил (а): 6 раз.
Поблагодарили: 12 раз.
Raven
Тут немного другая идеология. Если сервак вывалился, то должен обслуживать другой сервак пока не упадет. autofallback хорошо, но не в этом случае, так как будут простои, а это не очень хорошо в этом случае.


Изображение

Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
   Похожие темы   Автор   Ответов   Просмотров   Последнее сообщение 
Перенесенная ^_^

в форуме Linux

root

3

38

02 мар 2010, 16:15

Gen1us2k Перейти к последнему сообщению

Нет новых непрочитанных сообщений в этой теме Доступен клиент мгновенного обмена сообщениями Tkabber 1.0

в форуме Новости *nix

[Ботя]

0

449

25 янв 2014, 00:00

Гость Перейти к последнему сообщению

Нет новых непрочитанных сообщений в этой теме Выпуск проприетарного дистрибутива Альт Образование 8.1

в форуме Новости *nix

[Ботя]

0

223

09 ноя 2016, 21:30

Гость Перейти к последнему сообщению



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Собрано Raven. Русская поддержка phpBB
phpBB SEO