Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Два провайдера и openvpn клиент

    Scheduled Pinned Locked Moved Russian
    96 Posts 7 Posters 20.7k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • werterW Offline
      werter
      last edited by werter

      Добрый.

      Сам попросил - сам осилил )

      Собственно, настройка OSPF, используя пакет FRR.
      Имеется Головной офис с неск-кими WAN. Имеется клиент, к-ый подключен по OpenVPN к этому офису. Задача обеспечить минимальное время простоя этой связки.

      Создаем и настраиваем P2P Shared key Openvpn серверы и клиенты (если ранее не использовалось). В строках Remote Subnet, Local Subnet ничего не пишем! Проверяем, что VPN-линки поднялись.
      Разрешаем OSPF в fw во вкладке OpenVPN на сервере и клиенте. Ставим это правило самым первым.
      Устанавливаем и на сервере и на клиенте пакет FRR.

      Далее ниже на картинках:

      1 Firewall Rules OpenVPN.png 2 FRR Global Settings client.png 2 FRR Global Settings server.png 3 OSPF Setting.png 4 OSPF Interfaces Edit.png 5 OSPF Interfaces LAN passive.png 6 OSPF Interfaces.png

      Теперь самое интересное.
      Как выдать OSPF-клиенту маршрут в сеть ЗА сервером (напр., в сеть, к -ая подключена по VPN к серверу) или наоборот?
      Долго перебирал варианты. Пока не наткнулся на https://forum.netgate.com/topic/144153/frr-ospf-distribute-route-for-openvpn-interface/
      Делаем так. В FRR Global Settings на сервере в самом низу в Subnet пишем адрес сети, путь к к-ой хотим по OSPF выдать клиенту.
      НО, маску пишем не ту, к-ая у вас изначально, а перекрывающую ее. Напр., вам надо выдать клиенту по OSPF путь в сеть 192.168.1.0/24 за сервером.
      Для этого пишем в Subnet на сервере 192.168.0.0/23 и в Static Route Target выбираем Interface:Localhost. В топике по ссылке выше
      объяснено почему (FreeBSD only supports one route per matching network so your FRR static route wouldn't stick
      because FreeBSD already has a route in its kernel routing table for the same network. Using a supernet works because
      that route doesn't already exist in your routing table.) И правила fw на клиенте\сервере поправить по ситуации не забываем.

      OSPF Neighbors
      Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
      10.0.0.1 1 Full/DROther 16.819s 10.0.4.1 ovpnc2:10.0.4.2 0 0 0
      10.0.0.1 1 Full/DROther 16.834s 10.0.4.5 ovpnc3:10.0.4.6 0 0 0

      OSPF network routing table
      ============ OSPF network routing table ============
      N 10.0.0.0/24 [20] area: 0.0.0.0
      via 10.0.4.1, ovpnc2
      N 10.0.1.0/24 [10] area: 0.0.0.0
      directly attached to vtnet1

      ============ OSPF router routing table =============
      R 10.0.0.1 [10] area: 0.0.0.0, ASBR
      via 10.0.4.1, ovpnc2

      ============ OSPF external routing table ===========
      N E2 192.168.100.0/28 [10/20] tag: 0
      via 10.0.4.1, ovpnc2
      N E2 192.168.101.0/28 [10/20] tag: 0
      via 10.0.4.1, ovpnc2

      Зы. Насчет скорости переключения в случае пропадания\появления одного из каналов. Это происходит не мгновенно. За это отвечают параметры Retransmit Interval, Hello Interval, Dead Interval в настройках OSPF Interface. По умолчанию это ~50 сек ( Hello Interval 10 сек + Dead Interval 40 сек - соотношение 1:4) Крутите их, если надо быстрее\медленнее.

      P 1 Reply Last reply Reply Quote 1
      • P Offline
        pigbrother @werter
        last edited by

        @werter Спасибо.
        Если можно, пару вопросов:

        1. Почему FRR, а не Quagga?
          2.Почему P2P Shared key? Для простоты? Будет ли работать с PKI?
        1 Reply Last reply Reply Quote 0
        • werterW Offline
          werter
          last edited by werter

          Добрый.

          1. Пакет FRR новее. Пакет Quagga не обновляется с февраля 19-го
          2. P2P с сертификатом должен работать. Пробуйте.
          P 1 Reply Last reply Reply Quote 0
          • P Offline
            pigbrother @werter
            last edited by

            @werter
            Смущает этот костыль:

            @werter said in Два провайдера и openvpn клиент:

            НО, маску пишем не ту, к-ая у вас изначально, а перекрывающую ее. Напр., вам надо выдать клиенту по OSPF путь в сеть 192.168.1.0/24 за сервером.

            1 Reply Last reply Reply Quote 0
            • werterW Offline
              werter
              last edited by werter

              @pigbrother
              Ответ описан выше (со ссылкой).

              FreeBSD only supports one route per matching network so your FRR static route wouldn't stick
              because FreeBSD already has a route in its kernel routing table for the same network. Using a supernet works because
              that route doesn't already exist in your routing table

              P 1 Reply Last reply Reply Quote 0
              • P Offline
                pigbrother @werter
                last edited by

                @werter said in Два провайдера и openvpn клиент:

                Ответ описан выше (со ссылкой).

                Поверьте, я его прочитал когда пост был опубликован.

                1 Reply Last reply Reply Quote 0
                • werterW Offline
                  werter
                  last edited by

                  @pigbrother
                  Возможно, что как-то это решается с пом. настроек FRR. Но моей компетенции не хватает (
                  Может вы или @rubic осилите.

                  1 Reply Last reply Reply Quote 0
                  • werterW Offline
                    werter
                    last edited by

                    @El_Ninio
                    Ув. ТС.
                    Могли бы Вы переименовать этот топик во что-то аля "Настройка OpenVPN + OSPF + Mikrotik"
                    Заранее благодарен )

                    1 Reply Last reply Reply Quote 0
                    • werterW Offline
                      werter
                      last edited by werter

                      Добрый.
                      Дополню. Настроил openvpn + ospf для всех своих Филиалов.
                      Пример работы:

                      ospf test.png

                      Был вопрос в том, как организовать выдачу Филиалам маршрута в сеть Головного офиса через ospf. Для себя нашел 2 варианта. Это или засунуть все Филиалы в одну Area c Головным (спорное решение в моем случае) или отдельные Area для каждого Филиала + Static route в сеть Головного офиса . Решил сделать по 2-му варианту (и не забываем про перекрывающую маску в Static route для Головной сети )

                      Зы. В процессе настройки набрел на статью www.opennet.ru/base/net/ospf_over_gre.txt.html . Почерпнул в ней, что если стоимость\вес (Cost) ospf-интерфейсов одинаков, то будет некое подобие load balancing. И что параметр mtu-ignore может помочь при разных mtu на концах туннеля (adsl <-> usb 4G, ethernet <->adsl, криворукие одмины провайдера <-> вы)

                      Также обнаружил интересный проект BSD Router Project (BSDRP)

                      The main goal of BSDRP is not firewalling but routing

                      bsdrp.net/features
                      bsdrp.net/documentation/faq
                      Пример bsdrp.net/documentation/examples/simple_bgp-rip-ospf_lab

                      Исходный код открыт. Вот бы пакет для пф на его основе создали )

                      R 1 Reply Last reply Reply Quote 0
                      • R Offline
                        rubic @werter
                        last edited by

                        @werter said in Два провайдера и openvpn клиент:

                        Зы. В процессе настройки набрел на статью www.opennet.ru/base/net/ospf_over_gre.txt.html . Почерпнул в ней, что если стоимость\вес (Cost) ospf-интерфейсов одинаков, то будет некое подобие load balancing.

                        Не взлетит на pfSense, думаю. Два маршрута в одну сеть невозможны, метрик нет, multipath не работает

                        1 Reply Last reply Reply Quote 0
                        • P Offline
                          pigbrother
                          last edited by pigbrother

                          @rubic
                          @werter
                          А будет ли работать с PF с поднятым OSPF клиент, на котором обычный клиент Open VPN?

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.