Олимпиадный тренинг

Задача . BGP (2024-2025, 9-10)


Задача

Темы:

Интернет состоит из отдельных крупных сетей, управляемых отдельными организациями. Между такими сетями распределяется пространство IP-адресов и устанавливается техническое и организационное взаимодействие. Несколько упрощая, можно сказать, что такие крупные сети называются автономными системами (AS). За каждой AS закрепляется IP-подсеть. Для обмена маршрутной информацией между маршрутизаторами AS используется внешний протокол динамической маршрутизации BGP (Border Gateway Protocol). BGP выбирает наилучший маршрут для передачи пакетов на основе ряда атрибутов и метрик.

BGP-роутер при маршрутизации пакета выбирает IP-адрес следующего по маршруту маршрутизатора, который в BGP называется «соседом» (neighbor), по набору атрибутов маршрутов. В задаче для упрощения будем считать, что реализуется следующий алгоритм.

  1. по адресу назначения в IP-пакете выбираются подходящие маршруты из таблицы маршрутизации по полю «сеть назначения».
  2. потом из них выбирается лучший, для чего последовательно проверяются атрибуты маршрутов. То есть сначала проверяется первый атрибут всех подходящих маршрутов, и если у возможных маршрутов он имеет равное значение, проверяется второй атрибут и т.д.

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

1. Локальное предпочтение (Local Preference)
Local Preference — это атрибут, который используется для выбора исходящего трафика из автономной системы. Маршрут с наибольшим значением Local Preference считается предпочтительным.

2. Наименьший Путь AS (AS Path)
BGP предпочитает маршруты с наименьшим количеством автономных систем в пути (AS Path). Чем короче путь, тем лучше.

3. Наименьший IGP Metric до Next Hop
Если есть несколько маршрутов с одинаковыми атрибутами, BGP выбирает маршрут с наименьшим значением метрики IGP до Next Hop (следующего прыжка).

4. Старейший маршрут (Oldest Route)
Если все предыдущие атрибуты равны, BGP предпочитает старейший маршрут, так как он считается более стабильным.

5. Наименьший IP-адрес соседа
В крайнем случае, если все предыдущие атрибуты равны, BGP выбирает маршрут, полученный от соседа с наименьшим IP-адресом (сравнение производится как сравнение 32-битных значений адресов).

Далее приведены схема сети и фрагменты таблиц маршрутов для каждой из AS (сделано это для простоты, в реальности эти данные есть в каждом граничном маршрутизаторе AS).

 

AS1:

Сеть назначения Номер следующей AS Local Preference Длина AS Path IGP Metric до Next Hop Дата появления маршрута Адрес соседа
10.5.0.0/16 AS2 100 2 20 2025-02-02 172.21.0.2
10.1.0.0/16 Локально 500 0 0 2025-02-01 -
10.3.0.0/16 AS3 200 1 10 2025-02-03 172.21.0.9
10.7.0.0/16 AS2 100 3 20 2025-02-03 172.21.0.2
10.8.0.0/16 AS3 100 2 20 2025-02-01 172.21.0.9
10.6.0.0/16 AS6 100 2 20 2025-02-01 172.21.0.5
10.6.0.0/16 AS3 100 2 20 2025-02-01 172.21.0.9
10.3.0.0/16 AS6 200 3 50 2025-02-23 172.21.0.5
10.4.0.0/16 AS3 200 2 5 2025-02-03 172.21.0.9

AS2:

Сеть назначения Номер следующей AS Local Preference Длина AS Path IGP Metric до Next Hop Дата появления маршрута Адрес соседа
10.2.0.0/16 Локально 500 0 0 2025-02-01 -
10.3.0.0/16 AS1 100 2 20 2025-02-03 172.21.0.1
10.6.0.0/16 AS1 100 2 20 2025-02-10 172.21.0.1
10.7.0.0/16 AS4 100 2 20 2025-02-02 172.21.0.14
10.8.0.0/16 AS4 100 2 20 2025-02-03 172.21.0.14
10.6.0.0/16 AS5 100 2 20 2025-02-03 172.21.0.18
10.3.0.0/16 AS4 100 2 20 2025-02-03 172.21.0.14
10.4.0.0/16 AS1 200 2 20 2025-02-03 172.21.0.1
10.4.0.0/16 AS4 100 1 20 2025-02-03 172.21.0.14
10.1.0.0/16 AS1 100 1 20 2025-02-03 172.21.0.1
10.1.0.0/16 AS4 200 3 20 2025-02-03 172.21.0.14

AS3:

Сеть назначения Номер следующей AS Local Preference Длина AS Path IGP Metric до Next Hop Дата появления маршрута Адрес соседа
10.5.0.0/16 AS4 100 2 20 2025-02-02 172.21.0.22
10.6.0.0/16 AS1 100 2 20 2025-02-01 172.21.0.10
10.6.0.0/16 AS4 200 4 10 2025-02-03 172.21.0.22
10.7.0.0/16 AS4 100 3 10 2025-02-04 172.21.0.22
10.3.0.0/16 Локально 500 0 0 2025-02-01 -
10.8.0.0/16 AS8 100 3 10 2025-02-04 172.21.0.26
10.4.0.0/16 AS4 200 1 10 2025-02-04 172.21.0.22
10.4.0.0/16 AS8 100 3 20 2025-02-04 172.21.0.26
10.1.0.0/16 AS8 100 3 20 2025-02-04 172.21.0.26
10.1.0.0/16 AS1 100 1 20 2025-02-04 172.21.0.10

