Интернет состоит из отдельных крупных сетей, управляемых отдельными организациями. Между такими сетями распределяется пространство IP-адресов и устанавливается техническое и организационное взаимодействие. Несколько упрощая, можно сказать, что такие крупные сети называются автономными системами (AS). За каждой AS закрепляется IP-подсеть. Для обмена маршрутной информацией между маршрутизаторами AS используется внешний протокол динамической маршрутизации BGP (Border Gateway Protocol). BGP выбирает наилучший маршрут для передачи пакетов на основе ряда атрибутов и метрик.
BGP-роутер при маршрутизации пакета выбирает IP-адрес следующего по маршруту маршрутизатора, который в BGP называется «соседом» (neighbor), по набору атрибутов маршрутов. В задаче для упрощения будем считать, что реализуется следующий алгоритм.
- по адресу назначения в IP-пакете выбираются подходящие маршруты из таблицы маршрутизации по полю «сеть назначения».
- потом из них выбирается лучший, для чего последовательно проверяются атрибуты маршрутов. То есть сначала проверяется первый атрибут всех подходящих маршрутов, и если у возможных маршрутов он имеет равное значение, проверяется второй атрибут и т.д.
В задаче используются следующие атрибуты в указанном порядке:
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.