Skip to content

BryukhanovAl/https-github.com-Ivashka80-Disaster-recovery_Keepalived

Repository files navigation

Домашнее задание к занятию 1 «Disaster recovery и Keepalived» Брюханов Александр

Details

Цель задания

В результате выполнения этого задания вы научитесь:

  1. Настраивать отслеживание интерфейса для протокола HSRP;
  2. Настраивать сервис Keepalived для использования плавающего IP

Чеклист готовности к домашнему заданию

  1. Установлена программа Cisco Packet Tracer
  2. Установлена операционная система Ubuntu на виртуальную машину и имеется доступ к терминалу
  3. Сделан клон этой виртуальной машины, они находятся в одной подсети и имеют разные IP адреса
  4. Просмотрены конфигурационные файлы, рассматриваемые на лекции, которые находятся по ссылке

Инструкция по выполнению домашнего задания

  1. Сделайте fork репозитория c шаблоном решения к себе в Github и переименуйте его по названию или номеру занятия, например, https://github.com/имя-вашего-репозитория/gitlab-hw или https://github.com/имя-вашего-репозитория/8-03-hw).
  2. Выполните клонирование этого репозитория к себе на ПК с помощью команды git clone.
  3. Выполните домашнее задание и заполните у себя локально этот файл README.md:
    • впишите вверху название занятия и ваши фамилию и имя;
    • в каждом задании добавьте решение в требуемом виде: текст/код/скриншоты/ссылка;
    • для корректного добавления скриншотов воспользуйтесь инструкцией «Как вставить скриншот в шаблон с решением»;
    • при оформлении используйте возможности языка разметки md. Коротко об этом можно посмотреть в инструкции по MarkDown.
  4. После завершения работы над домашним заданием сделайте коммит (git commit -m "comment") и отправьте его на Github (git push origin).
  5. Для проверки домашнего задания преподавателем в личном кабинете прикрепите и отправьте ссылку на решение в виде md-файла в вашем Github.
  6. Любые вопросы задавайте в чате учебной группы и/или в разделе «Вопросы по заданию» в личном кабинете.

Задание 1

  • Дана схема для Cisco Packet Tracer, рассматриваемая в лекции.
  • На данной схеме уже настроено отслеживание интерфейсов маршрутизаторов Gi0/1 (для нулевой группы)
  • Необходимо аналогично настроить отслеживание состояния интерфейсов Gi0/0 (для первой группы).
  • Для проверки корректности настройки, разорвите один из кабелей между одним из маршрутизаторов и Switch0 и запустите ping между PC0 и Server0.
  • На проверку отправьте получившуюся схему в формате pkt и скриншот, где виден процесс настройки маршрутизатора.

Ответ

Details

Снимок01

Снимок02

Снимок03

Файл PKT https://github.com/Ivashka80/Disaster-recovery_Keepalived/blob/main/hsrp_advanced_DZ1.pkt


Задание 2

  • Запустите две виртуальные машины Linux, установите и настройте сервис Keepalived как в лекции, используя пример конфигурационного файла.
  • Настройте любой веб-сервер (например, nginx или simple python server) на двух виртуальных машинах
  • Напишите Bash-скрипт, который будет проверять доступность порта данного веб-сервера и существование файла index.html в root-директории данного веб-сервера.
  • Настройте Keepalived так, чтобы он запускал данный скрипт каждые 3 секунды и переносил виртуальный IP на другой сервер, если bash-скрипт завершался с кодом, отличным от нуля (то есть порт веб-сервера был недоступен или отсутствовал index.html). Используйте для этого секцию vrrp_script
  • На проверку отправьте получившейся bash-скрипт и конфигурационный файл keepalived, а также скриншот с демонстрацией переезда плавающего ip на другой сервер в случае недоступности порта или файла index.html

Ответ

Details
#!/bin/bash
if [[ $(netstat -tuln | grep LISTEN | grep :80) ]] && [[ -f /var/www/html/index.nginx-debian.html ]]; then
        exit 0
else
        sudo systemctl stop keepalived
fi

Файл конфига https://github.com/Ivashka80/Disaster-recovery_Keepalived/blob/main/keepalived.conf

image

image

image

image


Details

Дополнительные задания со звёздочкой*

Эти задания дополнительные. Их можно не выполнять. На зачёт это не повлияет. Вы можете их выполнить, если хотите глубже разобраться в материале.

Задание 3*

  • Изучите дополнительно возможность Keepalived, которая называется vrrp_track_file
  • Напишите bash-скрипт, который будет менять приоритет внутри файла в зависимости от нагрузки на виртуальную машину (можно разместить данный скрипт в cron и запускать каждую минуту). Рассчитывать приоритет можно, например, на основании Load average.
  • Настройте Keepalived на отслеживание данного файла.
  • Нагрузите одну из виртуальных машин, которая находится в состоянии MASTER и имеет активный виртуальный IP и проверьте, чтобы через некоторое время она перешла в состояние SLAVE из-за высокой нагрузки и виртуальный IP переехал на другой, менее нагруженный сервер.
  • Попробуйте выполнить настройку keepalived на третьем сервере и скорректировать при необходимости формулу так, чтобы плавающий ip адрес всегда был прикреплен к серверу, имеющему наименьшую нагрузку.
  • На проверку отправьте получившийся bash-скрипт и конфигурационный файл keepalived, а также скриншоты логов keepalived с серверов при разных нагрузках

Правила приема работы

  1. Необходимо следовать инструкции по выполнению домашнего задания, используя для оформления репозиторий Github
  2. В ответе необходимо прикладывать требуемые материалы - скриншоты, конфигурационные файлы, скрипты. Необходимые материалы для получения зачета указаны в каждом задании.

Критерии оценки

  • Зачет - выполнены все задания, ответы даны в развернутой форме, приложены требуемые скриншоты, конфигурационные файлы, скрипты. В выполненных заданиях нет противоречий и нарушения логики
  • На доработку - задание выполнено частично или не выполнено, в логике выполнения заданий есть противоречия, существенные недостатки, приложены не все требуемые материалы.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors