# Домашнее задание 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](images/33_1.png) Готовый [Vagrantfile](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.yml) [ansible_conf_frr.yml](ansible_conf_frr.yml) [frr.template](frr.template) ### Проверка Запускаем vagrant ```bash 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. ```bash 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# ``` проверим как изменились маршруты ```bash 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 ```bash 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 вновь становиться симметричным Все готово!