На устройстве МКСЗ «Diamond VPN/FW» поддерживается возможность конфигурации нескольких процессов OSPF. В базовой конфигурации запускается один процесс. Для запуска нескольких процессов для протокола динамической маршрутизации OSPF необходимо внести изменения в конфигурационный файл «daemons». Для редактирования конфигурационного файла необходимо перейти в папку назначения с помощью команды «cd /media/storage/overlay/frr/» и выполнить команду «nano daemons». В конфигурационном файле необходимо для протокола OSPF задать значение параметра «yes» и добавить строку «ospfd_instances=X,Y,X», где X, Y, Z - номера процессов, которые мы хотим запустить на устройстве. При необходимости, можно задать произвольные значения для номеров процессов и запустить нужное их количество. После внесения изменений в конфигурационный файл «daemons» необходимо перезапустить процесс динамической маршрутизации с помощью команды «/etc/init.d/S50frr restart».
bgpd=no ospfd=yes --------------| ---> активация протокола OSPF ospfd_instances=1,2,3 --------------| ---> запуск процессов с номерами 1, 2 и 3 ospf6d=no ripd=no ripngd=no isisd=no pimd=no ldpd=no nhrpd=no eigrpd=no babeld=no sharpd=no pbrd=no bfdd=no fabricd=no vrrpd=no
Для настройки протокола динамической маршрутизации «OSPF (Open Shortest Path First)» необходимо подключиться к устройству по протоколу ssh и выполнить команду «vtysh» для перехода в режим интерпретатора.
# vtysh Hello, this is FRRouting (version 7.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. Diamond VPN/FW#
Далее необходимо необходимо перейти в режим конфигурирования с помощью команду «confidure terminal» и выполнять команду для входа в режим конфигурирования протокола динамической маршрутизации OSPF «router ospf». Если на устройстве запущено несколько процессов OSPF, то необходимо указать и номер процесса с помощью команды «router ospf X», где X номер процесса, который мы задавали в конфигурационном файле «daemons».
MKSZ_Diamond_VPN_FW# configure terminal MKSZ_Diamond_VPN_FW(config)# router ospf MKSZ_Diamond_VPN_FW(config-router)#
Для получения справки по командам для заданного меню интепретатора необходимо выполнить команду «shift+?». Во всех разделах работает режим дополнения команды с помощью клавиши «tab». Для отмены команды необходимо поставить ключевую частицу «no» перед командой. Для выхода в предыдующее меню необходимо выполнить команду «exit».
После задания конфигурации в терминальном режиме необходимо сохранить настройки. Для сохранения настроек необходимо выполнить команду «write» в основном меню конфигурации. При выполнении команду «write» вся конфигурация записывается в конфигурационный файл «/media/storage/overlay/frr/frr.conf»
MKSZ_Diamond_VPN_FW#write Note: this version of vtysh never writes vtysh.conf Building Configuration... Integrated configuration saved to /etc/frr/frr.conf [OK]
Команда «ospf router-id X.X.X.X <ip subnet/network>» команда задает параметр «router-id» для заданного процесса OSPF.
Команда «network <ip_address> area <area_number> <ip subnet/network>» команда позволяет задать подсеть и указать зону для включения заданной подсети/интерфейса в процесс динамической маршрутизации протокола OSPF.
Команда «passive-interface <interface_name>» команда позволяет перевести интерфейс в пассивный режим, в котором интерфейс не принимает участие в процессе OSPF.
На рисунке ниже приведена схема сети и пример конфигурации протокола динамической маршрутизации OSPF для одного из устройств. После схемы приведен пример конфигурационного файла для данной схемы сети.
# vtysh Hello, this is FRRouting (version 7.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. MKSZ_Diamond_VPN_FW# configure terminal MKSZ_Diamond_VPN_FW(config)# router ospf MKSZ_Diamond_VPN_FW(config-router)# ospf router-id 1.1.1.1 MKSZ_Diamond_VPN_FW(config-router)# network 10.13.25.0/30 area 0 MKSZ_Diamond_VPN_FW(config-router)# network 172.25.64.0/28 area 0
Команда «redistribute» позволяет включить механизм редистрибуции маршрутной информации из других источников. Например, протокол RIP, BGP, EIGRP, KERNEL, STATIC.
Команда «default-information originate» позволяет включить механизм анонсирования маршрута по умолчанию другим устройствам в рамках протокола OSPF.
Для протокола OSPF поддерживается возможность задать параметру аутентификации в процессе установления состояния соседства и обменом маршрутной информации.
Команда «ip rip authentication mode md5» задается на сетевом интерфейсе и позволяет включить режим аутентификации MD5.
Команда «ip rip authentication mode text» задается на сетевом интерфейсе и позволяет включить режим аутентификации с простым паролем.
Команда «ip rip authentication string <clear_password>» задается на сетевом интерфейсе и позволяет задать пароль. Длина пароль не должна превышать 16 символов.
Команда «ip rip authentication key-chain <KEY-CHAIN>» задается на сетевом интерфейс и позволяет задать секретное слово.
Протокол динамической маршрутизации RIP имеет несколько таймеров. «Update timer» - временной интервал обновления маршрутной информации, значение по умолчанию 30 секунд. Каждые 30 секунд происходит рассылка маршрутной информации соседям. Обновление включает в себя таблицу маршрутизации целиком. «Timeout timer» - по истечении таймера неактивный маршрут удаляется из таблицы маршрутизации. Однако он сохраняется некоторое время, чтобы о неактивном маршрути узнали все соседи. Значение по умолчанию - 180 секунд. «Collect timer» - таймер отвечает за удаление мусорных маршрутов. По истечение времени неактивные маршруты полностью удаляются из таблицы маршрутизации. Значение по умолчанию - 120 секунд.
Команда «timers basic <UPDATE_time> <TIMEOUT_time> <GARBAGE_time>» позволяет изменить таймеры, которые влияют на механизмы обмены маршрутной информации. При выполнении команды необходимо задать три параметра для каждого из таймеров.
Команда «show ip ospf» позволяет вывести информацию об общих настройка для протокола OSPF и временных таймеров.
Команда «show ip ospf interface» позволяет вывести информацию о настройках для протокола OSPF для всех сетевых интерфейсов, который участвуют в процессе OSPF.
Команда «show ip ospf neighbor» позволяет вывести информацию об устройствах, с которыми установлено состояние соседства.
Команда «show ip ospf database» позволяет вывести информацию о базе данных с маршрутной информацией
Команда «show ip ospf route» позволяет вывести информацию о маршрутах, которые были получены по протоколу OSPF.
Команда «debug ospf event» при включении данного режима будет отображаться информация об отправленных и полученных пакетах, информация о временных таймерах и изменениях на сетевых интерфейсах.
Команда «debug ospf packet» при включении данного режима будет отображаться детальная информация обо всех пакетах процесса OSPF.
Команда «debug ospf nsm» при включении данного режима будет отображаться детальная информация об устройствах, с которыми установлено состояние соседства, в рамках протокола OSPF.
Команда «debug ospf zebra» при включении данного режима будет отображаться информация о взаимодействии процесса OSPF и основного процесса динамической маршрутизации, который включает в себя процесс добавления и удаления маршрутов, отправку и получение информации о сетевых интерфейсах.
Разберем на примере конфигурацию протокола OSPF. На схеме представлены 3 устройства МКСЗ «Diamond VPN/FW», на интерфейсах устройств заданы сетевые адреса и настроена сетевая связность между всеми устройствами. На устройстве 1, 2 и 3 настроен протокол динамической маршрутизации OSPF. Все необходимые данные представлены на схеме.
Для просмотра информации о протоколе и маршрутной информации необходимо подключиться к устройству по протоколу ssh и перейти в режим терминального подключения. Для перехода в режим терминального подключения необходимо выполнить команду «vtysh». Рассмотрим пример конфигурации на устройстве МКСЗ «Diamond VPN/FW» с номером «1» на схеме.
# vtysh Hello, this is FRRouting (version 7.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. MKSZ_Diamond_VPN_FW#
Для отображения состояния протокола динамической маршрутизации OSPF необходимо выполнить команду «show ip ospf».
MKSZ_Diamond_VPN_FW# sh ip ospf OSPF Routing Process, Router ID: 1.1.1.1 Supports only single TOS (TOS0) routes This implementation conforms to RFC2328 RFC1583Compatibility flag is disabled OpaqueCapability flag is disabled Initial SPF scheduling delay 0 millisec(s) Minimum hold time between consecutive SPFs 50 millisec(s) Maximum hold time between consecutive SPFs 5000 millisec(s) Hold time multiplier is currently 1 SPF algorithm last executed 1h00m46s ago Last SPF duration 46 usecs SPF timer is inactive LSA minimum interval 5000 msecs LSA minimum arrival 1000 msecs Write Multiplier set to 20 Refresh timer 10 secs Number of external LSA 0. Checksum Sum 0x00000000 Number of opaque AS LSA 0. Checksum Sum 0x00000000 Number of areas attached to this router: 1 Area ID: 0.0.0.0 (Backbone) Number of interfaces in this area: Total: 2, Active: 2 Number of fully adjacent neighbors in this area: 2 Area has no authentication SPF algorithm executed 9 times Number of LSA 6 Number of router LSA 3. Checksum Sum 0x0002688f Number of network LSA 3. Checksum Sum 0x00014248 Number of summary LSA 0. Checksum Sum 0x00000000 Number of ASBR summary LSA 0. Checksum Sum 0x00000000 Number of NSSA LSA 0. Checksum Sum 0x00000000 Number of opaque link LSA 0. Checksum Sum 0x00000000 Number of opaque area LSA 0. Checksum Sum 0x00000000
Для отображения информации о сетевых интерфейсах, которые принимают участие в процессе ospf, необходимо выполнить команду «show ip ospf interface».
MKSZ_Diamond_VPN_FW# show ip ospf interface eth3.32 is up ifindex 11, MTU 1500 bytes, BW 1000 Mbit <UP,BROADCAST,RUNNING,MULTICAST> Internet Address 172.25.64.1/28, Broadcast 172.25.64.15, Area 0.0.0.0 MTU mismatch detection: enabled Router ID 1.1.1.1, Network Type BROADCAST, Cost: 100 Transmit Delay is 1 sec, State Backup, Priority 1 Backup Designated Router (ID) 1.1.1.1, Interface Address 172.25.64.1 Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5 Hello due in 1.311s Neighbor Count is 1, Adjacent neighbor count is 1 eth4.95 is up ifindex 12, MTU 1500 bytes, BW 1000 Mbit <UP,BROADCAST,RUNNING,MULTICAST> Internet Address 10.13.25.1/30, Broadcast 10.13.25.3, Area 0.0.0.0 MTU mismatch detection: enabled Router ID 1.1.1.1, Network Type BROADCAST, Cost: 100 Transmit Delay is 1 sec, State Backup, Priority 1 Backup Designated Router (ID) 1.1.1.1, Interface Address 10.13.25.1 Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5 Hello due in 1.311s Neighbor Count is 1, Adjacent neighbor count is 1
Для отображения информации о соседстве с другими устройствами, необходимо выполнить команду «how ip ospf neighbor».
MKSZ_Diamond_VPN_FW# sh ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL 2.2.2.2 1 Full/DR 34.303s 10.13.25.2 eth4.95:10.13.25.1 0 0 0 3.3.3.3 1 Full/DR 30.521s 172.25.64.2 eth3.32:172.25.64.1 0 0 0
Для отображения информации о текущей конфигурации протокола динамической маршрутизации OSPF необходимо выполнить команду «sh running-config».
MKSZ_Diamond_VPN_FW# sh running-config Building configuration... Current configuration: ! frr version 7.4 frr defaults traditional hostname vpnfw log file /var/log/frr/frr.log --------------> настройка журналирования log syslog informational no ipv6 forwarding hostname Diamond_utm_4_stend_5 service integrated-vtysh-config ! interface eth3 ip ospf network point-to-point --------------> настройка типа сети ! interface eth4.95 ip ospf authentication-key 123 --------------> настройка параметров аутентификации ! router ospf --------------| ospf router-id 1.1.1.1 | ---> настройка протокола OSPF network 10.13.25.0/30 area 0 | network 172.25.64.0/28 area 0 --------------| ! line vty ! end
Для просмотра информации о маршрутах в терминальном режиме необходимо выполнить команду «sh ip ospf route».
MKSZ_Diamond_VPN_FW# sh ip ospf route ============ OSPF network routing table ============ N 10.13.25.0/30 [100] area: 0.0.0.0 directly attached to eth4.95 N 10.16.199.0/24 [10100] area: 0.0.0.0 via 172.25.64.2, eth3.32 N 10.250.13.0/24 [10100] area: 0.0.0.0 via 10.13.25.2, eth4.95 N 172.16.134.0/26 [200] area: 0.0.0.0 via 10.13.25.2, eth4.95 via 172.25.64.2, eth3.32 N 172.25.64.0/28 [100] area: 0.0.0.0 directly attached to eth3.32 N 172.31.25.0/24 [10100] area: 0.0.0.0 via 172.25.64.2, eth3.32 N 192.168.201.0/24 [10100] area: 0.0.0.0 via 10.13.25.2, eth4.95 ============ OSPF router routing table ============= ============ OSPF external routing table ===========
Также информация о маршрутах доступна при подключении по консоли. Для отображения информации о маршрутах необходимо выполнить команду «ip route». Маршруты, которые были получены по протоколу «ospf», отмечены меткой «ospf». Обратите внимание, что если подсеть назначения будет доступна через несколько одинаковых с точки зрения протокола OSPF маршрутов, то в таблицу маршрутизации будет добавлен маршрут через несколько путей.
# ip route default via 10.10.100.1 dev eth1 10.2.2.0/24 via 10.10.101.241 dev eth1 10.10.5.0/30 dev eth3 proto kernel scope link src 10.10.5.2 10.10.100.0/22 dev eth1 proto kernel scope link src 10.10.102.12 10.13.25.0/30 dev eth4.95 proto kernel scope link src 10.13.25.1 10.16.199.0/24 via 172.25.64.2 dev eth3.32 proto ospf metric 20 10.250.13.0/24 via 10.13.25.2 dev eth4.95 proto ospf metric 20 172.16.134.0/26 proto ospf metric 20 nexthop via 10.13.25.2 dev eth4.95 weight 1 nexthop via 172.25.64.2 dev eth3.32 weight 1 172.25.64.0/28 dev eth3.32 proto kernel scope link src 172.25.64.1 172.31.25.0/24 via 172.25.64.2 dev eth3.32 proto ospf metric 20 192.168.201.0/24 via 10.13.25.2 dev eth4.95 proto ospf metric 20
Для отображения информации о маршрутах, которые были получены только по протоколу «ospf», необходимо выполнить команду «ip route | grep ospf».
# ip route | grep ospf 10.16.199.0/24 via 172.25.64.2 dev eth3.32 proto ospf metric 20 10.250.13.0/24 via 10.13.25.2 dev eth4.95 proto ospf metric 20 172.16.134.0/26 proto ospf metric 20 172.31.25.0/24 via 172.25.64.2 dev eth3.32 proto ospf metric 20 192.168.201.0/24 via 10.13.25.2 dev eth4.95 proto ospf metric 20