Главная > Телекоммуникация, сети > Совместная работа протокола OSPF на SecurePlatform Pro и Windows

Совместная работа протокола OSPF на SecurePlatform Pro и Windows

SecurePlatform OSPF и Windows OSPFВ предыдущем посте я привел общую информацию о протоколах динамической маршрутизации OSPF и RIP. Теперь попробую на практике подружить два маршрутизатора по протоколу OSPF. Первый маршрутизатор — это SecurePlatform Pro, второй — Windows Server 2003.

Сразу нужно отметить, что компания Microsoft прекратила поддержку протокола OSPF начиная с версии Windows Server 2008. Это связано, скорее всего, с тем, что у администраторов потребность в OSPF под Windows возникает редко, но метко :) Альтернативных решений, которые реализовывали бы работу протокола OSPF под Windows Server 2008 и 2008 R2, я не нашел. Если кто-то знает о таких решениях — сообщите мне.

Все готово, можно начинать…

Грабли с OSPF Link-Local Signaling (RFC 4813)

Итак, для конфигурирования OSPF и вообще любого другого протокола динамической маршрутизации используется команда router в консоли SecurePlatform:

router               — Configure Dynamic Routing

Информация по конфигурированию подробно изложена в официальной документации SecurePlatform Pro™ & Advanced Routing Command Line Interface. Но, если вы хотите заставить работать маршрутизатор Windows и маршрутизатор SecurePlatform по протоколу OSPF, не стоит тратить время. Дело в том, что при конфигурировании OSPF командой router, исходящие OSPF-пакеты содержат блок «OSPF LLS Data Block». Windows не понимает пакеты с таким блоком и сразу их реджектит, записывая при этом в журнале событий следующее:

Event Type:    Error
Event Source:    OSPF
Event Category:    None
Event ID:    120
Date:        10/13/2009
Time:        3:52:05 PM
User:        N/A
Computer:    NEWFW
Description:
Rejected an OSPF packet from 10.10.3.5 to 224.0.0.5 because the OSPF data length in the OSPF header was 48 but the length calculated from the IP Header fields was 60.

Я создавал темы на форумах TechNet и CPUG, но ответа никто так и не дал. Но не все так плохо, решение есть, оно заключается в реализации работы OSPF протокола средствами предустановленной Zebra на SecurePlatform.

Задействую Zebra на SecurePlatform

Check Point

Для работы мне потребуется консоль SecurePlatform и эксперт-режим.

Если вы выполняли какие-то настройки OSPF конадой router и сохраняли их (write memory), по умолчанию, в файл /etc/gated.ami. Я рекомендую удалить его rm /etc/gated.ami.

Теперь активирую предустановленный сервис ZEBRA и сервис OSPF.

Открываю файл (я использую редактор vi) /etc/rc.d/init.d/zebra, заменяю блок в двух местах

# Initial configuration values
ZEBRA=0
OSPF=0
BGP=0
RIP=0

на

# Initial configuration values
ZEBRA=1
OSPF=1
BGP=0
RIP=0

Далее, редактирую файл /etc/zebra/daemons.conf, заменяю блок

ZEBRA=0
OSPF=0
BGP=0
RIP=0

ZEBCONFFILE=/etc/zebra/zebra.conf
RIPDCONFFILE=/etc/zebra/ripd.conf
OSPFDCONFFILE=/etc/zebra/ospfd.conf
BGPDCONFFILE=/etc/zebra/bgpd.conf

BGPDOPTS=» -d -P 0″
OSPFDOPTS=» -d -P 0″
RIPDOPTS=» -d -P 0″
ZEBRADOPTS=» -d -P 0″

на

ZEBRA=1
OSPF=1

BGP=0
RIP=0

ZEBCONFFILE=/etc/zebra/zebra.conf
RIPDCONFFILE=/etc/zebra/ripd.conf
OSPFDCONFFILE=/etc/zebra/ospfd.conf
BGPDCONFFILE=/etc/zebra/bgpd.conf

BGPDOPTS=» -d -P 0″
OSPFDOPTS=» -d -P 2604″
RIPDOPTS=» -d -P 0″
ZEBRADOPTS=» -d -P 2601″

2601 — порт для подключения к ZEBRA. 2604 — порт (OSPFD) для подключения и управления работой протокола OSPF.

Далее добавляем в файл /etc/zebra/zebra.conf следующие строки:

password zebra
enable password zebra

Далее добавляем в файл /etc/zebra/ospfd.conf следующие строки:

password zebra

Разумеется, пароль zebra можно заменить на что-то более сложное.

Запускаем Zebra Routing Daemon и OSPFD:

[Expert@cpmodule]# /etc/rc.d/init.d/zebra start
Starting Zebra Routing Daemon                              [  OK  ]
Starting OSFPD                                             [  OK  ]
[Expert@cpmodule]#

Готово, теперь можно при помощи telnet подключиться к порту 2604 и настроить протокол OSPF.

Check Point

Если по каким-то причинам вас не пускает на порт 2604, то проверьте правила в SmartDashboard.

Теперь остается правильно настроить OSPF протокол. Правильная документация находится на сайте Zebra zebra.org и сайте Quagga quagga.net. Я приведу минимальную настройку:

Hello, this is zebra (version 0.93b).
Copyright 1996-2002 Kunihiro Ishiguro.
User Access Verification

Password:
cpmodule>
cpmodule> en   //Полная команда: enable — включает привилегированный режим команд
cpmodule#
cpmodule# conf t   //Полная команда: configure terminal — режим конфигурирования
cpmodule(config)#
cpmodule(config)# access-list 1 permit 192.168.1.0 0.0.0.255   //Создаю список доступа с идентификатором 1, который будет разрешать адреса из сети 192.168.1.0/24. Обратите внимание на запись 0.0.0.255 — это Wildcard bits, инвертированная маска подсети.
cpmodule(config)#
cpmodule(config)# router ospf   //Начинаю конфигурировать общие параметры протокола OSPF
cpmodule(config-router)#
cpmodule(config-router)# ospf router-id 192.168.1.1   //Задаю идентификатор маршрутизатора
cpmodule(config-router)#
cpmodule(config-router)# redistribute connected   //Экспортирую, т.е. передаю по OSPF маршруты всех подключенных сетевых интерфейсов
cpmodule(config-router)#
cpmodule(config-router)# network 192.168.1.0/24 area 0   //Задаю сеть, где будет работать OSPF протокол. Если IP-адрес сетевого интерфейса попадает в данную сеть, то на нем автоматически поднимается OSPF протокол.
cpmodule(config-router)#
cpmodule(config-router)# area 0 authentication   //Для зоны 0.0.0.0 требуется авторизация
cpmodule(config-router)#
cpmodule(config-router)# distribute-list 1 out connected   //Ограничиваю экспорт маршрутов, например, для того чтобы не передавались маршруты интерфейса на котором установлена лицензия Check Point.
cpmodule(config-router)#
cpmodule(config-router)# exit
cpmodule(config)#
cpmodule(config)# interface eth0   //Конфигурирую параметры OSPF для сетевого интерфейса
cpmodule(config-if)#
cpmodule(config-if)# ip ospf authentication-key 123   //Простая simple password авторизация, пароль: 123
cpmodule(config-if)#
cpmodule(config-if)# ip ospf cost 2   //Стоимость маршрута
cpmodule(config-if)#
cpmodule(config-if)# exit
cpmodule(config)#
cpmodule(config)# exit
cpmodule#
cpmodule# write memory   //Записать настройки в конфигурационный файл
Configuration saved to /etc/zebra/ospfd.conf
cpmodule#
cpmodule# sh run   //Просмотреть текущие настройки. show run — полная команда.

Current configuration:
!
password zebra
!
!
!
interface lo
!
interface eth0
 ip ospf authentication-key 123
 ip ospf cost 2
!
interface loop00
!
router ospf
 ospf router-id 192.168.1.1
 redistribute connected
 network 192.168.1.0/24 area 0
 area 0 authentication
 distribute-list 1 out connected
!
access-list 1 permit 192.168.1.0 0.0.0.255
!
line vty
!
end
cpmodule#
cpmodule#

На этом конфигурирование OSPF завершено. Теперь SecurePlatform будет отправлять на multicast адреса 224.0.0.5 и 224.0.0.6 пакеты OSPF без блока «OSPF LLS Data Block». Для правильной работы создайте на Check Point правила, которые будут пропускать OSPF пакеты из одной сети в другую.

Настройка OSPF на Windows Server 2003

Тут все проще. Заходим в оснастку «Маршрутизация и удаленный доступ«, запускаем сервис маршрутизации и добавляем OSPF протокол, в раздел OSPF добавляем сетевые интерфейсы.

Документация по подробной настройке OSPF под Windows Server 2003 находится тут: technet.microsoft.com

(с) Denis Urasov