2026-03-22 21:27:13 +03:00
2026-03-22 21:20:49 +03:00
2026-03-22 21:17:23 +03:00
2026-03-22 21:27:13 +03:00
2026-03-22 21:16:13 +03:00

Домашнее задание 30

OSPF

Для выполнение задания используется vagrant box Ubuntu 22.04

В ДЗ указано, что нужно поднять OSPF между 3 VM, но я добавил сюда еще 2.

Создание Vagrantfile

Создадим 5 VM с характеристиками

  • CPU 1
  • RAM 512Mb

Создана сеть router2-net с адресацией 192.168.255.12/30

Будут добавлены 5 сетей с раздичной адресацией.

Текущая карта сети: 33_1

Готовый Vagrantfile

ansible.yml

В сценарий для Ansible добавлены следующие действия:

  1. На всех VM установлен frr
  2. В конфигурации frr будет включена поддержка ospf
  3. На все VM будет импортирован минимальный шаблон конфигурации frr.template
  4. После копирования шаблона требуется добавить в кофиг ip адреса и интерфейсы для каждой VM, мы это сделаем с помощью отдельного файла ansible_conf_frr.yml. На всех интерфейсам будем устанавливать ospf cost равный 20
  5. Включим ospf, и так как все создынные сети у нас попадают по маску 10.0.0.0/8 то в network мы укажем именно ее.

Готовый ansible.yml ansible_conf_frr.yml frr.template

Проверка

Запускаем vagrant

alex@ubuntu-pc:~/Документы/33$ vagrant up 
Bringing machine 'R01' up with 'virtualbox' provider...
Bringing machine 'R02' up with 'virtualbox' provider...
Bringing machine 'R03' up with 'virtualbox' provider...
Bringing machine 'Server01' up with 'virtualbox' provider...
Bringing machine 'Server02' up with 'virtualbox' provider...
==> R01: You assigned a static IP ending in ".1" or ":1" to this machine.
==> R01: This is very often used by the router and can cause the
==> R01: network to not work properly. If the network doesn't work
==> R01: properly, try changing this IP.
==> R01: You assigned a static IP ending in ".1" or ":1" to this machine.
==> R01: This is very often used by the router and can cause the
==> R01: network to not work properly. If the network doesn't work
==> R01: properly, try changing this IP.
==> R01: You assigned a static IP ending in ".1" or ":1" to this machine.
==> R01: This is very often used by the router and can cause the
==> R01: network to not work properly. If the network doesn't work
==> R01: properly, try changing this IP.
...


...
TASK [get int name] ************************************************************
changed: [R05]

TASK [add interface ip] ********************************************************
changed: [R05]

TASK [add ospf frr] ************************************************************
changed: [R05]

RUNNING HANDLER [restart frr] **************************************************
changed: [R05]

PLAY RECAP *********************************************************************
R05                   : ok=10   changed=8    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

После запуска всех машин, подключимся к VM R05 и посмотрим какие там присутствуют маршруты

Мы видим все маршруты которые прилетели через OSPF.

Изобразить ассиметричный роутинг

Подключимся к R01, с помощью консоли оболочки vtysh увелим cost ospf до 100 на интерфейсе который подключен к R02.

vagrant@R01:~$ sudo vtysh 

Hello, this is FRRouting (version 8.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

R01# conf t
R01(config)# 
R01(config)# int enp0s8
R01(config-if)# ip ospf cost 100
R01(config-if)# end
R01# wr
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Integrated configuration saved to /etc/frr/frr.conf
[OK]
R01#

проверим как изменились маршруты

R01(config)# do sh ip route ospf 
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

O   10.0.2.0/24 [110/100] is directly connected, enp0s3, weight 1, 00:10:02
O   10.10.1.0/24 [110/60] via 10.20.1.2, enp0s9, weight 1, 00:01:21
O   10.20.1.0/24 [110/20] is directly connected, enp0s9, weight 1, 00:10:02
O>* 10.30.1.0/24 [110/40] via 10.20.1.2, enp0s9, weight 1, 00:01:21
O   10.100.1.0/24 [110/20] is directly connected, enp0s10, weight 1, 00:10:02
O>* 10.200.1.0/24 [110/60] via 10.20.1.2, enp0s9, weight 1, 00:01:21

Мы видим, что маршрут до сети 10.200.1.0/24 идет через 10.20.1.2 (это R03)

Теперь у нас будет наблюдаться следующая картина, если мы будем пускать какой либо трафик (например ICPM) то пакеты будет идти по пути от R04 до R05 R04 -> R01 -> R03 -> R02 -> R05 а ответные пакеты будут идти минуя R03 R05 -> R02 -> R01 -> R04

Таки образом мы достигли ассиметричного роутинга

сделать один из линков "дорогим", но что бы при этом роутинг был симметричным.

Для выполнение этого задания, мы уже подключися к R02, и на интерфейся к R01 увеличим cost до 100

vagrant@R02:~$ sudo vtysh 

Hello, this is FRRouting (version 8.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

R02# conf t
R02(config)# int enp0s8
R02(config-if)# ip ospf cost 100
R02(config-if)# end
R02# wr
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Integrated configuration saved to /etc/frr/frr.conf
[OK]
R02# 

Теперь трафик между R04 и R05 вновь становиться симметричным

Все готово!

Description
OSPF
Readme 68 KiB