AS4:

Сеть назначения Номер следующей AS Local Preference Длина AS Path IGP Metric до Next Hop Дата появления маршрута Адрес соседа
10.5.0.0/16 AS2 100 2 20 2025-02-02 172.21.0.13
10.6.0.0/16 AS2 100 3 5 2025-02-03 172.21.0.13
10.7.0.0/16 Локально 500 0 0 2025-02-01 -
10.6.0.0/16 AS7 100 3 10 2025-02-01 172.21.0.30
10.8.0.0/16 AS3 100 1 10 2025-02-01 172.21.0.21
10.6.0.0/16 AS3 100 3 5 2025-02-11 172.21.0.21
10.1.0.0/16 AS3 100 3 5 2025-02-01 172.21.0.21

AS5:

Сеть назначения Номер следующей AS Local Preference Длина AS Path IGP Metric до Next Hop Дата появления маршрута Адрес соседа
10.4.0.0/16 AS2 100 2 10 2025-02-02 172.21.0.17
10.5.0.0/16 Локально 500 0 0 2025-02-01 -
10.6.0.0/16 AS6 100 1 20 2025-02-03 172.21.0.34
10.8.0.0/16 AS7 100 3 20 2025-02-01 172.21.0.38
10.3.0.0/16 AS2 500 3 20 2025-02-01 172.21.0.17
10.2.0.0/16 AS2 100 3 20 2025-02-01 172.21.0.17
10.3.0.0/16 AS6 100 3 20 2025-02-01 172.21.0.34
10.4.0.0/16 AS7 100 2 20 2025-02-02 172.21.0.38
10.1.0.0/16 AS6 100 2 20 2025-02-02 172.21.0.34
10.1.0.0/16 AS2 100 2 20 2025-02-02 172.21.0.17

AS6:

Сеть назначения Номер следующей AS Local Preference Длина AS Path IGP Metric до Next Hop Дата появления маршрута Адрес соседа
10.5.0.0/16 AS1 100 3 20 2025-02-02 172.21.0.6
10.6.0.0/16 Локально 500 0 0 2025-02-01 -
10.4.0.0/16 AS5 100 3 51 2025-02-11 172.21.0.33
10.7.0.0/16 AS1 100 4 20 2025-02-03 172.21.0.6
10.8.0.0/16 AS1 100 3 20 2025-02-01 172.21.0.6
10.3.0.0/16 AS8 200 2 5 2025-03-08 172.21.0.45
10.4.0.0/16 AS1 100 3 52 2025-02-11 172.21.0.6
10.3.0.0/16 AS5 100 4 50 2025-02-11 172.21.0.33
10.4.0.0/16 AS8 100 3 50 2025-02-11 172.21.0.45

AS7:

Сеть назначения Номер следующей AS Local Preference Длина AS Path IGP Metric до Next Hop Дата появления маршрута Адрес соседа
10.5.0.0/16 AS4 100 3 20 2025-02-02 172.21.0.29
10.6.0.0/16 AS5 100 2 20 2025-02-03 172.21.0.37
10.7.0.0/16 Локально 500 0 0 2025-02-01 -
10.8.0.0/16 AS4 100 3 20 2025-02-01 172.21.0.29
10.4.0.0/16 AS4 100 1 20 2025-02-01 172.21.0.29
10.1.0.0/16 AS8 300 3 20 2025-02-01 172.21.0.42
10.1.0.0/16 AS4 200 3 20 2025-02-01 172.21.0.29
10.1.0.0/16 AS5 400 5 80 2025-02-01 172.21.0.37

AS8:

Сеть назначения Номер следующей AS Local Preference Длина AS Path IGP Metric до Next Hop Дата появления маршрута Адрес соседа
10.6.0.0/16 AS3 200 3 10 2025-02-01 172.21.0.25
10.7.0.0/16 AS3 200 3 10 2025-02-05 172.21.0.25
10.5.0.0/16 AS3 200 2 10 2025-02-03 172.21.0.25
10.4.0.0/16 AS7 200 2 10 2025-02-03 172.21.0.41
10.8.0.0/16 Локально 500 0 0 2025-02-01 -
10.2.0.0/16 AS7 200 2 10 2025-02-03 172.21.0.41
10.6.0.0/16 AS7 200 3 20 2025-02-01 172.21.0.41
10.3.0.0/16 AS3 200 1 10 2025-02-15 172.21.0.25
10.4.0.0/16 AS3 100 2 10 2025-02-03 172.21.0.25
10.6.0.0/16 AS6 50 1 20 2025-02-03 172.21.0.46

Определите сначала маршрут прохождения пакета из AS8 в AS6, а потом маршрут прохождения пакета в случае, если из-за аварии будет отключены связи между AS8 и AS3, а также между AS1 и AS6, а записи, соответствующие этим связям, будут исключены из таблиц.

В ответ запишите номера автономных систем через запятую, начиная с 8 и заканчивая 6, сначала для первого случая, а потом, через тире, для второго. Если маршрут построить нельзя (например, его нет или образуется цикл), вместо перечисления номеров автономных систем укажите NULL.

Пример ввода ответа: 8,10,12,6-8,10,1,2,6.


time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя