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

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

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

Внутри устройств 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.”