Назад | Перейти на главную страницу

OSPF: как анонсировать подсеть сервера OpenVPN?

Я успешно настроил OSPF на всех наших маршрутизаторах HP ProCurve 7102 и большинстве наших внутренних маршрутизаторов Linux. Маршруты рекламируются, и все выглядит красиво.

За исключением маршрутов в подсети, обрабатываемых различными службами OpenVPN и другими VPN-соединениями в компании. Обратите внимание на картинку ниже, на которой изображена часть сети компании:

Красные стрелки - это VPN-подключения. Синяя область внизу показывает область OSPF 0 (магистраль), которая включает маршрутизаторы во всех других офисах. Розовая область изображает зону OSPF 177 для одного из наших офисов. Оранжевый прямоугольник - это рассматриваемая сеть OpenVPN, размещенная на маршрутизаторе Linux, обозначенном синим значком со стрелками.

Подсеть 10.177.0.0/16 правильно объявляется для всех других областей OSPF. Однако, несмотря на то, что сеть 10.180.1.0/24 включена в конфигурацию OSPF, а интерфейс tun0 включен в область 177 (как пассивный интерфейс), эта подсеть не объявляется.

Это потому, что это на самом деле внешний маршрут? Если да, как я могу сказать демону OSPF прорекламировать этот маршрут?

Первая мысль, которая приходит в голову, заключается в том, что вам необходимо перераспределить маршруты ядра в дополнение к подключенным маршрутам в Quagga / Zebra OSPF. Поскольку OpenVPN добавляет маршруты самостоятельно, Zebra не будет перераспределять их, если в вашей конфигурации есть только «перераспределение статических».

Я тоже использую OpenVPN в среде OSPF, и все перераспределяется нормально.

Примечание: вам может потребоваться добавить некоторые фильтры списка перераспределения, чтобы предотвратить перераспределение других маршрутов ядра, которые не следует рекламировать.

Другой вариант - добавить статический маршрут в Zebra для 10.180.1.0/24, обнуляющегося или устройства обратной связи.

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

В моем случае решение состоит в том, чтобы поместить сеть OpenVPN в другую область OSPF, а затем использовать изящный трюк, состоящий в замене префикса / 32, связанного с адресом конечной точки сервера, на префикс подсети / 24. например

192.168.22.0/24 - это подсеть OpenvVPN на моем сервере OpenVPN FreeBSD 10.3-PRERELEASE.

В openvpn.conf:

dev tun
server 192.168.22.0 255.255.255.0

При запуске OpenVPN интерфейс tun0 имеет следующую конфигурацию:

munchkin# ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
    options=80000<LINKSTATE>
    inet6 fe80::222:15ff:fe4b:7e10%tun0 prefixlen 64 scopeid 0x1c 
    inet 192.168.22.1 --> 192.168.22.2 netmask 0xffffffff 
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
    Opened by PID 2746

В ospfd.conf:

router ospf
...
network 192.168.11.0/24 area 0.0.0.0
network 192.168.22.0/24 area 0.0.0.1
area 0.0.0.1 range 192.168.22.1/32 substitute 192.168.22.0/24

OSPF объявляет 192.168.22.0/24 вместо 192.168.22.1/32.

N.B. Это работает только через границу области.