Топология сети

Рисунок 1. Общая топология сети

Пойдем по-порядку:

Стартовая настройка оборудования в соответствии с приведенной топологией:

  • Определите необходимое количество оборудования для лабораторной работы
  • Определите сетевые интерфейсы для организации подключений между маршрутизаторами, в случае необходимости, используйте VLAN
  • Настройте IP-адресацию между устройствами и удостоверьтесь, что соседи пингуются между собой

Здесь можно пойти топорным способом и наштамповать в лабе 11 маршрутизаторов, но с целью экономии ресурсов на сервере я возьму 3 роутера и на них подниму дополнительные routing-instance, которые и сыграют роль роутеров, но только виртуальных, которые по функционалу в данном случае не будут отличаться от реальных.

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

Рисунок 2. Физическая топология сети

Логически это можно представить так:

Рисунок 3. Топология сети на виртуальных роутерах

Внутри устройств VR-Device создаются virtual-instance с именами R1, R2, …, R11. Соединения между ними осуществляются посредством VLAN через общие физические линки.

Допустим, между VR-Device-2 и VR-Device-3 у нас линк организован через интерфейсы ge-0/0/4. Получается, что на рисунке 3 между вторым и третьим VR-Device есть 3 линка: R6 — R10, R2 — R3 и R7 — R8, но фактически они идут через один физический линк.
Чтобы разделить трафик между собой организуем связь на интерфейсе ge-0/0/4 через VLAN. Номером VLAN будет являться комбинация номеров роутеров XY. Где X — меньший номер, Y — больший номер. Аналогично с IP-адресацией.

Рассмотрим пример:
Между R2 и R3 будет организована связь во VLAN 23 (X = 2, Y = 3), IP-адресация 172.20.23.0/30. Старший IP-адрес будет назначен интерфейсу на VR-Device-2. Разницы принципиальной нет, просто мне так удобнее.

В случае, когда оба роутера фактически будут находиться на одном VR-Device, первый (младший) адрес будет назначаться устройству, ближайшему к нулевой OSPF-области.

Также на рисунке 2 есть коммутатор, в который от каждого VR-Device идет по 2 физических линка. Это сделано для того, чтобы соединить между собой виртуальные маршрутизаторы, находящиеся на одном VR-Device. Поскольку eve-ng не умеет делать петли, пришлось петлю создать программно на коммутаторе. То есть фактически, мы на каждом VR-Device взяли и соединили между собой интерфейсы ge-0/0/4 и ge-0/0/5.

Аналогично примеру выше для R2 и R3 рассмотрим пример для R1 и R4: X = 1, Y = 14, следовательно VLAN 14 и IP-адресация 172.20.14.0/30. Подключены они между собой через порт ge-0/0/5 на R1 и ge-0/0/6 на R4 (можно и наоборот, опять же, разницы никакой). И все это будет бегать в 14 VLAN.

VLAN и IP-адреса для всех остальных интерфейсов назначаются по аналогии, разве что связность с R10 и R11 будет несколько иная:

R6 — R10, VLAN 106, IP 172.20.106.0/30
R10 — R11, VLAN 1011, IP 172.20.11.0/30

Сделано это в виду того, что один октет IP-адреса ограничен числом от 0 до 255, а числа 610 (комбинация R6 и R10) и 1011/1110 (комбинация R10 и R11) несколько выходят за рамки октета.

Схема с подписанными интерфейсами будет выглядеть так:

Теперь дело за настройкой IP-адресов и VLAN’ов. Подробно на этом останавливаться не буду. Просто прикреплю конфиги. В случае, если надо разъяснить более подробно, напишите в комментариях, сделаю отдельный пост на эту тему.

VR-Device-1
set system host-name VR-Device-1
set interfaces ge-0/0/3 vlan-tagging
set interfaces ge-0/0/3 unit 12 vlan-id 12
set interfaces ge-0/0/3 unit 12 family inet address 172.20.12.1/30
set interfaces ge-0/0/3 unit 15 vlan-id 15
set interfaces ge-0/0/3 unit 15 family inet address 172.20.15.1/30
set interfaces ge-0/0/3 unit 24 vlan-id 24
set interfaces ge-0/0/3 unit 24 family inet address 172.20.24.1/30
set interfaces ge-0/0/3 unit 89 vlan-id 89
set interfaces ge-0/0/3 unit 89 family inet address 172.20.89.1/30
set interfaces ge-0/0/3 unit 1011 vlan-id 1011
set interfaces ge-0/0/3 unit 1011 family inet address 172.20.11.1/30
set interfaces ge-0/0/5 vlan-tagging
set interfaces ge-0/0/5 unit 14 vlan-id 14
set interfaces ge-0/0/5 unit 14 family inet address 172.20.14.1/30
set interfaces ge-0/0/5 unit 19 vlan-id 19
set interfaces ge-0/0/5 unit 19 family inet address 172.20.19.1/30
set interfaces ge-0/0/6 vlan-tagging
set interfaces ge-0/0/6 unit 14 vlan-id 14
set interfaces ge-0/0/6 unit 14 family inet address 172.20.14.2/30
set interfaces ge-0/0/6 unit 19 vlan-id 19
set interfaces ge-0/0/6 unit 19 family inet address 172.20.19.2/30
set interfaces lo0 unit 1 family inet address 192.168.100.1/32
set interfaces lo0 unit 4 family inet address 192.168.100.4/32
set interfaces lo0 unit 9 family inet address 192.168.100.9/32
set interfaces lo0 unit 11 family inet address 192.168.100.11/32
set routing-instances R1 instance-type virtual-router
set routing-instances R1 interface ge-0/0/3.12
set routing-instances R1 interface ge-0/0/3.15
set routing-instances R1 interface ge-0/0/5.14
set routing-instances R1 interface ge-0/0/5.19
set routing-instances R1 interface lo0.1
set routing-instances R1 routing-options router-id 192.168.100.1
set routing-instances R11 instance-type virtual-router
set routing-instances R11 interface ge-0/0/3.1011
set routing-instances R11 interface lo0.11
set routing-instances R11 routing-options router-id 192.168.100.11
set routing-instances R4 instance-type virtual-router
set routing-instances R4 interface ge-0/0/3.24
set routing-instances R4 interface ge-0/0/6.14
set routing-instances R4 interface lo0.4
set routing-instances R4 routing-options router-id 192.168.100.4
set routing-instances R9 instance-type virtual-router
set routing-instances R9 interface ge-0/0/3.89
set routing-instances R9 interface ge-0/0/6.19
set routing-instances R9 interface lo0.9
set routing-instances R9 routing-options router-id 192.168.100.9
VR-Device-2
set system host-name VR-Device-2
set interfaces ge-0/0/3 vlan-tagging
set interfaces ge-0/0/3 unit 12 vlan-id 12
set interfaces ge-0/0/3 unit 12 family inet address 172.20.12.2/30
set interfaces ge-0/0/3 unit 15 vlan-id 15
set interfaces ge-0/0/3 unit 15 family inet address 172.20.15.2/30
set interfaces ge-0/0/3 unit 24 vlan-id 24
set interfaces ge-0/0/3 unit 24 family inet address 172.20.24.2/30
set interfaces ge-0/0/3 unit 89 vlan-id 89
set interfaces ge-0/0/3 unit 89 family inet address 172.20.89.2/30
set interfaces ge-0/0/3 unit 1011 vlan-id 1011
set interfaces ge-0/0/3 unit 1011 family inet address 172.20.11.2/30
set interfaces ge-0/0/4 vlan-tagging
set interfaces ge-0/0/4 unit 23 vlan-id 23
set interfaces ge-0/0/4 unit 23 family inet address 172.20.23.2/30
set interfaces ge-0/0/4 unit 78 vlan-id 78
set interfaces ge-0/0/4 unit 78 family inet address 172.20.78.2/30
set interfaces ge-0/0/4 unit 106 vlan-id 106
set interfaces ge-0/0/4 unit 106 family inet address 172.20.106.2/30
set interfaces ge-0/0/5 vlan-tagging
set interfaces ge-0/0/5 unit 25 vlan-id 25
set interfaces ge-0/0/5 unit 25 family inet address 172.20.25.1/30
set interfaces ge-0/0/6 vlan-tagging
set interfaces ge-0/0/6 unit 25 vlan-id 25
set interfaces ge-0/0/6 unit 25 family inet address 172.20.25.2/30
set interfaces lo0 unit 2 family inet address 192.168.100.2/32
set interfaces lo0 unit 5 family inet address 192.168.100.5/32
set interfaces lo0 unit 8 family inet address 192.168.100.8/32
set interfaces lo0 unit 10 family inet address 192.168.100.10/32
set routing-instances R10 instance-type virtual-router
set routing-instances R10 interface ge-0/0/3.1011
set routing-instances R10 interface ge-0/0/4.106
set routing-instances R10 interface lo0.10
set routing-instances R10 routing-options router-id 192.168.100.10
set routing-instances R2 instance-type virtual-router
set routing-instances R2 interface ge-0/0/3.12
set routing-instances R2 interface ge-0/0/3.24
set routing-instances R2 interface ge-0/0/4.23
set routing-instances R2 interface ge-0/0/5.25
set routing-instances R2 interface lo0.2
set routing-instances R2 routing-options router-id 192.168.100.2
set routing-instances R5 instance-type virtual-router
set routing-instances R5 interface ge-0/0/3.15
set routing-instances R5 interface ge-0/0/6.25
set routing-instances R5 interface lo0.5
set routing-instances R5 routing-options router-id 192.168.100.5
set routing-instances R8 instance-type virtual-router
set routing-instances R8 interface ge-0/0/3.89
set routing-instances R8 interface ge-0/0/4.78
set routing-instances R8 interface lo0.8
set routing-instances R8 routing-options router-id 192.168.100.8
VR-Device-3
set system host-name VR-Device-3
set interfaces ge-0/0/4 vlan-tagging
set interfaces ge-0/0/4 unit 23 vlan-id 23
set interfaces ge-0/0/4 unit 23 family inet address 172.20.23.1/30
set interfaces ge-0/0/4 unit 78 vlan-id 78
set interfaces ge-0/0/4 unit 78 family inet address 172.20.78.1/30
set interfaces ge-0/0/4 unit 106 vlan-id 106
set interfaces ge-0/0/4 unit 106 family inet address 172.20.106.1/30
set interfaces ge-0/0/5 vlan-tagging
set interfaces ge-0/0/5 unit 36 vlan-id 36
set interfaces ge-0/0/5 unit 36 family inet address 172.20.36.1/30
set interfaces ge-0/0/5 unit 37 vlan-id 37
set interfaces ge-0/0/5 unit 37 family inet address 172.20.37.1/30
set interfaces ge-0/0/6 vlan-tagging
set interfaces ge-0/0/6 unit 36 vlan-id 36
set interfaces ge-0/0/6 unit 36 family inet address 172.20.36.2/30
set interfaces ge-0/0/6 unit 37 vlan-id 37
set interfaces ge-0/0/6 unit 37 family inet address 172.20.37.2/30
set interfaces lo0 unit 3 family inet address 192.168.100.3/32
set interfaces lo0 unit 6 family inet address 192.168.100.6/32
set interfaces lo0 unit 7 family inet address 192.168.100.7/32
set routing-instances R3 instance-type virtual-router
set routing-instances R3 interface ge-0/0/4.23
set routing-instances R3 interface ge-0/0/5.36
set routing-instances R3 interface ge-0/0/5.37
set routing-instances R3 interface lo0.3
set routing-instances R3 routing-options router-id 192.168.100.3
set routing-instances R6 instance-type virtual-router
set routing-instances R6 interface ge-0/0/4.106
set routing-instances R6 interface ge-0/0/6.36
set routing-instances R6 interface lo0.6
set routing-instances R6 routing-options router-id 192.168.100.6
set routing-instances R7 instance-type virtual-router
set routing-instances R7 interface ge-0/0/4.78
set routing-instances R7 interface ge-0/0/6.37
set routing-instances R7 interface lo0.7
set routing-instances R7 routing-options router-id 192.168.100.7
Switch
vlan 1-4094
!
interface Ethernet0/0
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet0/1
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet0/2
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet0/3
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet1/0
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet1/1
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet1/2
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet1/3
 switchport trunk encapsulation dot1q
 switchport mode trunk

