Современные компьютерные сети 2025 — различия между версиями
(→План курса) |
(→Полезные ссылки) |
||
| Строка 44: | Строка 44: | ||
==Полезные ссылки== | ==Полезные ссылки== | ||
[https://t.me/+8tH5NOli_MIwY2My Чат курса] | [https://t.me/+8tH5NOli_MIwY2My Чат курса] | ||
| + | ==Форма регистрации на курс== | ||
| + | [https://forms.gle/XomfURhgHraLRbYD9] | ||
==План ДЗ== | ==План ДЗ== | ||
Версия 10:36, 14 октября 2025
План курса
- 1) Распределенные вычисления и сети. Зачем вообще они нужны? 7-уровневая модель OSI/ISO.
Физический уровень в сети: примеры различных сред передачи, используемые трансиверы.
- 2) Канальный уровень: разновидности 802.3 и типы фреймов Ethernet. Разделение широковещательного домена и VLAN., протоколы для предотвращения петель.
- 3) Бридж и коммутатор, принципы работы.
Лабораторная работа по L2-сетям.
- 4) Семинар по L1/L2 уровням: подготовка докладов по набору тем, выступление и обсуждение.
- 5) Сетевой уровень модели OSI/ISO.
Стек TCP/IP: cравнение стека TCP/IP и модели OSI/ISO.. IPv4/IPv6 адресация, обзор заголовков и сравнение. Варианты получения (назначения) IP-адреса. Лабораторная работа по IP-адресации.
- 6) Графы – как абстракция сети. Выдержки из теории множеств и графов. Нахождение кратчайшего пути в графе – задача маршрутизации.
Лабораторная работа по графам (основное и доп. ДЗ).
- 7) Семинар по использованию различных алгоритмов нахождения оптимальных путей в графе: подготовка докладов по набору тем, выступление и обсуждение.
- 8) Введение в маршрутизацию. Классификация протоколов маршрутизации. Обзор протоколов: RIP, ISIS.
- 9) Обзор стека маршрутизации FRR. Принципы конфигурации.
Лабораторная работа по настройке маршрутизации с использованием FRR (статическая маршрутизация, ISIS).
- 10) Обзор протокола BGP. Атрибуты и NLRI. IBGP и EBGP. Выбор наилучшего (оптимального) маршрута в BGP.
Лабораторная работа – написать собственный код для простейшего BGP-спикера на goBGP, анонсировать IPv4/IPv6 префиксы, проанализировать и вывести состояние BGP FSM.
- 11) Применение BGP в ЦОД.
Лабораторная работа по конфигурации EBGP-фабрики в ЦОД на FRR.
- 12) Семинар по маршрутизации – обсуждение и сравнение докладов по различным протоколам маршрутизации.
- 13) Транспортный уровень: протоколы TCP, UDP, QUIC. Варианты и сценарии использования.
- 14) Сетевая телеметрия. Виды и варианты использования.
Лабораторная работа: написать свой коллектор для сбора статистики по протоколу BMP.
- 15) Базовая безопасность в сетях, типы основных атак на сетевую инфраструктуру. ACL и FW. Лабораторная работа по созданию ACL.
- 16) Обзор технологий туннелирования: IPinIP, GRE, VXLAN, MPLS, Segment Routing. Traffic Engineering и SDN. Дополнительная лабораторная работа.
Полезные ссылки
Форма регистрации на курс
План ДЗ
Лабораторная работа по L2-сетям
Цель работы:
Изучить основной функционал и принципы работы бриджей (коммутаторов). Образование петель и протокол STP, использование VLAN.
Описание основного задания: 1) Используется Containerlab для создания виртуальной топологии из двух бриджей и двух хостов. Топология сети описывается в YAML-файле. Необходимо создать пользовательскую bridge-сеть в Docker, запустить контейнеры, проверить MAC-learning на бриджах (найти МАС-адреса хостов на бриджах, запустить tcpdump перед проверкой IPv4-связности между хостами, увидеть фладинг (floodng) BUM-трафика, затем увидеть адресную отправку Ethernet-фреймов,
2) Записать в отчет схему, МАС-адреса хостов, выдержки дампа с комментариями и объяснениями.
3) Сделать второй бридж, переключить на него второй хост и соединить с бриджом 1 через veth интерфейсы. Проверить работу по п.1
4) Имитировать создание петли при помощи второго veth соединения между бриджами. Увидеть broadcast-storm, отследить поведение бриджа. Записать в отчет с комментариями.
5) Включить протокол STP на обоих бриджах, найти заблокированный порт, убедиться в работоспособности бриджей и наличии ip-связности между хостами. Записать в отчет.
Дополнительное задание:
1) При помощи tcpdump найти BPDU-фреймы, скопировать их в отчет с описание структуры. Объяснить выбор root (корневого) бриджа.
2) Сымитировать отказ линка между бриджами и отследить изменение топологии. Записать в отчет с объяснением.
3) Добавить VLAN 10 и 20 на порты бриджей к хостам, на активном порту между бриджами разрешить их передачу (802.1Q).
4) Убедиться в изоляции хостов друг от друга (отсутствие IP-связности). Снять дамп-трафика при помощи tcpdump, найти поле 802.1Q, записать образец фрейма в отчет.
5) Перевести второй хост также в VLAN 10 на его бридже, убедиться в появлении IP-связности.
6) Своими словами описать сравнение поведения хостов и передачи фреймов с разными и одинаковыми VLAN
Оценка
- Оценка за основное ДЗ: 80 баллов
- Оценка за дополнительное задание: 90 баллов
- Итого, общая максимальная оценка – 170 баллов.
Семинар по L1/L2-уровням:
Выбрать одну из перечисленных тем (либо предложить свою) подготовить слайды на 10-15 минутный доклад, выступить с докладом, ответить на вопросы коллег. На семинар выносится 5-6 докладов по принципу FIFO. Слушатели активно участвуют в обсуждении.
Темы для докладов:
1) Эволюция Ethernet.
2) Обзор и сравнение используемых сейчас типов Ethernet.
3) Ретроспектива фреймов Ethernet.
4) Сравнение используемых сейчас в сетях ЦОД трансиверов Ethernet
5) Архитектуры современных коммутаторов
6) Эволюция бриджей
7) Плюсы и минусы использования большого широковещательного домена
8) Сравнение протоколов STP
9) Использование VLAN: за и против.
Оценка
- Оценка за отличный доклад (оценивается семинаристом): 120 баллов
- Оценка за хороший доклад (оценивается семинаристом): 100 баллов
- Оценка за средний доклад (оценивается семинаристом): 80 баллов
- За важный вопрос или комментарий ((оценивается семинаристом)) студенту начисляется 5 баллов
Лабораторная работа по IP-адресации.
Цель работы:
Изучить на практике IPv4/IPv6-адресацию, варианты назначения IP-адресов (статический, динамический). Уметь планировать IP-адресацию.
Описание задания:
В среде Containerlab собрать топологию (YAML-файл) из двух Linux-контейнеров (условный «маршрутизатор» и хост. Назначение маршрутизатора будет разобрано позднее, сейчас это устройство, выдающее динамически IP-адреса).
На хосте и «маршрутизаторе» на интерфейсах настроить статические IPv4 и IPv6-адреса. Проверить связность (ping, ping6).
Очистить конфигурацию (сделать containerlab deploy --reconfigure).
Установить на «маршрутизаторе» Open Source варианты DHCP-серверов для IPv4/v6 (н-р: isc-dhcp-server, wide-dhcpv6-server).
Сконфигурировать пулы v4/v6-адресов для выдачи хосту.
Запустить tcpdump на хосте7
Запустить DHCP-сервера на маршрутизаторе.
Настроить IPv6 ND на «маршрутизаторе» (RA).
Проверить получение IPv4-адреса на хосте. В дампе найти DHCPv4 пакеты ( DISCOVER, OFFER и др.) и приложить их в отчет.
Проверить получение IPv6-адреса на хосте. В дампе найти DHCPv6 пакеты (SOLICIT, ADVERTISE и др.) и приложить их в отчет.
Перезапустить сетевой интерфейс между хостом и «маршрутизатором». Найти в дампе RS/RA пакеты, проанализировать флаги и определить сценарий (DHCPv6/SLAAC) приложить вывод и описание в отчет.
Уметь объяснить логику получения динамического IP-адреса для IPv4 и IPv6.
Оценка
- Оценка за ДЗ: 90 баллов
Лабораторная работа по графам.
Цель работы:
Освежить знания о графах, как об абстракции сети, подумать о прикладном применении теории графов в сетях и подготовиться к теме про маршрутизацию. Применить на практике алгоритм нахождения оптимального пути к заданным графам, оценить их вычислительную сложность. В дополнительном задании необходимо найти и использовать более сложный алгоритм нахождения оптимального пути (DCLC). Работа состоит из основного и дополнительного задания.
Описание основного задания:
Задайте следующие неориентированные мультиграфы: V= {40, 60, 80, 100, 120 }, степень вершин deg (v)= {2,3,4} при этом случайным образом задайте вершины с кратными ребрами {2, 4}. Сформируйте матрицы смежности и инцидентности. Для каждого графа сформируйте матрицу весов для каждого ребра {1,10,100} со случайным распределением по ребрам. Попытайтесь их визуализировать.
Используя алгоритм Дейкстры (или иной, в этом случае обоснуйте свой выбор) просчитайте кратчайшие пути между случайными парами вершинами (например, 10, 20), отобразите кратчайший и наиболее длинный пути между этими вершинами для каждого мультиграфа, отобразите их визуально. Посчитайте вычислительную сложность алгоритма(ов) для каждого мультиграфа. Сделайте описание и выводы по этой работе в виде страницы документации.
Описание дополнительного задания
Ориентируясь на заданные мультиграфы из 1й части, предложите наиболее оптимальный вариант алгоритма (можно придумать свой), для случая задания двух весов каждому ребру (например, на основе полосы пропускания, как в первом задании, так и задержки {10, 20,30,…, 100}) Предложите возможные критерии оптимальности для выбора маршрута. Для справки: посмотрите имеющиеся Delay Constrained Least Cost (DCLC) алгоритмы. Обоснуйте свой выбор. Напишите реализацию в коде (Python, Go) и оцените его вычислительную сложность.
Подумайте, что, если нам нужно будет добавить дополнительное ограничение для маршрута (пути) на максимальное количество, ребер. Что Вы предложите, возможно ли модифицировать алгоритм из п.1? Напишите реализацию в коде (Python6 Go) и оцените его вычислительную сложность.
По пп.1 и 2 подготовить доклад (~10-15 минут) по предложенному алгоритму (почему, преимущества, недостатки, сравнение) и выступить на семинаре (см. ниже).
Оценка
- Оценка за основное ДЗ: 100 баллов
- Оценка за дополнительное задание: п1 - 100 баллов, п2 – 50 баллов, п.3 – 120 баллов за отличный доклад (оценивается семинаристом) – см. ниже.
Семинар по графам:
Студентам, выполнившие дополнительное ДЗ (пп.1-2), предлагается возможность выступить с докладом по выбранному алгоритму. Также принимаются доклады обзорного плана по сравнению различных алгоритмов, применимости тех или иных алгоритмов для нахождения пути, проблеме DCLC. Длительность выступления – не более 15 минут. На семинар выносится 5-6 докладов по принципу FIFO. Слушатели активно участвуют в обсуждении.
Оценка
- Оценка за отличный доклад (оценивается семинаристом): 120 баллов
- Оценка за хороший доклад (оценивается семинаристом): 100 баллов
- Оценка за средний доклад (оценивается семинаристом): 80 баллов
- За важный вопрос или комментарий ((оценивается семинаристом)) студенту начисляется 5 баллов
Лабораторная работа по маршрутизации
Цель работы:
На практике проработать навыки использования статической и динамической маршрутизации в окружении Containerlab. Научиться настраивать, как статическую маршрутизацию в Linux, так и динамическую: на основе алгоритма Белмана-Форда (RIPv2) и на основе link-state протокола ISIS в маршрутизирующем стеке FRR. Понять принципы их работы, сходство и различия, сопоставить c собственной реализацией алгоритма поиска оптимального пути в графе.
Статическая Dual-Stack маршрутизация
Цель работы:
Разобраться с принципом работы и настройкой статической маршрутизации в Linux.
Описание задания: 1) Собрать заданную схему сети в Containerlab (YAML-файл) с тремя маршрутизаторами (Linux-контейнерами, r1, r2, r3) в топологии треугольник.
2) Запустить ее, назначить IPv4 и IPv6-адреса согласно плана (для dummy (dum0) и eth). Включить IPv4/v6-форвардинг (sysctl -w net.ipv4.ip_forward=1; sysctl -w net.ipv6.conf.all.forwarding=1)
3) Настроить статические маршруты так, чтобы с каждого из маршрутизаторов проходил пинг (ping, ping6) и traceroute до dummy-интерфейсов (dum0) двух других.
4) Запишите выводы команд в т.ч. выводы маршрутных таблиц ядра Линукса в отчет.
5) Уметь объяснить полученные данные и выводы.
6) Разорвите один линк между маршрутизаторами r1 и r2 (ip link set dev eth1 up), проверьте еще раз пинг и traceroute между r1 и r2, найдите, что необходимо сделать, чтобы восстановить связность. Объясните свои действия и полученные результаты. Запишите их в отчет.
7) Перечислите в отчете плюсы и минусы статической маршрутизации. Добавьте ваши мысли по ее использованию в больших сетях.
8) Разобрать собранную топологию (либо удалите все статические маршруты!).
Динамическая маршрутизация на основе протокола RIPv2 и RIPng
Цель работы:
Разобраться с принципами работы протокола RIP, уметь его настраивать.
Описание задания:
1) Соберите предыдущую топологию и назначьте те же адреса из предыдущего задания (для dummy и eth). Аналогично включить v4/v6-форвардинг.
2) Установить на все три маршрутизатора FRR, включив в конфигурационном списке демонов ripd, ripngd.
3) Настроить FRR так, чтобы он анонсировал адреса интерфейса dum0 в ripd (IPv4) и в ripngd (IPv6) каждого маршрутизатору двум другим.
4) Проверить таблицу маршрутизации на каждом из маршрутизаторов (sh ip route; sh ipv6 route), убедиться в наличии адресов dummy-интерфейсов двух других маршрутизаторов.
5) Обратить внимание на метрики до каждого из dummy-интерфейсов. Описать в отчете принцип выбора кратчайшего пути до них.
6) Проверить ping/ping6 и traceroute до двух других dummy-интерфейсов на каждом из маршрутизаторов.
7) «Погасить» (ip link set dum0 down) dummy-интерфейс на одном из маршрутизаторов, найти момент времени, когда соотв. анонс исчезнет на двух других маршрутизаторах.
8) Опишите отличия RIPv2 от RIPng.
9) Ответьте на вопрос для чего в сетях используются dummy-интерфейсы?
10) Написать скрипт (Python, Go), генерирующий конфигурации FRR для RIP, RIPng, адресов (IPv4, IPv6) интерфейсов.
11) Скрипт должен подключиться к инстансам FRR в Containerlab, провижионить сгенерированные конфигурации и проверять связность от каждого инстанса к двум другим, а также выводить на экран содержимое маршрутных таблиц.
12) Выложить скрипт и документацию к нему в заданную папку вашего проекта по этому ДЗ. Если описание делается в Jupyter notebook, то прикладывать оригинальный файл, а не pdf.
13) Уметь объяснять работу протокола маршрутизации RIP.
Динамическая маршрутизация на основе протокола ISIS L2 в Dual-Stack режиме
Цель работы:
Изучить работу link-state протокола ISIS, разобраться с логикой, типом и форматом его пакетов, научиться настраивать ISIS. Описание задания: 1) Запустить предыдущую топологию из трех маршрутизаторов, настроить v4 и v6 адреса на физически (eth) и dummy (dum0) интерфейсах, включить форвадинг для IPv4/IPv6.
2) В настройках FRR закомментировать демоны ripd, ripngd и раскоментировать isisd. Перезапустить FRR.
3) Настроить ISIS L2 на каждом маршрутизаторе: задать разный параметр NET согласно плана, включить ISIS на нужных интерфейсах, на физических интерфейсах задать L2 соседство.
4) Проверить ISIS соседство на каждом маршрутизаторе, вы должны видеть двух соседей и тип соседства должен быть L2. Приложить к отчету
5) Проверьте содержимое маршрутных таблиц (IPv4, IPv6) на каждом инстансе FRR, убедитесь, что вы видите все анонсируемые другими инстансами FRR префиксы. Приложите их к отчету с комментарием, что именно вы получили.
6) Выведите на каждом инстансе FRR cодержимое LSDB (sh isis database) для v4 и v6 , приложите его в отчет, также опишите, что вы увидели и почему.
7) Опишите в отчете отличие метрик ISIS и RIP, опишите варианты метрик в ISIS. Сделайте сравнение двух протоколов по разным параметрам (включая масштабируемость), представьте свои соображения по тому какой протокол более применим в каких сетях.
8) Симулируйте обрыв одного из линков между маршрутизаторами, отметьте, как (tcpdump) и как скоро информация об этом будет известна другим маршрутизаторам. Опишите в отчете процесс распространения информации.
9) Соберите дампы всех типов пакетов ISIS и приложите к отчету с указанием для чего используется каждый тип.
10) Найдите, кто из маршрутизаторов является DIS.
11) Измените отношения соседства между r2 и r3 на р2р. Опишите в отчете разницу (различия) с broadcast соседством с подтверждающим выводом команд на FRR. Опишите вашу точку зрения, какие отношения соседства более оптимальны для использования в реальных сетях.
12) Проверьте значение MTU на интерфейсе r2 в сторону r3 и запишите его в отчет. Измените MTU до 9000. Проверьте состояние соседства. Запишите его в отчет и объясните причину изменений. Верните MTU в первоначальное значение и проверьте снова отношение соседства.
13) Кратко опишите отличия L1 ISIS от L2 ISIS.
14) Опишите, какую структуру ISIS использует алгоритм Дейкстры. Ответьте на вопрос: будут ли общие оптимальные пути как для IPv4 топологии, так и для IPv6?
14) Написать скрипт (Python, Go), генерирующий конфигурации FRR для ISIS L2 и р2р отношений соседства, и адресов (IPv4, IPv6) интерфейсов.
15) Скрипт должен подключиться к инстансам FRR в Containerlab, провижионить сгенерированные конфигурации и проверять связность от каждого инстанса к двум другим, а также выводить на экран содержимое маршрутных таблиц, отношений соседства и LSDB.
16) Выложить скрипт и документацию к нему в заданную папку вашего проекта по этому ДЗ. Если описание делается в Jupyter notebook, то прикладывать оригинальный файл, а не pdf.
17) Уметь объяснить работу протокола ISIS.
Оценка
Оценка за это ДЗ формируется из оценок за каждую часть:
- Оценка за ДЗ по статической маршрутизации – 60 баллов.
- Оценка за ДЗ по динамической маршрутизации с использованием протокола RIP – 80 баллов.
- Оценка за ДЗ по динамической маршрутизации с использованием протокола IISIS L2 – 100 баллов.
- Итого, общая максимальная оценка – 240 баллов
Комментарии к оценке
- За каждый не сделанный пункт ДЗ вычитается 5 баллов.
- За отсутствие или неработающий скрипт для ДЗ с динамической маршрутизацией дополнительно вычитается 30 баллов.
- За плохую документацию (невнятное описание, отсутствие описание параметров запуска и описание вывода и т.п.) к скрипту – вычитается 10 баллов.
- За неумение объяснить принцип работы использованных в ДЗ протоколов динамической маршрутизации вычитается полная оценка соответствующей части ДЗ.
- За несамостоятельную работу (например, использование чужого кода) также вычитается полная оценка соответствующей части ДЗ.
Лабораторная работа по основам BGP
Цель работы:
Ознакомиться с основными принципами работы BGP и его FSM в вариантах IBGP и EBGP. Для этого написать собственную реализацию BGP-спикера. Работа состоит из основного и дополнительных заданий.
Описание основного задания:
1) Используя доступные BGP библиотеки для Python/Go написать скрипт для эмуляции BGP-спикера.
2) В качестве входных параметров он должен принимать собственный BGP ASN, RID, IP-адрес BGP-пира (для простоты везде используем только IPv4) и его ASN (тут используем только IBGP – соответственно номера ASN совпадают), IPv4 адреса локального интерфейса, которые будут анонсироваться другому BGP-пиру.
3) Необходимо будет установить все mandatory BGP-атрибуты при формировании IPv4 NLRI.
4) Скрипт должен выводить (визуализировать) и сохранять: состояние сессии (FSM), формат и содержимое отправленного и принятого NLRI, значение BGP-атрибутов.
5) В качестве соседнего BGP-пира предлагается использовать FRR (два контейнера в Containerlab, на одном FRR c базовой BGP IPv4 конфигурацией. На FRR в конфигурационном файле необходимо включить bgpd (раскоментировать) и выключить (закоментировать) isisd, ripd, ripngd.
6) (IBGP), а на втором Linux-контейнере запускается ваш скрипт.
7) Проверьте BGP сессию, маршрутные таблицы с обеих сторон, приложите выводы в отчет.
8) Выложить скрипт и документацию к нему в заданную папку вашего проекта по этому ДЗ. Если описание делается в Jupyter notebook, то прикладывать оригинальный файл, а не pdf.
9) Уметь объяснить полученные результаты и работу BGP.
Описание дополнительного задания:
1) Расширьте ваш скрипт BGP-спикера для поддержки EBGP (разные ASN, дополнительные атрибуты).
2) Модифицируйте конфигурацию FRR для eBGP.
3) Проведите проверки аналогичные первому заданию и сформируйте отчет.
4) Выложить скрипт и документацию к нему в заданную папку вашего проекта по этому ДЗ. Если описание делается в Jupyter notebook, то прикладывать оригинальный файл, а не pdf.
5) Точно понимать и уметь объяснить различия между IBGP и eBGP.
Оценка
Оценка за это ДЗ формируется из оценок за каждую часть: • Оценка за основное ДЗ – 100 баллов. • Оценка за дополнительное ДЗ – 100 баллов. • Итого, общая максимальная оценка – 200 баллов
Комментарии к оценке
- За каждый не сделанный пункт ДЗ вычитается 5 баллов.
- За отсутствие или неработающий скрипт для ДЗ оно не засчитывается совсем.
- За плохую документацию (невнятное описание, отсутствие описание параметров запуска и описание вывода и т.п.) к скрипту – вычитается 10 баллов.
- За неумение объяснить полученные результаты вычитается 60 баллов.
- За несамостоятельную работу (например, использование чужого кода) ДЗ также не засчитывается.
Лабораторная работа по конфигурации IP-фабрики в ЦОД на основе EBGP
Цель работы:
Ознакомиться с основными принципами работы и конфигурации EBGP в фабрике ЦОД. Получить практическое представление о использовании EBGP, как основного протокола маршрутизации, в IP-фабриках ЦОД. Работа состоит из основного и дополнительных заданий.
Описание основного задания: 1) Собрать CLOS-топологию (YAML-файл) в Containerlab из двух Leaf, двух Spine узлов и двух клиентских узлов (Linux-контейнеры), каждый из которых подключается к своему Leaf согласно схеме.
2) Установите и запустите FRR на Leaf/Spine-узлах, настройте IPv6-адреса на них и на клиентских узлах. Раскоментируйте в списках демонов FRR bgpd и закоментируйте isisd.
3) Используя приватные номера автономных систем (BGP ASN) cконфигурируйте eBGP на Leaf и Spine (на этом этапе достаточно сконфигурировать только один Spine). Обратите внимание на необходимость конструкции route-map для передачи префиксов в случае eBGP маршрутизации между узлами. Каждый узел Leaf и Spine должен анонсировать свой loopback префикс (RID – Router ID), кроме того, Leaf должны анонсировать IPv4-префикс интерфейса до клиентского хоста.
4) На клиентских хостах сконфигурируйте маршрут по умолчанию (default route) до «своего» Leaf.
5) Проверьте состояние BGP-сессий между Leaf и Spine (show bgp ipv6 unicast summary; show bgp ipv4 unicast summary), убедитесь, что они в состоянии Established.
6) Проверьте таблицу маршрутизации на сконфигурированных узлах, убедитесь, что в ней присутствуют все анонсированные префиксы. Запишите их в отчет.
7) Проверьте количество путей от Leaf в сторону Spine b наоборот, запишите это в отчет.
8) Обратите внимание на значение BGP атрибута next hop (NH) для IPv4 и IPv6 префиксов, кратко в отчете объясните почему оно именно такое.
9) Проверьте связность между loopback адресами Leaf и Spine (ping, traceroute). Запишите результаты в отчет.
10) Проверьте связность между клиентскими хостами через фабрику (ping, traceroute), запишите результаты в отчет.
11) Напишите скрипт (Python, Go) для генерации конфигурации Leaf и Spine узлов на FRR на основе сделанного выше ручного варианта конфигурации. Скрипт должен или подключаться к инстансу FRR и передавать конфигурацию в CLI или добавлять конфигурацию в YAML-файл Containerlab и перезапускать лабную топологию с этими конфигурационными файлами.
12) Ваш скрипт должен делать все проверки из пп.4-7, отображать вывод на экране и записывать в файл с результатами.
13) Выложить скрипт и документацию к нему в заданную папку вашего проекта по этому ДЗ. Если описание делается в Jupyter notebook, то прикладывать оригинальный файл, а не pdf.
14) Знать основные принципы работы протокола BGP, наиболее используемые атрибуты, BGP best path selection process, нюансы конфигурации eBGP для фабрики в ЦОД. Уметь это рассказать и объяснить.
Описание дополнительного задания: 1) Собрать CLOS-топологию (YAML-файл) в Containerlab из двух Leaf, четырех Spine узлов (добавляется вторая плоскость Spine) и двух клиентских узлов (Linux-контейнеры), каждый из которых подключается к своему Leaf согласно схеме.
2) Настройки аналогичны основному заданию кроме того, что теперь каждый Leaf имеет eBGP сессии к четырем Spine (по два в каждой плоскости) и клиентские хосты подключаются к «своим» Leaf также по eBGP (эмулируем продакшен сценарий маршрутизации от клиентских хостов).
3) Проведите все проверки из основного задания. Дополнительно отследите увеличившееся количество путей для ECMP между Leaf/Spine запишите в отчет.
4) Модифицируйте свой скрипт для поддержки также дополнительных Spine-плоскостей.
5) Сделайте аналогичный предыдущему отчет теперь по фабрике с двумя Spine-плоскостями. Не забудьте добавить в него проверки BGP на клиентских узлах.
Оценка
- Оценка за основное ДЗ: 90 баллов
- Оценка за дополнительное задание: 120 баллов.
- Итого, общая максимальная оценка за это ДЗ: 210 баллов.
Комментарии к оценке
- За каждый не сделанный пункт ДЗ вычитается 5 баллов.
- За отсутствие или неработающий скрипт для eBGP маршрутизации дополнительно вычитается 30 баллов.
- За плохую документацию (невнятное описание, отсутствие описание параметров запуска и описание вывода и т.п.) к скрипту – вычитается 10 баллов.
- За неумение объяснить принцип работы BGP вычитается полная оценка соответствующей части ДЗ.
- За несамостоятельную работу (например, использование чужого кода) также вычитается полная оценка соответствующей части ДЗ.
Семинар по маршрутизации:
Студентам, предлагается возможность выступить с докладом по заинтересовавшим их протоколам маршрутизации, важным аспектам использования этих протоколов, различным проблемам маршрутизации или открытым вопросам для обсуждения, новым протоколам маршрутизации и т.п. Также возможны доклады по сравнению различных протоколов маршрутизации. Длительность выступления – не более 15 минут. На семинар выносится 5-6 докладов по принципу FIFO. Слушатели активно участвуют в обсуждении.
Оценка
- Оценка за отличный доклад (оценивается семинаристом): 120 баллов
- Оценка за хороший доклад (оценивается семинаристом): 100 баллов
- Оценка за средний доклад (оценивается семинаристом): 80 баллов
- За важный вопрос или комментарий ((оценивается семинаристом)) студенту начисляется 5 баллов
Дополнительная лабораторная работа по написанию собственного коллектора сбора сетевой телеметрии по протоколу ВМР
Цель работы:
Изучить протокол ВМР для сбора сontrol-plane телеметрии, сделав его практическую имплементацию.
Описание задания:
1) Написать на Python собственную реализацию ВМР-коллектора, принимающего поток BMP телеметрии от FRR.
2) Использовать топологию из основного лабораторного задания по EBGP в фабрике ЦОД. Коллектор ВМР должен запускаться на одном из клиентских хостов, а на FRR соответствующего Leaf-узла должна быть настроена поддержка ВМР: https://docs.frrouting.org/en/latest/bmp.html
3) Ваш скрипт коллектора должен также визуализировать принятые IPv4/IPv6 префиксы и состояние ВМР сессии с логированием их в файл.
15) Выложить скрипт и документацию к нему в заданную папку вашего проекта по этому ДЗ. Если описание делается в Jupyter notebook, то прикладывать оригинальный файл, а не pdf.
4) Понимать и уметь объяснить назначение телеметрии, принципы сбора control-plane телеметрии, работу ВМР и его важность для понимания происходящего в сети.
Оценка:
- Оценка за ДЗ – 100 баллов.
- Итого, общая максимальная оценка – 100 баллов
Комментарии к оценке
- За каждый не сделанный пункт ДЗ вычитается 5 баллов.
- За отсутствие или неработающий скрипт для ДЗ оно не засчитывается совсем.
- За плохую документацию (невнятное описание, отсутствие описание параметров запуска и описание вывода и т.п.) к скрипту – вычитается 10 баллов.
- За неумение объяснить полученные результаты вычитается 50 баллов.
- За несамостоятельную работу (например, использование чужого кода) ДЗ также не засчитывается.
Лабораторная работа по созданию ACL
Цель работы: Изучить варианты создания ACL на FRR и linux.
Описание задания: 1) В качестве основы использовать топология из задания по EBGP в фабрике с одной плоскостью.
2) Убедиться, что все BGP сессии установлены и между хостами есть IPv4 связность, запишите в отчет.
3) Создайте на Leaf-1 стандартный ACL, запрещающий весь трафик от хоста 1 к хосту 2, привяжите его в направлении in на интерфейс Leaf-1 в сторону хоста 1.
4) Убедитесь в том, что IP-связность между хостами отсутствует. Приложите конфигурацию и выводы команд (sh ip access-list, ping) в отчет.
5) Уберите созданный ACL c интерфейса, убедитесь, что связность между хостами восстановилась. Приложите выводы в отчет.
6) Создайте расширенный ACL на хосте 1, запрещающий ssh соединение на хост 2 при помощи IP tables, nак чтобы все другие соединения были разрешены. Приложите в отчет вывод IP tables и подтверждение невозможности установить ssh (запрещен tcp dport 22) и возможность связности по другим tcp/udp портам.
7) Создайте расширенный ACL на Spine-1, запрещающий BGP между Spine-1 и Leaf-2. Приложите к отчету подтверждающие выводы команд с Spine-1/Leaf-2.
8) Уберите созданный выше ACL, убедитесь, что BGP-сессия между Spine-1/Leaf-2 установилась.
9) Создайте ACL на Leaf, запрещающий IPv6 трафик от хоста 1 на хост 2 и примените его. Убедитесь в его работоспособности. Также убедитесь, что IPv4-связность сохранилась. Приложите подтверждающие выводы в отчет.
10) Уметь объяснить принципы организации ACL на FRR и в IP tables.
Оценка:
- Оценка за ДЗ – 70 баллов.
Комментарии к оценке
- За каждый не сделанный пункт ДЗ вычитается 5 баллов.
- За неумение объяснить полученные результаты вычитается 40 баллов.
Полезные ссылки
Репозиторий курса частью прикладных материалов