Обавезно конфигурише високу доступност и плутајуће ИП адресе у ЦентОС 7

У овом ћемо чланку погледати конфигурирање конфигурације неуспјеха од два прокија за лигње како би корисници приступили Интернету из корпоративне мреже једноставним балансирањем оптерећења путем Роунд Робин ДНС-а. Да направимо конфигурацију за одустајање, креираћемо ХА кластер користећи кеепаливед.

ХА цлустер - Ово је група сервера са уграђеном редундантношћу, која је створена да минимизира застој апликације у случају проблема са хардвером или софтвером једног од чланова групе. На основу ове дефиниције, за рад ХА кластера неопходно је спровести следеће:

  • Провера статуса сервера;
  • Аутоматско пребацивање ресурса у случају квара сервера;

Оба ова задатка омогућавају одржавање. Кеепаливед - системски демон на Линук системима који омогућава организовање толеранције грешке сервиса и балансирање оптерећења. Толеранција на грешке постиже се због „лебдеће“ ИП адресе, која се у случају квара главне адресе пребацује на резервни сервер. Протокол се користи за аутоматско пребацивање ИП адреса између кеепаливед сервера ВРРП (Виртуал Роутер Редунданци Протоцол), он је стандардизиран, описан у РФЦ-у (хттпс://ввв.иетф.орг/рфц/рфц2338.ткт).

Садржај:

  • Принципи ВРРП-а
  • Инсталирајте и конфигуришите кеепаливед на ЦентОС
  • Кеепаливед: монитор апликација и здравља интерфејса
  • Кеепаливед: тестирање грешке

Принципи ВРРП-а

Пре свега, морате размотрити теорију и основне дефиниције ВРРП протокола.

  • ВИП - Виртуелна ИП, виртуелна ИП адреса која се у случају квара може аутоматски пребацивати између сервера;
  • Мастер - сервер на коме је ВИП тренутно активан;
  • Бацкуп - сервери на које ће се ВИП пребацити ако чаробњак не успе;
  • ВРИД - ИД виртуелног усмјеривача, сервери обједињени заједничким виртуалним ИП (ВИП) формирају такозвани виртуални усмјеривач, чији јединствени идентификатор узима вриједности од 1 до 255. Сервер се може истовремено састојати од више ВРИД-ова, с јединственом виртуалном ИП адресом за сваки ВРИД.

Општи алгоритам рада:

  • Главни сервер шаље ВРРП пакете на резервисану мултицаст (мултицаст) емитовану адресу 224.0.0.18 са одређеним интервалом, а сви подређени сервери слушају ову адресу. Многоструко слање је када је пошиљалац један, а може бити пуно прималаца.
    Важно је. Да би сервери радили у режиму мултицаст, мрежна опрема мора подржавати пренос промета са вишеструким базама.
  • Ако Славе сервер не прими пакете, он покреће главни изборни поступак и ако се приоритетно пребаци у главно стање, активира ВИП и отрове бесплатни АРП. Без накнаде АРП је посебна врста АРП одговора који ажурира МАЦ таблицу на повезаним прекидачима како би вас обавестио о промени власништва над виртуалном ИП адресом и мац адресом за преусмеравање саобраћаја.

Инсталирајте и конфигуришите кеепаливед на ЦентОС

Инсталација и конфигурација ће се извршити на примјеру проки-серв01 сервере и проки-серв02 на Центос 7 са инсталираним лигњем. У нашој шеми користићемо најједноставнију метод балансирања оптерећења (балансирање) - Роунд Робин ДНС. Ова метода претпоставља да је за једно име неколико ДНС адреса регистровано у ДНС-у, а клијенти, на захтев, добијају једну по једну адресу, а затим другу. Због тога ће нам требати две виртуелне ИП адресе које ће бити регистроване у ДНС-у са истим именом и којима ће клијенти на крају контактирати. Мрежни дијаграм:

Сваки Линук сервер има два физичка мрежна интерфејса: етх1 са белом ИП адресом и приступом Интернету и етх0 на локалној мрежи.

Следеће се користе као стварне ИП адресе сервера:
192.168.2.251 - за проки-сервер01
192.168.2.252 - за проки-сервер02

Следеће се користе као виртуелне ИП адресе које ће се аутоматски пребацивати између сервера у случају квара:
192.168.2.101
192.168.2.102

Важно је. При подешавању ВРРП-а, права адреса послужитеља се не користи као адреса за виртуални ИП, јер ће се, у случају квара, његова адреса премјестити на сусједну, а након обнављања бити ће изолирана од мреже. Ствар је у томе да, да бисте вратили своју адресу, морате да пошаљете пакет у ВРРП мрежу, али неће бити ИП адресе са које се то може учинити.

Инсталирајте кеепаливед пакет на оба сервера помоћу наредбе:

иум инсталл кеепаливед

Након што је инсталација завршена на оба сервера, уредите конфигурацијску датотеку

/етц/кеепаливед/кеепаливед.цонф

Линије у боји са различитим параметрима:

на проки-серв01 серверуна проки-серв02 серверу

Анализираћемо опције детаљније:

  • вррп_инстанце - Одељак који дефинише инстанцу ВРРП-а;
  • стање - почетно стање при покретању;
  • интерфејс - интерфејс на коме ће се покренути ВРРП;
  • виртуал_роутер_ид - јединствени идентификатор ВРРП инстанције, мора се подударати на свим серверима;
  • приоритет - поставља приоритет при избору МАСТЕР-а, сервер са највишим приоритетом постаје МАСТЕР;
  • виртуална адреса - блок виртуалних ИП адреса које ће бити активне на серверу у стању МАСТЕР. Мора се подударати на свим серверима у инстанци ВРРП.
Напомена. Можете пронаћи много примера у којима се користи опција ВРРП аутентификација. Међутим у документацији кеепаливед помиње се да је аутентификација уклоњена из ВРРПв2 у РФЦ3768 спецификацији (хттпс://тоолс.иетф.орг/хтмл/рфц3768) 2004. године, јер није пружала стварну сигурност. Препоручује се избегавање коришћења ове опције..

Ако тренутна мрежна конфигурација не допушта мултицаст, кеепаливед има опцију да користи уницаст, тј. шаљите ВРРП пакете директно на сервере одређене листе. Да бисте користили уницаст, требат ће вам опције:

  • уницаст_срц_ип - изворна адреса за ВРРП пакете;
  • уницаст_пеер - блок ИП адреса сервера на које ће се слати ВРПП пакети.

Дакле, наша конфигурација дефинише две ВРРП инстанце, проки_ип1 и проки_ип2. Током нормалног рада проки-серв01 сервер ће бити МАСТЕР за виртуелни ИП 192.168.2.101 и БАЦКУП за 192.168.2.102, а проки-серв02 сервер ће бити МАСТЕР за виртуелни ИП 192.168.2.102, а БАЦКУП за 192.168.2.101.

Ако је заштитни зид активиран на серверу, морате додати допуштена правила за вишеструки промет и вррп протокол користећи иптаблес:

иптаблес -А ИНПУТ -и етх0 -д 224.0.0.0/8 -ј АЦЦЕПТ
иптаблес -А ИНПУТ -п вррп -и етх0 -ј ПРИХВАТ

Активирамо стартапове и покрећемо услугу чувања програма на оба сервера:

системцтл енабле кеепаливед
системцтл старт кеепаливед

Након покретања сервиса који је сачуван, виртуалним ИП-овима бит ће додијељени интерфејси из конфигурацијске датотеке. Погледајмо тренутне ИП адресе на интерфејсу етх0 сервера:

ип схов етх0

На проки-серв01 серверу:

На проки-серв02 серверу:

Кеепаливед: монитор апликација и здравља интерфејса

Захваљујући ВРРП протоколу, могуће је пратити статус сервера, на пример, током потпуног физичког квара сервера или мрежног порта на серверу или преклопника. Међутим, могуће су и друге проблематичне ситуације:

  • грешка у сервису проки сервера - клијенти који стигну до виртуелне адресе овог сервера добиће поруку у прегледачу са грешком да проки сервер није доступан;
  • одбијање другог интерфејса - клијенти који стигну до виртуелне адресе овог сервера добит ће поруку у прегледачу са грешком да веза не може да се успостави.

Да бисмо решили горе наведене ситуације, користићемо следеће опције:

  • трацк_интерфаце - надгледање стања сучеља; ставља инстанцу ВРРП у стање ФАУЛТ ако је један од наведених интерфејса у доњем стању;
  • трацк_сцрипт - надгледање помоћу скрипте која би требала вратити 0 ако је провјера успјешно окончана, 1 - ако провјера није успјела.

Ажурирајте конфигурацију, додајте праћење интерфејса етх1 (подразумевано ВРРП инстанца ће проверити интерфејс на који је везан, тј. У тренутној конфигурацији етх0):

трацк_интерфаце етх1 

Директива трацк_сцрипт покреће скрипту с параметрима дефинираним у блоку вррп_сцрипт, који има следећи формат:

вррп_сцрипт интервал интервала - учесталост скрипте, задани пад од 1 секунде - колико пута је скрипта вратила нулту нулту вредност, на којој се пребацује на пораст стања ФАУЛТ - број пута када је скрипта вратила нулту вредност, на којој треба да изађе из стања неиспуњавања временског ограничења - временско ограничење све док скрипта не врати резултат, након чега се врати не-нулта вредност. тежина - вредност којом ће се смањити приоритет сервера у случају преласка на стање ФАУЛТ. Задана вредност је 0, што значи да ће се сервер пребацити у стање ФАУЛТ након неуспешног извршавања скрипте за број пута који је наведен параметром пада.  

Конфигуришите надзор перформанси лигње. Можете да проверите да ли је процес активан помоћу команде:

лигње -к чек

Креирајте вррп_сцрипт, са параметрима фреквенције извођења сваке 3 секунде. Овај блок је дефинисан изван блокова. вррп_инстанце.

вррп_сцрипт цхк_скуид_сервице сцрипт "/ уср / сбин / скуид -к цхецк" интервал 3 

Додајте нашу скрипту за надгледање, унутар оба блока вррп_инстанце:

трацк_сцрипт цхк_скуид_сервице

Сада, ако Скуид проки услуга не успе, виртуална ИП адреса ће се пребацити на други сервер.

Можете додати додатне акције када се статус сервера промени.

Ако је Скуид конфигуриран да прихвата везе са било којег интерфејса, тј. хттп_порт 0.0.0.0 128, онда при пребацивању виртуелне ИП адресе неће бити проблема, Скуид ће прихватити везе на новој адреси. Али, ако су конфигурисане одређене ИП адресе, на пример:

хттп_порт 192.168.2.101 128 хттп_порт 192.168.2.102па1212

тада Скуид неће знати да се у систему појавила нова адреса у којој требате да слушате захтеве клијената. Да бисте решили такве ситуације, када морате да извршите додатне радње приликом пребацивања виртуелне ИП адресе, кеепаливед садржи могућност извршавања скрипте када се догоди догађај када се стање сервера промени, на пример, из МАСТЕР у БАЦКУП или обрнуто. Проводи се опцијом:

нотифи "пут до извршне датотеке"

Кеепаливед: тестирање грешке

Након подешавања виртуалног ИП-а, провјерит ћемо колико се исправно појављује обрада грешке. Први тест је да симулира квар једног сервера. Из мреже искључујемо интерно мрежно сучеље етх0 проки-серв01 сервера, док ће он престати слати ВРРП пакете и проки-серв02 сервер мора активирати виртуалну ИП адресу 192.168.2.101. Резултат ћемо проверити командом:

ип схов етх0

На проки-серв01 серверу:

На проки-серв02 серверу:

Као што се очекивало, проки-серв02 сервер је активирао виртуелну ИП адресу 192.168.2.101. Да видимо шта се догодило у записницима са командом:

цат / вар / лог / мессагес | греп -и сам чувао

на проки-серв01 серверуна проки-серв02 серверу
Кеепаливед_вррп [ккккк]: Кернел извештава: сучеље етх0 ДОВН Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Улазак у ФАУЛТ СТАТЕ Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) уклањање ВИП протокола. Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Сада је у стању НЕОПИСА
Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Прелазак на МАСТЕР СТАТЕ
Кеепаливед прима сигнал да је етх0 интерфејс у ​​ДОВН стању и поставља ВРРП инстанцу проки_ип1 у стање ФАУЛТ, ослобађајући виртуелне ИП адресе.Кеепаливед ставља ВРРП инстанцу проки_ип1 у стање МАСТЕР, активира адресу 192.168.2.101 на етх0 и шаље бесповратни АРП.

И проверићемо да након што се етх0 интерфејс на проки-серв01 серверу повеже са мрежом, виртуелни ИП 192.168.2.101 ће се вратити.

на проки-серв01 серверуна проки-серв02 серверу
Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) форсира нови избор МАСТЕР Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Прелазак на МАСТЕР СТАТЕ Кеепаливед_вррп [Кеепбацк] ВИП особе Кеепаливед_вррп [ккккк]: Слање бесплатног АРП-а на етх0 за 192.168.2.101
Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Примљени оглас са вишим приоритетом 255, наших 100 Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Улазак у БАЦКУП СТАТЕ Кеепаливед_вррп [ккккк]: ВРРПП.
Кеепаливед прима сигнал за враћање етх0 интерфејса и започиње нове МАСТЕР изборе за ВРРП инстанцу проки_ип1. Након преласка у стање МАСТЕР, активира адресу 192.168.2.101 на етх0 интерфејсу и шаље бесплатни АРП.Кеепаливед прима пакет високог приоритета за ВРРП инстанцу проки_ип1 и ставља проки_ип1 у стање БАЦКУП и ослобађа виртуелне ИП адресе.