Проверим настройки VR-Device-1

root@VR-Device-1> show interfaces terse | match inet
ge-0/0/3.12             up    up   inet     172.20.12.1/30  
ge-0/0/3.15             up    up   inet     172.20.15.1/30  
ge-0/0/3.24             up    up   inet     172.20.24.1/30  
ge-0/0/3.89             up    up   inet     172.20.89.1/30  
ge-0/0/3.1011           up    up   inet     172.20.11.1/30  
ge-0/0/5.14             up    up   inet     172.20.14.1/30  
ge-0/0/5.19             up    up   inet     172.20.19.1/30  
ge-0/0/6.14             up    up   inet     172.20.14.2/30  
ge-0/0/6.19             up    up   inet     172.20.19.2/30  
lo0.1                   up    up   inet     192.168.100.1       --> 0/0
lo0.4                   up    up   inet     192.168.100.4       --> 0/0
lo0.9                   up    up   inet     192.168.100.9       --> 0/0
lo0.11                  up    up   inet     192.168.100.11      --> 0/0
root@VR-Device-1> show route
R1.inet.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.12.0/30     *[Direct/0] 00:42:46
                    > via ge-0/0/3.12
172.20.12.1/32     *[Local/0] 00:42:47
                      Local via ge-0/0/3.12
172.20.14.0/30     *[Direct/0] 00:42:45
                    > via ge-0/0/5.14
172.20.14.1/32     *[Local/0] 00:42:47
                      Local via ge-0/0/5.14
172.20.15.0/30     *[Direct/0] 00:42:46
                    > via ge-0/0/3.15
172.20.15.1/32     *[Local/0] 00:42:47
                      Local via ge-0/0/3.15
172.20.19.0/30     *[Direct/0] 00:42:45
                    > via ge-0/0/5.19
172.20.19.1/32     *[Local/0] 00:42:47
                      Local via ge-0/0/5.19
192.168.100.1/32   *[Direct/0] 00:43:18
                    > via lo0.1
                                        
R11.inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.11.0/30     *[Direct/0] 00:42:46
                    > via ge-0/0/3.1011
172.20.11.1/32     *[Local/0] 00:42:47
                      Local via ge-0/0/3.1011
192.168.100.11/32  *[Direct/0] 00:43:18
                    > via lo0.11

R4.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.14.0/30     *[Direct/0] 00:42:45
                    > via ge-0/0/6.14
172.20.14.2/32     *[Local/0] 00:42:47
                      Local via ge-0/0/6.14
172.20.24.0/30     *[Direct/0] 00:42:46
                    > via ge-0/0/3.24
172.20.24.1/32     *[Local/0] 00:42:47
                      Local via ge-0/0/3.24
192.168.100.4/32   *[Direct/0] 00:43:18
                    > via lo0.4         

R9.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.19.0/30     *[Direct/0] 00:42:45
                    > via ge-0/0/6.19
172.20.19.2/32     *[Local/0] 00:42:47
                      Local via ge-0/0/6.19
172.20.89.0/30     *[Direct/0] 00:42:46
                    > via ge-0/0/3.89
172.20.89.1/32     *[Local/0] 00:42:47
                      Local via ge-0/0/3.89
192.168.100.9/32   *[Direct/0] 00:43:18
                    > via lo0.9

VR-Device-2:

root@VR-Device-2> show interfaces terse | match inet
ge-0/0/3.12             up    up   inet     172.20.12.2/30  
ge-0/0/3.15             up    up   inet     172.20.15.2/30  
ge-0/0/3.24             up    up   inet     172.20.24.2/30  
ge-0/0/3.89             up    up   inet     172.20.89.2/30  
ge-0/0/3.1011           up    up   inet     172.20.11.2/30  
ge-0/0/4.23             up    up   inet     172.20.23.2/30  
ge-0/0/4.78             up    up   inet     172.20.78.2/30  
ge-0/0/4.106            up    up   inet     172.20.106.2/30 
ge-0/0/5.25             up    up   inet     172.20.25.1/30  
ge-0/0/6.25             up    up   inet     172.20.25.2/30  
lo0.2                   up    up   inet     192.168.100.2       --> 0/0
lo0.5                   up    up   inet     192.168.100.5       --> 0/0
lo0.8                   up    up   inet     192.168.100.8       --> 0/0
lo0.10                  up    up   inet     192.168.100.10      --> 0/0
root@VR-Device-2> show route
R10.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.11.0/30     *[Direct/0] 00:46:20
                    > via ge-0/0/3.1011
172.20.11.2/32     *[Local/0] 00:46:21
                      Local via ge-0/0/3.1011
172.20.106.0/30    *[Direct/0] 00:46:19
                    > via ge-0/0/4.106
172.20.106.2/32    *[Local/0] 00:46:21
                      Local via ge-0/0/4.106
192.168.100.10/32  *[Direct/0] 00:46:54
                    > via lo0.10

R2.inet.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.12.0/30     *[Direct/0] 00:46:20
                    > via ge-0/0/3.12
172.20.12.2/32     *[Local/0] 00:46:21
                      Local via ge-0/0/3.12
172.20.23.0/30     *[Direct/0] 00:46:19
                    > via ge-0/0/4.23   
172.20.23.2/32     *[Local/0] 00:46:21
                      Local via ge-0/0/4.23
172.20.24.0/30     *[Direct/0] 00:46:20
                    > via ge-0/0/3.24
172.20.24.2/32     *[Local/0] 00:46:21
                      Local via ge-0/0/3.24
172.20.25.0/30     *[Direct/0] 00:46:19
                    > via ge-0/0/5.25
172.20.25.1/32     *[Local/0] 00:46:21
                      Local via ge-0/0/5.25
192.168.100.2/32   *[Direct/0] 00:46:54
                    > via lo0.2

R5.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.15.0/30     *[Direct/0] 00:46:20
                    > via ge-0/0/3.15
172.20.15.2/32     *[Local/0] 00:46:21
                      Local via ge-0/0/3.15
172.20.25.0/30     *[Direct/0] 00:46:19
                    > via ge-0/0/6.25
172.20.25.2/32     *[Local/0] 00:46:21  
                      Local via ge-0/0/6.25
192.168.100.5/32   *[Direct/0] 00:46:54
                    > via lo0.5

R8.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.78.0/30     *[Direct/0] 00:46:19
                    > via ge-0/0/4.78
172.20.78.2/32     *[Local/0] 00:46:21
                      Local via ge-0/0/4.78
172.20.89.0/30     *[Direct/0] 00:46:20
                    > via ge-0/0/3.89
172.20.89.2/32     *[Local/0] 00:46:21
                      Local via ge-0/0/3.89
192.168.100.8/32   *[Direct/0] 00:46:54
                    > via lo0.8

VR-Device-3:

root@VR-Device-3> show interfaces terse | match inet
ge-0/0/4.23             up    up   inet     172.20.23.1/30  
ge-0/0/4.78             up    up   inet     172.20.78.1/30  
ge-0/0/4.106            up    up   inet     172.20.106.1/30 
ge-0/0/5.36             up    up   inet     172.20.36.1/30  
ge-0/0/5.37             up    up   inet     172.20.37.1/30  
ge-0/0/6.36             up    up   inet     172.20.36.2/30  
ge-0/0/6.37             up    up   inet     172.20.37.2/30  
lo0.3                   up    up   inet     192.168.100.3       --> 0/0
lo0.6                   up    up   inet     192.168.100.6       --> 0/0
lo0.7                   up    up   inet     192.168.100.7       --> 0/0
root@VR-Device-3> show route
R3.inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.23.0/30     *[Direct/0] 00:47:44
                    > via ge-0/0/4.23
172.20.23.1/32     *[Local/0] 00:47:45
                      Local via ge-0/0/4.23
172.20.36.0/30     *[Direct/0] 00:47:44
                    > via ge-0/0/5.36
172.20.36.1/32     *[Local/0] 00:47:45
                      Local via ge-0/0/5.36
172.20.37.0/30     *[Direct/0] 00:47:44
                    > via ge-0/0/5.37
172.20.37.1/32     *[Local/0] 00:47:45
                      Local via ge-0/0/5.37
192.168.100.3/32   *[Direct/0] 00:48:21
                    > via lo0.3

R6.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.36.0/30     *[Direct/0] 00:47:43
                    > via ge-0/0/6.36   
172.20.36.2/32     *[Local/0] 00:47:45
                      Local via ge-0/0/6.36
172.20.106.0/30    *[Direct/0] 00:47:44
                    > via ge-0/0/4.106
172.20.106.1/32    *[Local/0] 00:47:45
                      Local via ge-0/0/4.106
192.168.100.6/32   *[Direct/0] 00:48:21
                    > via lo0.6

R7.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.37.0/30     *[Direct/0] 00:47:43
                    > via ge-0/0/6.37
172.20.37.2/32     *[Local/0] 00:47:45
                      Local via ge-0/0/6.37
172.20.78.0/30     *[Direct/0] 00:47:44
                    > via ge-0/0/4.78
172.20.78.1/32     *[Local/0] 00:47:45
                      Local via ge-0/0/4.78
192.168.100.7/32   *[Direct/0] 00:48:21
                    > via lo0.7

В приведенной выше информации видно, что на каждом из VR-Device есть несколько таблиц маршрутизации, каждая соответствует своему виртуальному роутеру. Например таблица R6.inet.0 содержит маршруты, находящиеся на роутере R6. Аналогично с другими устройствами.

Связность между всеми устройствами проверять не будем, сделаем рандомные проверки на парах R1 — R5, R7 — R8 и R2 — R3:

R1 — R5:

root@VR-Device-1> ping 172.20.15.2 
PING 172.20.15.2 (172.20.15.2): 56 data bytes
ping: sendto: Can't assign requested address
ping: sendto: Can't assign requested address
^C
--- 172.20.15.2 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss

Нет связности… Причина в том, что сеть 172.20.15.0/30 находится в routing-instance R1, а по дефолту icmp-запросы отправляются из дефолтного инстанса. Повторим тест, указав нужный routing-instance:

root@VR-Device-1> ping 172.20.15.2 routing-instance R1 
PING 172.20.15.2 (172.20.15.2): 56 data bytes
64 bytes from 172.20.15.2: icmp_seq=0 ttl=64 time=56.700 ms
64 bytes from 172.20.15.2: icmp_seq=1 ttl=64 time=2.595 ms
64 bytes from 172.20.15.2: icmp_seq=2 ttl=64 time=2.714 ms
64 bytes from 172.20.15.2: icmp_seq=3 ttl=64 time=2.262 ms
^C
--- 172.20.15.2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.262/16.068/56.700/23.460 ms

R7 — R8:

root@VR-Device-2> ping 172.20.78.1 routing-instance R8   
PING 172.20.78.1 (172.20.78.1): 56 data bytes
64 bytes from 172.20.78.1: icmp_seq=0 ttl=64 time=17.258 ms
64 bytes from 172.20.78.1: icmp_seq=1 ttl=64 time=2.734 ms
64 bytes from 172.20.78.1: icmp_seq=2 ttl=64 time=1.508 ms
^C
--- 172.20.78.1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 1.508/7.167/17.258/7.153 ms

R2 — R3:


root@VR-Device-3> ping 172.20.23.2 routing-instance R3    
PING 172.20.23.2 (172.20.23.2): 56 data bytes
64 bytes from 172.20.23.2: icmp_seq=0 ttl=64 time=1.660 ms
64 bytes from 172.20.23.2: icmp_seq=1 ttl=64 time=1.638 ms
64 bytes from 172.20.23.2: icmp_seq=2 ttl=64 time=1.861 ms
^C
--- 172.20.23.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 1.638/1.720/1.861/0.100 ms

Отлично, все работает. Можно переходить к непосредственной настройке OSPF:

  • Настройте магистральную (нулевую) OSPF-область, проанонсируйте loopback-интерфейсы в эту область
  • Установите hello и dead-интервалы в значения 3 и 12 секунд соответственно
  • Убедитесь, что OSPF-соседства установлены в состояние full и в таблице маршрутизации присутствуют анонсируемые сети
  • Настройте оставшиеся ненулевые OSPF-области, таймеры настройте в значения 5 и 20
  • Проверьте корректность работы оборудования после настройки

Начнем с общего синтаксиса. На Juniper настройка OSPF производится в контексте protocols ospf, чтобы войти в него, нужно выполнить команду:

root@router# edit protocols ospf 

после чего консоль покажет контекст, в котором мы находимся:

[edit protocols ospf]
root@router#

для того, чтобы объявить интерфейс в OSPF, нужно выполнить следующую команду:

set area <AREA_ID> interface <INTERFACE_NAME> 

где <AREA_ID> — номер OSPF области,
<INTERFACE_NAME> — имя интерфейса, который мы хотим добавить в OSPF

Если необходимо настроить OSPF-таймеры, делается это следующими командами:

set area <AREA_ID> interface <INTERFACE_NAME>  hello-interval <HELLO_INTERVAL>
set area <AREA_ID> interface <INTERFACE_NAME>  dead-interval <DEAD_INTERVAL>

где <HELLO_INTERVAL> — интервал отправки роутером hello-пакетов,
<DEAD_INTERVAL> — интервал, после истечения которого OSPF-соседство разваливается, если в течении <DEAD_INTERVAL> секунд не получено ни одного hello-пакета. Как правило, <DEAD_INTERVAL> равен четырем <HELLO_INTERVAL>

Теперь можно перейти непосредственно к настройке нулевой области:

VR-Device-1:

Здесь у нас в нулевой области находится только R1, зайдем в контекст настройки OSPF, но не в дефолтном контексте, а в контексте routing-instance R1, поскольку OSPF у нас будет настраиваться на виртуальном маршрутизаторе. Входим в контекст OSPF виртуального роутера R1:

root@VR-Device-1# edit routing-instances R1 protocols ospf 

[edit routing-instances R1 protocols ospf]
root@VR-Device-1#

добавляем в OSPF loopback интерфейс R1:

[edit routing-instances R1 protocols ospf]
root@VR-Device-1# set area 0 interface lo0.1 

добавляем интерфейс ge-0/0/3.12 и сразу настраиваем таймеры:

[edit routing-instances R1 protocols ospf]
root@VR-Device-1# set area 0 interface ge-0/0/3.12 

[edit routing-instances R1 protocols ospf]
root@VR-Device-1# set area 0 interface ge-0/0/3.12 hello-interval 3 

[edit routing-instances R1 protocols ospf]
root@VR-Device-1# set area 0 interface ge-0/0/3.12 dead-interval 12   

здесь я разбил это на 3 команды, но можно было все ввести и в одну строку:

[edit routing-instances R1 protocols ospf]
root@VR-Device-1# set area 0 interface ge-0/0/3.12 hello-interval 3 dead-interval 12

при выполнении этой команды роутер автоматически бы добавил интерфейс ge-0/0/3.12 в OSPF-процесс и настроил таймеры. Я же буду стараться разбивать команды на более мелкие для лучшего понимания.

Теперь глянем итоговую настройку OSPF:

root@VR-Device-1# show                                 
area 0.0.0.0 {
    interface lo0.1;
    interface ge-0/0/3.12 {
        hello-interval 3;
        dead-interval 12;
    }
}

Все отлично, сохраняем конфиг и выходим:

root@VR-Device-1# commit and-quit comment "Configuring ospf area 0" 
commit complete
Exiting configuration mode

Комментарии при коммитах желательно не забывать писать, чтобы через N-ое количество времени не забыть, что было сделано в том или ином коммите (в лабах это делать необязательно, но в реальной жизни настоятельно рекомендуется)

Идем настраивать VR-Device-2 по аналогии с первым:

Заходим в контекст OSPF routing-instance R2:

root@VR-Device-2> configure 
Entering configuration mode

[edit]
root@VR-Device-2# edit routing-instances R2 protocols ospf 

[edit routing-instances R2 protocols ospf]

Объявляем интерфейсы и настраиваем таймеры:

root@VR-Device-2# set area 0 interface lo0.2 

[edit routing-instances R2 protocols ospf]
root@VR-Device-2# set area 0 interface ge-0/0/3.12 

[edit routing-instances R2 protocols ospf]
root@VR-Device-2# set area 0 interface ge-0/0/3.12 hello-interval 3 

[edit routing-instances R2 protocols ospf]
root@VR-Device-2# set area 0 interface ge-0/0/3.12 dead-interval 12    

[edit routing-instances R2 protocols ospf]
root@VR-Device-2# set area 0 interface ge-0/0/4.23 

[edit routing-instances R2 protocols ospf]
root@VR-Device-2# set area 0 interface ge-0/0/4.23 hello-interval 3    

[edit routing-instances R2 protocols ospf]
root@VR-Device-2# set area 0 interface ge-0/0/4.23 dead-interval 12  

Смотрим на получившийся результат и сохраняем конфиг:

[edit routing-instances R2 protocols ospf]
root@VR-Device-2# show 
area 0.0.0.0 {
    interface lo0.2;
    interface ge-0/0/3.12 {
        hello-interval 3;
        dead-interval 12;
    }
    interface ge-0/0/4.23 {
        hello-interval 3;
        dead-interval 12;
    }
}

[edit routing-instances R2 protocols ospf]
root@VR-Device-2# commit and-quit comment "Configuring ospf area 0" 
commit complete
Exiting configuration mode

И теперь настраиваем VR-Device-3:

root@VR-Device-3> configure 
Entering configuration mode

[edit]
root@VR-Device-3# edit routing-instances R3 protocols ospf 

[edit routing-instances R3 protocols ospf]
root@VR-Device-3# set area 0 interface lo0.3 

[edit routing-instances R3 protocols ospf]
root@VR-Device-3# set area 0 interface ge-0/0/4.23 

[edit routing-instances R3 protocols ospf]
root@VR-Device-3# set area 0 interface ge-0/0/4.23 hello-interval 3 

[edit routing-instances R3 protocols ospf]
root@VR-Device-3# set area 0 interface ge-0/0/4.23 dead-interval 12    

[edit routing-instances R3 protocols ospf]
root@VR-Device-3# show   
area 0.0.0.0 {
    interface lo0.3;
    interface ge-0/0/4.23 {
        hello-interval 3;
        dead-interval 12;
    }
}

[edit routing-instances R3 protocols ospf]
root@VR-Device-3# commit and-quit comment "Configuring ospf area 0" 
commit complete
Exiting configuration mode

Итак, нулевую область настроили, проверим установившиеся соседства на VR-Device-2 (он находится между двумя другими роутерами, поэтому достаточно будет увидеть, что у R2 есть 2 активных OSPF-соседа):

root@VR-Device-2> show ospf neighbor 
OSPF instance is not running

И снова незадача, Juniper заявляет, что OSPF не активирован. И это вполне логично, поскольку мы запускали OSPF в виртуальных роутерах, дополним нашу команду:

root@VR-Device-2> show ospf neighbor instance R2    
Address          Interface              State     ID               Pri  Dead
172.20.12.1      ge-0/0/3.12            Full      192.168.100.1    128    10
172.20.23.1      ge-0/0/4.23            Full      192.168.100.3    128    11

Отлично, на R2 есть 2 активных OSPF-соседа. Также можно глянуть все виртуальные роутеры, заменив в команде R2 на all:

root@VR-Device-2> show ospf neighbor instance all   
Instance: R2
Address          Interface              State     ID               Pri  Dead
172.20.12.1      ge-0/0/3.12            Full      192.168.100.1    128    10
172.20.23.1      ge-0/0/4.23            Full      192.168.100.3    128    11

Особо ничего не поменялось, поскольку пока что только у R2 есть OSPF соседи.

Проверим на R1, R2 и R3 маршруты, полученные по протоколу OSPF:

R1:

root@VR-Device-1> show route protocol ospf table R1.inet.0 

R1.inet.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.23.0/30     *[OSPF/10] 00:07:41, metric 2
                    > to 172.20.12.2 via ge-0/0/3.12
192.168.100.2/32   *[OSPF/10] 00:07:41, metric 1
                    > to 172.20.12.2 via ge-0/0/3.12
192.168.100.3/32   *[OSPF/10] 00:05:44, metric 2
                    > to 172.20.12.2 via ge-0/0/3.12
224.0.0.5/32       *[OSPF/10] 00:13:02, metric 1
                      MultiRecv

Здесь мы видим loopback-адреса R2 и R3, а также p2p-сеть 172.20.23.0/30 между R2 и R3. Выполним icmp-запрос до loopback-адресов R2 и R3:

root@VR-Device-1> ping 192.168.100.2 routing-instance R1 
PING 192.168.100.2 (192.168.100.2): 56 data bytes
64 bytes from 192.168.100.2: icmp_seq=0 ttl=64 time=2.623 ms
64 bytes from 192.168.100.2: icmp_seq=1 ttl=64 time=2.798 ms
64 bytes from 192.168.100.2: icmp_seq=2 ttl=64 time=2.092 ms
^C
--- 192.168.100.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.092/2.504/2.798/0.300 ms

root@VR-Device-1> ping 192.168.100.3 routing-instance R1    
PING 192.168.100.3 (192.168.100.3): 56 data bytes
64 bytes from 192.168.100.3: icmp_seq=0 ttl=63 time=9.061 ms
64 bytes from 192.168.100.3: icmp_seq=1 ttl=63 time=3.736 ms
64 bytes from 192.168.100.3: icmp_seq=2 ttl=63 time=11.645 ms
^C
--- 192.168.100.3 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 3.736/8.147/11.645/3.293 ms

Все прекрасно работает. Аналогичные действия для других роутеров:

R2
root@VR-Device-2> show route protocol ospf table R2.inet.0 

R2.inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

192.168.100.1/32   *[OSPF/10] 00:10:18, metric 1
                    > to 172.20.12.1 via ge-0/0/3.12
192.168.100.3/32   *[OSPF/10] 00:08:22, metric 1
                    > to 172.20.23.1 via ge-0/0/4.23
224.0.0.5/32       *[OSPF/10] 00:10:28, metric 1
                      MultiRecv

root@VR-Device-2> ping 192.168.100.1 routing-instance R2 
PING 192.168.100.1 (192.168.100.1): 56 data bytes
64 bytes from 192.168.100.1: icmp_seq=0 ttl=64 time=19.708 ms
64 bytes from 192.168.100.1: icmp_seq=1 ttl=64 time=2.557 ms
^C
--- 192.168.100.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.557/11.132/19.708/8.575 ms

root@VR-Device-2> ping 192.168.100.3 routing-instance R2    
PING 192.168.100.3 (192.168.100.3): 56 data bytes
64 bytes from 192.168.100.3: icmp_seq=0 ttl=64 time=2.581 ms
64 bytes from 192.168.100.3: icmp_seq=1 ttl=64 time=2.422 ms
^C
--- 192.168.100.3 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.422/2.502/2.581/0.079 ms

Если посмотреть на маршруты, полученные по OSPF на R2, будет видно, что в таблице маршрутизации нет p2p-сетей (172.20.12.0/30 и 172.20.23.0/30). Но если просто посмотреть таблицу маршрутизации R2, то эти сети там будут:

root@VR-Device-2> show route table R2.inet.0
R2.inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.12.0/30     *[Direct/0] 01:49:27
                    > via ge-0/0/3.12
172.20.12.2/32     *[Local/0] 01:49:28
                      Local via ge-0/0/3.12
172.20.23.0/30     *[Direct/0] 01:49:26
                    > via ge-0/0/4.23
172.20.23.2/32     *[Local/0] 01:49:28
                      Local via ge-0/0/4.23
172.20.24.0/30     *[Direct/0] 01:49:27
                    > via ge-0/0/3.24
172.20.24.2/32     *[Local/0] 01:49:28
                      Local via ge-0/0/3.24
172.20.25.0/30     *[Direct/0] 01:49:26
                    > via ge-0/0/5.25
172.20.25.1/32     *[Local/0] 01:49:28
                      Local via ge-0/0/5.25
192.168.100.1/32   *[OSPF/10] 00:14:48, metric 1
                    > to 172.20.12.1 via ge-0/0/3.12
192.168.100.2/32   *[Direct/0] 01:50:01
                    > via lo0.2         
192.168.100.3/32   *[OSPF/10] 00:12:52, metric 1
                    > to 172.20.23.1 via ge-0/0/4.23
224.0.0.5/32       *[OSPF/10] 00:14:58, metric 1
                      MultiRecv

Это связано с тем, что эти сети подключены непосредственно к R2 и имеют более высокий приоритет, чем маршруты, полученные по OSPF.

R3
root@VR-Device-3> show route protocol ospf table R3.inet.0 

R3.inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.12.0/30     *[OSPF/10] 00:09:24, metric 2
                    > to 172.20.23.2 via ge-0/0/4.23
192.168.100.1/32   *[OSPF/10] 00:09:24, metric 2
                    > to 172.20.23.2 via ge-0/0/4.23
192.168.100.2/32   *[OSPF/10] 00:09:24, metric 1
                    > to 172.20.23.2 via ge-0/0/4.23
224.0.0.5/32       *[OSPF/10] 00:09:34, metric 1
                      MultiRecv

root@VR-Device-3> ping 192.168.100.1 routing-instance R3 
PING 192.168.100.1 (192.168.100.1): 56 data bytes
64 bytes from 192.168.100.1: icmp_seq=0 ttl=63 time=2.867 ms
64 bytes from 192.168.100.1: icmp_seq=1 ttl=63 time=4.411 ms
^C
--- 192.168.100.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.867/3.639/4.411/0.772 ms

root@VR-Device-3> ping 192.168.100.2 routing-instance R3    
PING 192.168.100.2 (192.168.100.2): 56 data bytes
64 bytes from 192.168.100.2: icmp_seq=0 ttl=64 time=1.404 ms
64 bytes from 192.168.100.2: icmp_seq=1 ttl=64 time=2.977 ms
^C
--- 192.168.100.2 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 1.404/2.191/2.977/0.786 ms

Отлично, маршруты в таблице маршрутизации есть, связность тоже есть.

Глянем базу данных состояния каналов на R1:

root@VR-Device-1> show ospf database instance R1 

    OSPF database, Area 0.0.0.0
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router  *192.168.100.1    192.168.100.1    0x80000006   265  0x22 0x19fc  48
Router   192.168.100.2    192.168.100.2    0x80000006   265  0x22 0xb995  60
Router   192.168.100.3    192.168.100.3    0x80000005   275  0x22 0x1ae0  48
Network *172.20.12.1      192.168.100.1    0x80000001   265  0x22 0xf908  32
Network  172.20.23.1      192.168.100.3    0x80000001   276  0x22 0x886a  32

R2:

root@VR-Device-2> show ospf database instance R2 

    OSPF database, Area 0.0.0.0
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router   192.168.100.1    192.168.100.1    0x80000006   277  0x22 0x19fc  48
Router  *192.168.100.2    192.168.100.2    0x80000006   275  0x22 0xb995  60
Router   192.168.100.3    192.168.100.3    0x80000005   285  0x22 0x1ae0  48
Network  172.20.12.1      192.168.100.1    0x80000001   277  0x22 0xf908  32
Network  172.20.23.1      192.168.100.3    0x80000001   286  0x22 0x886a  32
root@VR-Device-3> show ospf database instance R3 

    OSPF database, Area 0.0.0.0
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router   192.168.100.1    192.168.100.1    0x80000006   296  0x22 0x19fc  48
Router   192.168.100.2    192.168.100.2    0x80000006   294  0x22 0xb995  60
Router  *192.168.100.3    192.168.100.3    0x80000005   302  0x22 0x1ae0  48
Network  172.20.12.1      192.168.100.1    0x80000001   296  0x22 0xf908  32
Network *172.20.23.1      192.168.100.3    0x80000001   303  0x22 0x886a  32

Как видим, каждое из устройств в нулевой OSPF-области имеет идентичную базу данных состояния каналов (LSDB).

Идем дальше, теперь настроим area 30. На схеме видно, что ей принадлежат роутеры R1, R8 и R9. Настройка аналогична нулевой области, только <AREA_ID> в нашем случае будет 30:

R1
[edit]
root@VR-Device-1# edit routing-instances R1 protocols ospf 

[edit routing-instances R1 protocols ospf]
root@VR-Device-1# set area 30 interface ge-0/0/5.19 

[edit routing-instances R1 protocols ospf]
root@VR-Device-1# set area 30 interface ge-0/0/5.19 hello-interval 5 

[edit routing-instances R1 protocols ospf]
root@VR-Device-1# set area 30 interface ge-0/0/5.19 dead-interval 20  

Loopback-интерфейс R1 анонсировать в area 30 нет необходимости, поскольку мы его уже объявили в нулевую область.

R9
[edit]
root@VR-Device-1# edit routing-instances R9 protocols ospf       

root@VR-Device-1# set area 30 interface lo0.9 

[edit routing-instances R9 protocols ospf]
root@VR-Device-1# set area 30 interface ge-0/0/6.19  

[edit routing-instances R9 protocols ospf]
root@VR-Device-1# set area 30 interface ge-0/0/6.19 hello-interval 5   

[edit routing-instances R9 protocols ospf]
root@VR-Device-1# set area 30 interface ge-0/0/6.19 dead-interval 20    

[edit routing-instances R9 protocols ospf]
root@VR-Device-1# set area 30 interface ge-0/0/3.89 

[edit routing-instances R9 protocols ospf]
root@VR-Device-1# set area 30 interface ge-0/0/3.89 hello-interval 5 

[edit routing-instances R9 protocols ospf]
root@VR-Device-1# set area 30 interface ge-0/0/3.89 dead-interval 20   
R8
root@VR-Device-2> configure 
Entering configuration mode

[edit]
root@VR-Device-2# edit routing-instances R8 protocols ospf 

[edit routing-instances R8 protocols ospf]
root@VR-Device-2# set area 30 interface lo0.8 

[edit routing-instances R8 protocols ospf]
root@VR-Device-2# set area 30 interface ge-0/0/3.89 

[edit routing-instances R8 protocols ospf]
[edit routing-instances R8 protocols ospf]
root@VR-Device-2# set area 30 interface ge-0/0/3.89 hello-interval 5 

[edit routing-instances R8 protocols ospf]
root@VR-Device-2# set area 30 interface ge-0/0/3.89 dead-interval 20  

Сохраняем настройки и посмотрим LSDB и таблицу маршрутизации на R1:

root@VR-Device-1> show ospf database instance R1 

    OSPF database, Area 0.0.0.0
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router  *192.168.100.1    192.168.100.1    0x80000005   174  0x22 0x28ec  48
Router   192.168.100.2    192.168.100.2    0x80000006   172  0x22 0xc38a  60
Router   192.168.100.3    192.168.100.3    0x80000005   179  0x22 0x1ae0  48
Network  172.20.12.2      192.168.100.2    0x80000001   175  0x22 0xe51a  32
Network  172.20.23.1      192.168.100.3    0x80000001   184  0x22 0x886a  32
Summary *172.20.19.0      192.168.100.1    0x80000003   163  0x22 0x2575  28
Summary *172.20.89.0      192.168.100.1    0x80000002   158  0x22 0x2c28  28
Summary *192.168.100.8    192.168.100.1    0x80000001   158  0x22 0x7a1c  28
Summary *192.168.100.9    192.168.100.1    0x80000001   163  0x22 0x6630  28

    OSPF database, Area 0.0.0.30
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router  *192.168.100.1    192.168.100.1    0x80000003   166  0x22 0x895e  36
Router   192.168.100.8    192.168.100.8    0x80000004   166  0x22 0xf96d  48
Router   192.168.100.9    192.168.100.9    0x80000006   162  0x22 0x2c7b  60
Network  172.20.19.2      192.168.100.9    0x80000001   168  0x22 0xb436  32
Network  172.20.89.1      192.168.100.9    0x80000001   165  0x22 0x1c82  32
Summary *172.20.12.0      192.168.100.1    0x80000004   168  0x22 0x7030  28
Summary *172.20.23.0      192.168.100.1    0x80000001   168  0x22 0x790   28
Summary *192.168.100.1    192.168.100.1    0x80000001   226  0x22 0xacf2  28
Summary *192.168.100.2    192.168.100.1    0x80000001   168  0x22 0xacf0  28
Summary *192.168.100.3    192.168.100.1    0x80000001   168  0x22 0xacee  28

root@VR-Device-1> show route protocol ospf table R1.inet.0          

R1.inet.0: 16 destinations, 16 routes (16 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.23.0/30     *[OSPF/10] 00:03:55, metric 2
                    > to 172.20.12.2 via ge-0/0/3.12
172.20.89.0/30     *[OSPF/10] 00:03:50, metric 2
                    > to 172.20.19.2 via ge-0/0/5.19
192.168.100.2/32   *[OSPF/10] 00:03:55, metric 1
                    > to 172.20.12.2 via ge-0/0/3.12
192.168.100.3/32   *[OSPF/10] 00:03:55, metric 2
                    > to 172.20.12.2 via ge-0/0/3.12
192.168.100.8/32   *[OSPF/10] 00:03:45, metric 2
                    > to 172.20.19.2 via ge-0/0/5.19
192.168.100.9/32   *[OSPF/10] 00:03:50, metric 1
                    > to 172.20.19.2 via ge-0/0/5.19
224.0.0.5/32       *[OSPF/10] 00:04:58, metric 1
                      MultiRecv

Отлично, все на месте. Теперь произведем настройку оставшихся областей.

Area 20:

R8
root@VR-Device-2> configure 
Entering configuration mode

[edit]
root@VR-Device-2# edit routing-instances R8 protocols ospf area 20 

[edit routing-instances R8 protocols ospf area 0.0.0.20]
root@VR-Device-2# set interface ge-0/0/4.78 

[edit routing-instances R8 protocols ospf area 0.0.0.20]
root@VR-Device-2# set interface ge-0/0/4.78 hello-interval 5 

[edit routing-instances R8 protocols ospf area 0.0.0.20]
root@VR-Device-2# set interface ge-0/0/4.78 dead-interval 20    

[edit routing-instances R8 protocols ospf area 0.0.0.20]
root@VR-Device-2# commit and-quit 
commit complete
Exiting configuration mode
R7
root@VR-Device-3> configure 
Entering configuration mode

[edit]
root@VR-Device-3# edit routing-instances R7 protocols ospf area 20 

[edit routing-instances R7 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface lo0.7 

[edit routing-instances R7 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface ge-0/0/4.78 

[edit routing-instances R7 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface ge-0/0/4.78 hello-interval 5 

[edit routing-instances R7 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface ge-0/0/4.78 dead-interval 20    

[edit routing-instances R7 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface ge-0/0/6.37                     

[edit routing-instances R7 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface ge-0/0/6.37 hello-interval 5 

[edit routing-instances R7 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface ge-0/0/6.37 dead-interval 20    
R3
[edit]
root@VR-Device-3# edit routing-instances R3 protocols ospf area 20 

[edit routing-instances R3 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface ge-0/0/5.37 

[edit routing-instances R3 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface ge-0/0/5.37 hello-interval 5 

[edit routing-instances R3 protocols ospf area 0.0.0.20]
root@VR-Device-3# set interface ge-0/0/5.37 dead-interval 20    

[edit routing-instances R3 protocols ospf area 0.0.0.20]
root@VR-Device-3# commit and-quit 
commit complete
Exiting configuration mode

Area 10:

R1
root@VR-Device-1> configure 
Entering configuration mode

[edit]
root@VR-Device-1# edit routing-instances R1 protocols ospf area 10 

[edit routing-instances R1 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/3.15 

[edit routing-instances R1 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/3.15 hello-interval 5 

[edit routing-instances R1 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/3.15 dead-interval 20    

[edit routing-instances R1 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/5.14    

[edit routing-instances R1 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/5.14 hello-interval 5 

[edit routing-instances R1 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/5.14 dead-interval 20    
R4
[edit]
root@VR-Device-1# edit routing-instances R4 protocols ospf area 10 

[edit routing-instances R4 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface lo0.4 

[edit routing-instances R4 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/3.24 

[edit routing-instances R4 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/3.24 hello-interval 5 

[edit routing-instances R4 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/3.24 dead-interval 20    

[edit routing-instances R4 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/6.14   

[edit routing-instances R4 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/6.14 hello-interval 5 

[edit routing-instances R4 protocols ospf area 0.0.0.10]
root@VR-Device-1# set interface ge-0/0/6.14 dead-interval 20    

[edit routing-instances R4 protocols ospf area 0.0.0.10]
root@VR-Device-1# commit and-quit comment "Configure ospf area 10" 
commit complete
Exiting configuration mode
R2
[edit]
root@VR-Device-2# edit routing-instances R2 protocols ospf area 10 

[edit routing-instances R2 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/3.24 

[edit routing-instances R2 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/3.24 hello-interval 5 

[edit routing-instances R2 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/3.24 dead-interval 20    

[edit routing-instances R2 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/5.25 

[edit routing-instances R2 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/5.25 hello-interval 5 

[edit routing-instances R2 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/5.25 dead-interval 20    
R4
[edit]
root@VR-Device-2# edit routing-instances R5 protocols ospf area 10 

[edit routing-instances R5 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface lo0.5 

[edit routing-instances R5 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/3.15 

[edit routing-instances R5 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/3.15 hello-interval 5 

[edit routing-instances R5 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/3.15 dead-interval 20    

[edit routing-instances R5 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/6.25 

[edit routing-instances R5 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/6.25 hello-interval 5 

[edit routing-instances R5 protocols ospf area 0.0.0.10]
root@VR-Device-2# set interface ge-0/0/6.25 dead-interval 20    

[edit routing-instances R5 protocols ospf area 0.0.0.10]
root@VR-Device-2# commit and-quit comment "Configure ospf area 20" 
commit complete
Exiting configuration mode

И остается area 40:

R3
[edit]
root@VR-Device-3# edit routing-instances R3 protocols ospf area 40 

[edit routing-instances R3 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface ge-0/0/5.36 

[edit routing-instances R3 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface ge-0/0/5.36 hello-interval 5 

[edit routing-instances R3 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface ge-0/0/5.36 dead-interval 20    
R6
[edit]
root@VR-Device-3# edit routing-instances R6 protocols ospf area 40 

[edit routing-instances R6 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface lo0.6 

[edit routing-instances R6 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface ge-0/0/6.36 

[edit routing-instances R6 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface ge-0/0/6.36 hello-interval 5 

[edit routing-instances R6 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface ge-0/0/6.36 dead-interval 20    

[edit routing-instances R6 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface ge-0/0/4.106                    

[edit routing-instances R6 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface ge-0/0/4.106 hello-interval 5 

[edit routing-instances R6 protocols ospf area 0.0.0.40]
root@VR-Device-3# set interface ge-0/0/4.106 dead-interval 20    

[edit routing-instances R6 protocols ospf area 0.0.0.40]
root@VR-Device-3# commit and-quit comment "Configure ospf area 40" 
commit complete
Exiting configuration mode
R10
[edit]
root@VR-Device-2# edit routing-instances R10 protocols ospf area 40 

[edit routing-instances R10 protocols ospf area 0.0.0.40]
root@VR-Device-2# set interface lo0.10 

[edit routing-instances R10 protocols ospf area 0.0.0.40]
root@VR-Device-2# set interface ge-0/0/4.106 

[edit routing-instances R10 protocols ospf area 0.0.0.40]
root@VR-Device-2# set interface ge-0/0/4.106 hello-interval 5 

[edit routing-instances R10 protocols ospf area 0.0.0.40]
root@VR-Device-2# set interface ge-0/0/4.106 dead-interval 20    

[edit routing-instances R10 protocols ospf area 0.0.0.40]
root@VR-Device-2# commit and-quit comment "Configure ospf area 40" 
commit complete
Exiting configuration mode

Готово. Проведем некоторые проверки, дабы убедиться в корректности настройки

Проверим наличие всех loopback-адресов в таблице маршрутизации рандомного узла:

root@VR-Device-2> show route table R8 | match 192.168.100   
 192.168.100.1/32   *[OSPF/10] 00:02:06, metric 2
 192.168.100.2/32   *[OSPF/10] 00:01:56, metric 3
 192.168.100.3/32   *[OSPF/10] 00:01:56, metric 2
 192.168.100.4/32   *[OSPF/10] 00:01:51, metric 3
 192.168.100.5/32   *[OSPF/10] 00:02:01, metric 3
 192.168.100.6/32   *[OSPF/10] 00:01:51, metric 3
 192.168.100.7/32   *[OSPF/10] 00:02:01, metric 1
 192.168.100.8/32   *[Direct/0] 00:03:13
 192.168.100.9/32   *[OSPF/10] 00:02:12, metric 1
 192.168.100.10/32  *[OSPF/10] 00:01:51, metric 4

Префиксы есть. Проверим наличие всех необходимых OSPF-соседств:

root@VR-Device-1> show ospf neighbor instance R1
Address          Interface              State     ID               Pri  Dead
172.20.12.2      ge-0/0/3.12            Full      192.168.100.2    128    10
172.20.15.2      ge-0/0/3.15            Full      192.168.100.5    128    19
172.20.14.2      ge-0/0/5.14            Full      192.168.100.4    128    18
172.20.19.2      ge-0/0/5.19            Full      192.168.100.9    128    18
root@VR-Device-2> show ospf neighbor instance R2
Address          Interface              State     ID               Pri  Dead
172.20.12.1      ge-0/0/3.12            Full      192.168.100.1    128     9
172.20.23.1      ge-0/0/4.23            Full      192.168.100.3    128    10
172.20.24.1      ge-0/0/3.24            Full      192.168.100.4    128    19
172.20.25.2      ge-0/0/5.25            Full      192.168.100.5    128    19
root@VR-Device-2> show ospf neighbor instance R8
Address          Interface              State     ID               Pri  Dead
172.20.78.1      ge-0/0/4.78            Full      192.168.100.7    128    16
172.20.89.1      ge-0/0/3.89            Full      192.168.100.9    128    16
root@VR-Device-3> show ospf neighbor instance R3
Address          Interface              State     ID               Pri  Dead
172.20.23.2      ge-0/0/4.23            Full      192.168.100.2    128    11
172.20.37.2      ge-0/0/5.37            Full      192.168.100.7    128    19
172.20.36.2      ge-0/0/5.36            Full      192.168.100.6    128    16
root@VR-Device-3> show ospf neighbor instance R6
Address          Interface              State     ID               Pri  Dead
172.20.106.2     ge-0/0/4.106           Full      192.168.100.10   128    18
172.20.36.1      ge-0/0/6.36            Full      192.168.100.3    128    15

Судя по наличию всех ожидаемых соседств, OSPF настроен корректно. Переходим к следующей части — настройка аутентификации

  • В OSPF-области 40 настройте md5-аутентификацию, выставив пароль password_one в промежутке времени с 00:00 по 07:00 и пароль password_two — для остального времени суток
  • Между R8 и R9 установите пароль типа simple, в качестве пароля используйте слово password
  • убедитесь, что соседства установлены, выясните разницу между настроенными типами паролей

Аутентификация настраивается в режиме конфигурации OSPF в контексте интерфейса, на котором будет настраиваться соседство с использованием пароля. Общий вид задания типа аутентификации выглядит так:

[edit protocols ospf area <AREA_ID> interface <INTERFACE_ID>]
root@router# set authentication <AUTH_TYPE>

где <AUTH_TYPE> — md5 или simple-password. При выборе типа md5 по сети передается не пароль, а его md5-хеш, при simple-password пароль передается по сети в открытом виде.

Настройка md5 в общем виде выглядит так:

[edit protocols ospf area <AREA_ID> interface <INTERFACE_ID>]
root@router# set authentication md5 <KEY_ID> key <KEY> start-time YYYY-MM-DD.HH:MM

где <KEY_ID> — идентификатор ключа (от 0 до 255), <KEY> — сам пароль, после start-time задается время, когда начинает использоваться данный пароль.

Перейдем к настройке пароля в area 40:

R3
[edit]
root@VR-Device-3#[edit routing-instances R3 protocols ospf area 0.0.0.40 interface ge-0/0/5.36      

[edit routing-instances R3 protocols ospf area 0.0.0.40 interface ge-0/0/5.36]
root@VR-Device-3# set authentication md5 1 key password_one start-time 00:00    

[edit routing-instances R3 protocols ospf area 0.0.0.40 interface ge-0/0/5.36]
root@VR-Device-3# set authentication md5 2 key password_two start-time 07:00

Важно указывать разные <KEY_ID>, в противном случае один просто заменит другой. Закоммитим настройки и проверим OSPF-соседей на R3:

root@VR-Device-3> show ospf neighbor instance R3
Address          Interface              State     ID               Pri  Dead
172.20.23.2      ge-0/0/4.23            Full      192.168.100.2    128    11
172.20.37.2      ge-0/0/5.37            Full      192.168.100.7    128    18

Как видно выше, OSPF-соседство между R3 и R6 разрушилось, поскольку на R3 мы настроили аутентификацию, а на R6 нет. Исправим:

R6
[edit routing-instances R6 protocols ospf area 0.0.0.40 interface ge-0/0/6.36]
root@VR-Device-3# set authentication md5 1 key password_one start-time 00:00                      

[edit routing-instances R6 protocols ospf area 0.0.0.40 interface ge-0/0/6.36]
root@VR-Device-3#set authentication md5 2 key password_two start-time 07:00

[edit routing-instances R6 protocols ospf area 0.0.0.40 interface ge-0/0/6.36]
root@VR-Device-3# up 

[edit routing-instances R6 protocols ospf area 0.0.0.40]
root@VR-Device-3# edit interface ge-0/0/4.106 

[edit routing-instances R6 protocols ospf area 0.0.0.40 interface ge-0/0/4.106]
root@VR-Device-3# set authentication md5 1 key password_one start-time 00:00                      

[edit routing-instances R6 protocols ospf area 0.0.0.40 interface ge-0/0/4.106]
root@VR-Device-3# set authentication md5 2 key password_two start-time 07:00

root@VR-Device-3# commit and-quit     

Проверим OSPF-соседей на R6:

root@VR-Device-3> show ospf neighbor instance R6
Address          Interface              State     ID               Pri  Dead
172.20.36.1      ge-0/0/6.36            Full      192.168.100.3    128    17

Как и ожидалось, соседство с R3 восстановилось, но с R10 пропало, поскольку до настройки R10 мы еще не добрались. Попробуем при настройке R10 поменять местами идентификаторы ключей:

R10
[edit]
root@VR-Device-2# edit routing-instances R10 protocols ospf area 0.0.0.40 interface ge-0/0/4.106        

[edit routing-instances R10 protocols ospf area 0.0.0.40 interface ge-0/0/4.106]
root@VR-Device-2# set authentication md5 2 key password_one start-time 00:00                     

[edit routing-instances R10 protocols ospf area 0.0.0.40 interface ge-0/0/4.106]
root@VR-Device-2# set authentication md5 1 key password_two start-time 07:00    

[edit routing-instances R10 protocols ospf area 0.0.0.40 interface ge-0/0/4.106]
root@VR-Device-2# commit and-quit 
commit complete
Exiting configuration mode

Проверим OSPF-соседства на R6:

root@VR-Device-3> show ospf neighbor instance R6
Address          Interface              State     ID               Pri  Dead
172.20.36.1      ge-0/0/6.36            Full      192.168.100.3    128    18

Соседство между R6 и R10 по-прежнему не установилась. Глянем более детально в OSPF-интерфейсы между этими узлами:

root@VR-Device-2> show ospf interface ge-0/0/4.106 detail instance R10
Interface           State   Area            DR ID           BDR ID          Nbrs
ge-0/0/4.106        DR      0.0.0.40        192.168.100.10  0.0.0.0            0
  Type: LAN, Address: 172.20.106.2, Mask: 255.255.255.252, MTU: 1500, Cost: 1
  DR addr: 172.20.106.2, Priority: 128
  Adj count: 0
  Hello: 5, Dead: 20, ReXmit: 5, Not Stub
  Auth type: MD5, Active key ID: 1, Start time: 2020 Mar 26 07:00:00 UTC
  Protection type: None
  Topology default (ID 0) -> Cost: 1
root@VR-Device-3> show ospf interface ge-0/0/4.106 detail instance R6
Interface           State   Area            DR ID           BDR ID          Nbrs
ge-0/0/4.106        DR      0.0.0.40        192.168.100.6   0.0.0.0            0
  Type: LAN, Address: 172.20.106.1, Mask: 255.255.255.252, MTU: 1500, Cost: 1
  DR addr: 172.20.106.1, Priority: 128
  Adj count: 0
  Hello: 5, Dead: 20, ReXmit: 5, Not Stub
  Auth type: MD5, Active key ID: 2, Start time: 2020 Mar 26 07:00:00 UTC
  Protection type: None
  Topology default (ID 0) -> Cost: 1

В выводе видно, что все параметры совпадают, кроме Active key ID. Исправим на R10:

root@VR-Device-2#edit routing-instances R10 protocols ospf area 0.0.0.40 interface ge-0/0/4.106 authentication

root@VR-Device-2# delete md5 1 

[edit routing-instances R10 protocols ospf area 0.0.0.40 interface ge-0/0/4.106 authentication]
root@VR-Device-2# delete md5 2    

[edit routing-instances R10 protocols ospf area 0.0.0.40 interface ge-0/0/4.106 authentication]
root@VR-Device-2# set md5 1 key password_one start-time 00:00  

[edit routing-instances R10 protocols ospf area 0.0.0.40 interface ge-0/0/4.106 authentication]
root@VR-Device-2# set md5 2 key password_two start-time 07:00 

[edit routing-instances R10 protocols ospf area 0.0.0.40 interface ge-0/0/4.106 authentication]
root@VR-Device-2# commit and-quit 
commit complete
Exiting configuration mode

Глянем на соседей R10:

root@VR-Device-2> show ospf neighbor instance R10
Address          Interface              State     ID               Pri  Dead
172.20.106.1     ge-0/0/4.106           Full      192.168.100.6    128    16

Отсюда можно сделать вывод, что важно, чтобы идентификаторы ключей совпадали.

Теперь настроим простой пароль между R8 и R9:

R8
[edit routing-instances R8 protocols ospf area 0.0.0.30 interface ge-0/0/3.89]
root@VR-Device-2# set authentication simple-password password 

[edit routing-instances R8 protocols ospf area 0.0.0.30 interface ge-0/0/3.89]
root@VR-Device-2# commit and-quit 
R9
[edit routing-instances R9 protocols ospf area 0.0.0.30 interface ge-0/0/3.89]
root@VR-Device-1# set authentication simple-password password    

[edit routing-instances R9 protocols ospf area 0.0.0.30 interface ge-0/0/3.89]
root@VR-Device-1# commit and-quit 
root@VR-Device-2> show ospf neighbor instance R8 
Address          Interface              State     ID               Pri  Dead
172.20.78.1      ge-0/0/4.78            Full      192.168.100.7    128    17
172.20.89.1      ge-0/0/3.89            Full      192.168.100.9    128    18

OSPF работает, наличие пароля можем проверить, глянув в OSPF-интерфейс:

root@VR-Device-2> show ospf interface ge-0/0/3.89 detail instance R8
Interface           State   Area            DR ID           BDR ID          Nbrs
ge-0/0/3.89         BDR     0.0.0.30        192.168.100.9   192.168.100.8      1
  Type: LAN, Address: 172.20.89.2, Mask: 255.255.255.252, MTU: 1500, Cost: 1
  DR addr: 172.20.89.1, BDR addr: 172.20.89.2, Priority: 128
  Adj count: 1
  Hello: 5, Dead: 20, ReXmit: 5, Not Stub
  Auth type: Password
  Protection type: None
  Topology default (ID 0) -> Cost: 1

На этом первая часть окончена. В течении недели постараюсь оформить и выложить продолжение. Если есть какие-то вопросы/пожелания/предложения — пишите в комментариях.

One thought on “Juniper. Лабораторная работа по OSPF уровня professional. Пошаговое решение. Часть 1.”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.