> For the complete documentation index, see [llms.txt](https://adavyshin.gitbook.io/networks/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adavyshin.gitbook.io/networks/open-short-path-first.md).

# Open Short Path First

## Введение

Файл с лабораторной работой доступен по ссылке:

<https://disk.yandex.ru/d/MgLAhxcGLFyr0Q><br>

В ходе данной работы вы настроите следующую топологию:

<figure><img src="/files/T3SuCLakJkgs0Zr4VUqI" alt=""><figcaption></figcaption></figure>

## Настройка

### Настройка магистральной области

В магистральной (backbone) области у нас 4 маршрутизатора <kbd>R1</kbd>, <kbd>R2</kbd>, <kbd>R3</kbd> и <kbd>R4</kbd>. Напоминаю, что мульти-областном сценарии обязательно в основании "звезды" топологии должна быть область с порядковым номером #0.

Настройку OSPF в рамках <kbd>R1</kbd> и <kbd>R2</kbd> мы выполним через `network` команды, а на маршрутизаторах <kbd>R3</kbd> и <kbd>R4</kbd> - через конфигурацию на интерфейсах.

Также обратите внимание, что эти четыре маршрутизатора находятся в одном широковещательном домене, так что реализуется схема multi-access, где у нас избирается в выборах Designeted Router и Backup Designated Router, ответственные за синхронизацию внутри этого широковещательного домена. Принцип выбора DR-маршрутизатора основывается на приоритетах, но как правило в заводских настройках у каждого маршрутизатора приоритет равен 1.&#x20;

В нашей топологии давайте сделаем маршрутизатор <kbd>R3</kbd> с ролью `DR`, а <kbd>R4</kbd> - `BDR`, где на маршрутизаторе <kbd>R3</kbd> мы вручную повысим приоритет до 2, а <kbd>R4</kbd> сделаем `BDR`, на основе второго фактора - наибольшем RID.

Команда `log-adjacency-changes detail` для детального логирования установления соседства с ближайшими маршрутизаторами.

🔧 Настраиваем маршрутизатор <kbd>R3</kbd>:

```
configure terminal
!
router ospf 1
  router-id 3.3.3.3
  log-adjacency-changes detail
!
interface GigabitEthernet0/0
  ip ospf priority 2
  ip ospf 1 area 0

```

🔧 Настраиваем маршрутизатор <kbd>R4</kbd>:

```
configure terminal
!
router ospf 1
  router-id 4.4.4.4
    log-adjacency-changes detail
!
interface GigabitEthernet0/0
  ip ospf 1 area 0
```

🔧 Настраиваем маршрутизатор <kbd>R1</kbd>:

```
configure terminal
!
router ospf 1
  router-id 1.1.1.1
    log-adjacency-changes detail
    network 10.100.0.0 0.0.0.255 area 0
```

🔧 Настраиваем маршрутизатор <kbd>R2</kbd>:

```
configure terminal
!
router ospf 1
  router-id 2.2.2.2
    log-adjacency-changes detail
    network 10.100.0.0 0.0.0.255 area 0
```

Проверить установленное соседство можно с помощью команды `show ip ospf neighbor`, используя данную команду на R1 или R2 мы можем увидеть, что между эти роутерами установлено только `2WAY` соседство.

### Настройка области 34567

🔧 Настраиваем OSPF-область 34567 маршрутизаторe <kbd>R3</kbd>:

```
configute terminal
!
interface GigabitEthernet0/1
  ip ospf 1 area 0
!
interface GigabitEthernet0/2
  ip ospf 1 area 34567
!
interface GigabitEthernet0/3
  ip ospf 1 area 34567
```

🔧 Настраиваем OSPF-область 34567 маршрутизаторe <kbd>R4</kbd>:

```
configute terminal
!
interface GigabitEthernet0/1
  ip ospf 1 area 0
!
interface GigabitEthernet0/2
  ip ospf 1 area 34567
!
interface GigabitEthernet0/3
  ip ospf 1 area 34567
```

🔧 Настраиваем OSPF на маршрутизаторе <kbd>R5</kbd>:

```
configure terminal
!
router ospf 1
  router-id 5.5.5.5
    log-adjacency-changes detail
!
interface GigabitEthernet0/0
  ip ospf 1 area 34567
!
interface GigabitEthernet0/2
  ip ospf 1 area 34567
!
interface GigabitEthernet0/3
  ip ospf 1 area 34567
```

🔧 Настраиваем OSPF на маршрутизаторе <kbd>R6</kbd>:

```
configure terminal
!
router ospf 1
  router-id 6.6.6.6
    log-adjacency-changes detail
!
interface GigabitEthernet0/0
  ip ospf 1 area 34567
!
interface GigabitEthernet0/2
  ip ospf 1 area 34567
!
interface GigabitEthernet0/3
  ip ospf 1 area 34567
```

🔧 Настраиваем OSPF на маршрутизаторе <kbd>R7</kbd>:

```
configure terminal
!
router ospf 1
  router-id 7.7.7.7
    log-adjacency-changes detail
!
interface GigabitEthernet0/0
  ip ospf 1 area 34567
!
interface GigabitEthernet0/1
  ip ospf 1 area 34567
```

В нашей топологии есть стык маршрутизатора <kbd>R7</kbd> со внешними миром ( роутер <kbd>External1</kbd> ). Первым делом предлагаю настроить маршрут в сторону провайдера. А потом мы в OSPF-топологии должны отдать этот маршрут по умолчанию с помощью команды `default-information originate`.&#x20;

🔧 Настраиваем OSPF на маршрутизаторе <kbd>R7</kbd>:

```
ip route 0.0.0.0 0.0.0.0 198.51.100.1 name Default-Route
!
router ospf 1
  default-information originate
```

Если мы проверим таблицу маршрутизации на <kbd>R3</kbd> и <kbd>R2</kbd>, то мы видим два равнозначных маршрута по умолчанию. Давайте сместим приоритетность по маршруту <kbd>R3</kbd>-<kbd>R5</kbd>-<kbd>R7</kbd>, путём увеличения стоимость интерфейса GigabitEthernet0/2-3 на маршрутизаторе <kbd>R4</kbd>.

🔧 Настраиваем стоимость интерфейса на маршрутизаторе <kbd>R4</kbd>:

```
configure terminal
!
interface range GigabitEthernet0/2-3
  ip ospf cost 10
```

После манипуляции со стоимостью интерфейса проверяем таблицу маршрутизации на R3 и R4 и видим, что остался один маршрут по умолчанию.

### Настройка области 1123

🔧 Настраиваем OSPF-область на маршрутизаторе <kbd>R1</kbd>:

```
configure terminal
!
router ospf 1
    network 10.111.0.0 0.0.0.255 area 1123
```

🔧 Настраиваем базовый функционал OSPF  на маршрутизаторе <kbd>R11</kbd>:

```
configure terminal
!
router ospf 1
  router-id 11.11.11.11
    log-adjacency-changes detail
    network 10.111.0.0 0.0.0.255 area 1123
    network 10.11.0.0 0.0.255.255 area 1123
```

Но обратите внимание, что соседство между <kbd>R1</kbd> и <kbd>R11</kbd> не становилось в состояние `FULL`. Это связано с тем, что на интерфейсе `GigabitEthernet0/1` маршрутизатора <kbd>R1</kbd> значение MTU не стандартное.

&#x20;🔧 Включаем ip ospf mtu-ignore на маршрутизаторе <kbd>R11</kbd>:

```
interface GigabitEthernet0/1
  ip ospf mtu-ignore
```

🔧 Включаем ip ospf mtu-ignore на маршрутизаторе <kbd>R1</kbd>:

```
interface GigabitEthernet0/1
  ip ospf mtu-ignore
```

🔧 Настраиваем базовый функционал OSPF на маршрутизаторе <kbd>R12</kbd>:

```
configure terminal
!
router ospf 1
  router-id 12.12.12.12
    log-adjacency-changes detail
    network 10.11.12.0 0.0.0.255 area 1123
    network 10.12.13.0 0.0.0.255 area 1123
```

🔧 Настраиваем OSPF-область на маршрутизаторе <kbd>R13</kbd>:

```
configure terminal
!
router ospf 1
  router-id 13.13.13.13
    log-adjacency-changes detail
    network 10.11.13.0 0.0.0.255 area 1123
    network 10.12.13.0 0.0.0.255 area 1123
```

### Настройка области 21

Будем считать, что маршрутизатор R21 со слабыми характеристиками, и его грузить большим количеством маршрутов не будем. В качестве оптимизации будем использовать stub-область.

Настройка тупиковых областей заключается в команде `area <> stub` на всех маршрутизаторах в этой области и ABR-маршрутизаторах.

🔧 Настраиваем маршрутизатор <kbd>R2</kbd>:

```
configure terminal
!
router ospf 1
    network 10.212.0.0 0.0.0.255 area 21
    area 21 stub
```

🔧 Настраиваем маршрутизатор <kbd>R21</kbd>:

```
configure terminal
!
router ospf 1
  router-id 21.21.21.21
  log-adjacency-changes detail
  network 10.212.0.0 0.0.0.255 area 21
  area 21 stub
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://adavyshin.gitbook.io/networks/open-short-path-first.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