Други тест је да симулирамо неуспех спољног мрежног интерфејса, за то искључујемо спољни мрежни интерфејс етх1 проки-серв01 сервера из мреже. Резултат провере провераваћемо по записницима.

на проки-серв01 серверуна проки-серв02 серверу
Кеепаливед_вррп [ккккк]: Кернел извештава: сучеље етх1 ДОВН Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Улазак у ФАУЛТ СТАТЕ Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) уклањање ВИП протокола. Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Сада је у стању НЕОПИСА
Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Прелазак на МАСТЕР ДРЖАВУ Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Улазак у МАСТЕР СТАТЕ Кеепаливед_вррп [ккккк]: ВРРП_Инстс Про. Кеепаливед_вррп [ккккк]: Слање бесплатног АРП-а на етх0 за 192.168.2.101
Кеепаливед прима сигнал да је етх1 сучеље у доњем стању и ставља ВРРП инстанцу проки_ип1 у стање ФАУЛТ, ослобађајући виртуелне ИП адресе.Кеепаливед ставља ВРРП инстанцу проки_ип1 у стање МАСТЕР, активира адресу 192.168.2.101 на етх0 и шаље бесповратни АРП.

Трећа провера је имитација неуспеха проки услуге Скуид, јер ћемо ручно напустити услугу са командом: системцтл стоп лигње Резултат провере провераваћемо по записницима.

на проки-серв01 серверуна проки-серв02 серверу
Кеепаливед_вррп [ккккк]: ВРРП_Сцрипт (цхк_скуид_сервице) није успео Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Улазак у ФАУЛТ СТАТЕ Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1). Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Сада је у стању НЕОПИСА
Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Прелазак на МАСТЕР ДРЖАВУ Кеепаливед_вррп [ккккк]: ВРРП_Инстанце (проки_ип1) Улазак у МАСТЕР СТАТЕ Кеепаливед_вррп [ккккк]: ВРРП_Инстс Про. Кеепаливед_вррп [ккккк]: Слање бесплатног АРП-а на етх0 за 192.168.2.101
Скрипта провјере активности лизинг проки услуга није успјела. Кеепаливед ставља ВРРП инстанцу проки_ип1 у стање ФАУЛТ, ослобађајући виртуелне ИП адресе.Кеепаливед ставља ВРРП инстанцу проки_ип1 у стање МАСТЕР, активира адресу 192.168.2.101 на етх0 и шаље бесповратни АРП.

Све три провере успешно су просле, исправно конфигурисане вредности. У наставку овог чланка конфигуришемо ХА кластер помоћу програма Пацемакер и размотрити специфичности сваког од ових алата..

Завршна датотека конфигурације /етц/кеепаливед/кеепаливед.цонф за сервер проки-серв01:

вррп_сцрипт цхк_скуид_сервице сцрипт "/ уср / сбин / скуид -к цхецк" интервал 3 вррп_инстанца проки_ип1 стање МАСТЕР интерфејс етх0 виртуал_роутер_ид 1 приоритет 255 виртуал_ипаддресс 192.168.2.101/24 дев етх0 ознака етх0: 1 трацк_интерфаце етх1 трацк_интерфаце етх1 трацк1интерфаце етх1 трацк1интерфаце етх1 трацк1интерфаце етх1 трацк1интерфаце етх1 трацк1интерфаце етх1 трацк1интерфаце етх1 трацк1интерфаце етх1 трацк_интерфаце етх1 трацк1интерфаце етх1 трацк1интерфаце етх1 трацк_интерфаце етх1 трацк1интерфаце етх1 трацк_интерфаце етх1 трацк1интерфаце етх1 трацк_интерфаце етх1 трацк_интерфаце етх1  вррп_инстанца проки_ип2 стање БАЦКУП сучеље етх0 виртуал_роутер_ид 2 приоритет 100 виртуална_представа 192.168.2.102/24 дев етх0 ознака етх0: 2 трацк_интерфаце етх1 трацк_сцрипт цхк_скуид_сервице 

Завршна датотека конфигурације /етц/кеепаливед/кеепаливед.цонф за сервер проки-серв02:

вррп_сцрипт цхк_скуид_сервице сцрипт "/ уср / сбин / скуид -к цхецк" интервал 3 вррп_инстанца проки_ип1 стање БАЦКУП сучеље етх0 виртуал_роутер_ид 1 приоритет 100 виртуал_ипаддресс 192.168.2.101/24 дев етх0 ознака етх0: 1 трацк_интерфаце етх1 трацк1интерфаце етх1 трацк1интерфаце етх1  вррп_инстанца проки_ип2 стање МАСТЕР сучеље етх0 виртуал_роутер_ид 2 приоритет 255 виртуална_ипадресс 192.168.2.102/24 дев етх0 лабел етх0: 2 трацк_интерфаце етх1 трацк_сцрипт цхк_скуид_сервице