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

    OpenVPN PSK: Site-to-Site инструкция для обсуждения

    Scheduled Pinned Locked Moved Russian
    180 Posts 32 Posters 102.3k Views
    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.
    • R
      rubic
      last edited by rubic

      OSPF

      Вот. Возвращаясь к предыдущему посту, можно ли сделать связь между офисами без всех этих Remote Networks и route? А как же!
      Более того, можно еще и обеспечить резервирование канала, и поможет нам в этом OSPF.

      OSPF - это когда, коротко говоря, есть граф, вершинами которого являются маршрутизаторы, а ребрами - линки между ними. OSPF, глядя на граф, может найти оптимальный маршрут между двумя маршрутизаторами. При этом он учитывает то, что какие-то линки могут быть упавшими. Остальное - в документации.

      img18.png

      Есть psSense1 головного офиса, у которого 2 канала в интернет: WAN1 - 192.0.2.2 и WAN2 - 198.51.100.2. Есть филиал с единственным каналом в интернет: WAN - 203.0.113.2.

      В головном офисе настроено 2 экземпляра сервера OpenVPN:

      OVPNS1 на WAN1:1194, Tunnel Network 10.0.8.0/24
      OVPNS2 на WAN2:1195, Tunnel Network 10.0.9.0/24

      В филиале настроено 2 клиента OpenVPN:

      OVPNS1 на 192.0.2.2:1194, Tunnel Network 10.0.8.0/24
      OVPNS2 на 198.51.100.2:1195, Tunnel Network 10.0.9.0/24

      Ни в головном офисе, ни в филиале на серверах и клиентах не прописаны ни Remote Network, ни какие-либо route.

      Филиал хочет при падении одного из каналов в головном офисе автоматически переключаться на другой, компы офиса и филиала должны видеть друг-друга.

      Ставим и в офисе и в филиале  (System -> Packages, вкладка Available Packages) пакет Quagga OSPF. В первую очередь необходимо настроить интерфейсы, на которых будет работать OSPF (Services -> Quagga OSPFd, вкладка Interface Settings) "+" добавляем интерфейсы.

      В головном офисе:

      первый интерфейс - OVPNS1:

      img19.png

      второй интерфейс - OVPNS2:

      img20.png

      И основные параметры OSPF (вкладка Global Settings):

      img21.png

      В филиале:

      первый интерфейс - OVPNC1:

      img22.png

      второй интерфейс - OVPNC2:

      img23.png

      И основные параметры:

      img24.png

      Area везде одна: 1.1.1.1, а Router ID - разные в офисе и филиале (я просто взял их публичные IP). Для наших нужд и там и там можно писать что попало, хотя знатоки OSPF будут смеяться.
      Галка Redistribute connected subnets заставляет роутеры обмениваться информацией о подключенных к ним сетям, т.е. маршрутами в эти сети, что нам и нужно. При этом внизу в Disable Redistribution прописаны сети, инфой о которых делиться не надо. Во-первых, наши 2 pfSense и так уже в курсе об этих сетях, во-вторых возможны чудеса, так что лучше не рисковать.

      После того как OSPF настроен и в офисе и в филиале, роутеры устанавливают отношение соседства (все скрины из филиала):

      img25.png

      И получают друг у друга маршруты:

      img26.png

      Видим, что филиал теперь знает путь в локалку головного офиса:

      img27.png

      У линка OVPNS1 - OVPNC1 метрика меньше чем у OVPNS2 - OVPNC2 поэтому все идет сейчас через него. Но если линк оборвать в головном офисе (отключить WAN1), то маршрутизаторы по оставшемуся линку посредством OSPF договорятся, что линк упал и перестроят таблицы. Все пойдет по OVPNS2 - OVPNC2. Это довольно быстро происходит, пропадает буквально один пинг))

      1 Reply Last reply Reply Quote 0
      • V
        vibperson
        last edited by

        Спасибо за руководство!
        Попробовал настроить всё как у вас
        Виртуал сеть 10.0.8.0/24
        Сеть сервера овпн 10.10.10.0/24
        Сеть клиента овпн 192.168.61.0/24

        Сервер находится в рабочей сети тоже на виртуалке (ван по дхсп от роутера, на лан статик ип)
        Клиент находится на виртуалке вмваре на моем пк (только ван интерфэйс с дхсп)
        Подключение проходит нормально, но пинга так и нет (пробовал из консоли виртуалки)

        Вот скриншоты диагностики маршрутизации

        Сервер

        Клиент

        1 Reply Last reply Reply Quote 0
        • ?
          A Former User
          last edited by

          Красота, молодец! Только еще додумать надо как инет пустить туда ;)

          1 Reply Last reply Reply Quote 0
          • D
            dvserg
            last edited by

            Поле сервера Local Network не заполнено.

            SquidGuardDoc EN  RU Tutorial
            Localization ru_PFSense

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

              @vibperson:

              Спасибо за руководство!
              Попробовал настроить всё как у вас
              Виртуал сеть 10.0.8.0/24
              Сеть сервера овпн 10.10.10.0/24
              Сеть клиента овпн 192.168.61.0/24

              Сервер находится в рабочей сети тоже на виртуалке (ван по дхсп от роутера, на лан статик ип)
              Клиент находится на виртуалке вмваре на моем пк (только ван интерфэйс с дхсп)
              Подключение проходит нормально, но пинга так и нет (пробовал из консоли виртуалки)

              Вот скриншоты диагностики маршрутизации

              Сервер

              Какая-то муть с OpenVPN на сервере (на клиенте все OK). Точно на сервере Tunnel Network 10.0.8.0/24?
              Вот так по идее должно быть:

              img9.png

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

                @Bansardo:

                Красота, молодец! Только еще додумать надо как инет пустить туда ;)

                Для того, чтобы филиал выходил в интернет через головной офис, нужно пустить весь трафик, идущий из LAN филиала в интернет, через туннель. Сделать это можно только назначив этому трафику новый gateway. Но, так как gateway в pfSense назначаются только интерфейсам, нужно объявить интерфейс OpenVPN в pfSense явно:

                На клиенте идем в Interfaces -> (assign), жмем "+" и выбираем ovpnc1

                img10.png

                Жмем "Save", переходим в Interfaces -> OPT1 и ставим галку в Enable Interface.

                img11.png

                Даем новому интерфейсу имя, больше ничего не меняем. Жмем "Save" - "Apply changes", идем в VPN -> OpenVPN на вкладку Client и жмем "е" для редактирования клиента. Ничего не меняем, посто жмем "Save" внизу, чтобы перезапустить туннель.
                Теперь в Status -> Gateways должна наблюдаться такая картина:

                img12.png

                Если в System -> General Setup прописан какой-то левый DNS сервер, то его тоже надо пустить через новый gateway:
                img13.png

                Переходим в Firewall -> Rules на вкладку LAN и приводим правила к такому виду:

                img14.png

                То есть дефолтному правилу мы назначили новый gateway, а над дефолтным сделали еще правило для доступа из LAN к DNS Forwarder'у pfSense, иначе бы эти запросы полетели в новый gateway т.е. в никуда.

                На этом настройка клиента с некоторыми оговорками закончена.

                На сервере (т.е. в головном офисе) заходим в Firewall -> NAT на вкладку Outbound и если стоит  Automatic outbound NAT rule generation, то переводим в Manual и сохраняем. Добавляем правило:

                img15.png

                Где 192.168.20.0/24 - локальная сеть клиента (т.е. филиала).

                На этом все, компы филиала выходят в интернет через головной офис.

                Если на pfSense филиала изначально интернета нет, а просто провайдер дал вам виртуальный канал для связи с головным офисом и вы в этом канале сделали еще канал OpenVPN, то сам pfSense филиала при таких настройках в интернет (например за пакетами или обновлениями) не попадет. Чтобы он тоже ходил в интернет через туннель заходим на нем в Firewall -> Rules на вкладку Floating и добавляем правило:

                img16.png

                Здесь 192.0.2.2 - WAN адрес головного офиса, остальное должно быть точно как на картинке. Это правило заворачивает трафик самого pfSense филиала в туннель и он попадает в головной офис. Там его еще нужно проNATить. На pfSense головного офиса опять заходим в Firewall -> NAT на вкладку Outbound и создаем правило:

                img17.png

                Где 203.0.113.2  - WAN адрес филиала. Но pfSense головного офиса так же не знает что ответные пакеты на WAN адрес филиала теперь нужно посылать через туннель. Заходим на нем в свойства OpenVPN сервера и в Advanced пишем route 203.0.113.2 255.255.255.255.

                Это все. Если кто-нибудь скажет мне, что это не работает, пусть будет готов запостить столько же скриншотов, сколько я

                1 Reply Last reply Reply Quote 0
                • ?
                  A Former User
                  last edited by

                  Сегодня протестирую дополнение!

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User
                    last edited by

                    @dvserg:

                    Поле сервера Local Network не заполнено.

                    Оно не должно быть заполнено для Shared VPN

                    1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User
                      last edited by

                      Так, вобщем после тго как я прописал в генерале ДНС, интернет появился на ван интерфейсе и на виртуальном интерфейсе… с лан не хочет пинговать... в чем тут дело?
                      Плюс сейчас нарвался на подвисания веб интерфейса... интернета так и нет...
                      Более того, пошли какието непонятки на сервере... ничего в адвансед не написано а в логах сразу
                      openvpn[48071]: ERROR: FreeBSD route add command failed: external program exited with error status: 1
                      статус канал не пишет, в табличке заполнена только первая срочка… не могу понять что творится

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

                        Обновил 3 пост топика OSPF!

                        1 Reply Last reply Reply Quote 0
                        • D
                          dvserg
                          last edited by

                          @rubic:

                          Обновил 3 пост топика OSPF!

                          Спасибо за развернутый мануал.

                          SquidGuardDoc EN  RU Tutorial
                          Localization ru_PFSense

                          1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User
                            last edited by

                            http://forum.pfsense.org/index.php/topic,58764.msg316116.html#msg316116
                            Вот так вот подвисло все

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

                              @dvserg:

                              Спасибо за развернутый мануал.

                              Не поверишь, но у меня нет в продакшене ни ovpn, ни ospf. Просто самому стало интересно и вопросы эти в последнее время как-то часто стали вставать в сообшестве.
                              Если можно, закрепи тему вверху или в FAQ. Чую не раз еще к этому вернемся))

                              1 Reply Last reply Reply Quote 0
                              • D
                                dvserg
                                last edited by

                                @rubic:

                                @dvserg:

                                Спасибо за развернутый мануал.

                                Не поверишь, но у меня нет в продакшене ни ovpn, ни ospf. Просто самому стало интересно и вопросы эти в последнее время как-то часто стали вставать в сообшестве.
                                Если можно, закрепи тему вверху или в FAQ. Чую не раз еще к этому вернемся))

                                Уже в FAQ. Аналогично, хотелось заняться этой темой, но времени катастрофически не хватает.

                                SquidGuardDoc EN  RU Tutorial
                                Localization ru_PFSense

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

                                  @dvserg:

                                  @rubic:

                                  @dvserg:

                                  Спасибо за развернутый мануал.

                                  Не поверишь, но у меня нет в продакшене ни ovpn, ни ospf. Просто самому стало интересно и вопросы эти в последнее время как-то часто стали вставать в сообшестве.
                                  Если можно, закрепи тему вверху или в FAQ. Чую не раз еще к этому вернемся))

                                  Уже в FAQ. Аналогично, хотелось заняться этой темой, но времени катастрофически не хватает.

                                  О! Спасиб! Из-за такой зарплаты что ли у меня времени вагон? Надо пересмотреть приоритеты))

                                  1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User
                                    last edited by

                                    Инструкция и правда очень хорошая, счас ее протестим на все и будет серьезный мануал!

                                    1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User
                                      last edited by

                                      @rubic:

                                      Переходим в Firewall -> Rules на вкладку LAN и приводим правила к такому виду:

                                      То есть дефолтному правилу мы назначили новый gateway, а над дефолтным сделали еще правило для доступа из LAN к DNS Forwarder'у pfSense, иначе бы эти запросы полетели в новый gateway т.е. в никуда.

                                      Этого я не пойму, как антилок по дефолту вынести из фаервола?
                                      У меня на виртуальном интерфейсе интернет есть, а вот на лане и на ване нету…
                                      Ping output:
                                      PING www.ru (194.87.0.50) from 192.168.1.10: 56 data bytes

                                      --- www.ru ping statistics ---
                                      3 packets transmitted, 0 packets received, 100.0% packet loss

                                      Плюс, если не прописать в генерале днс по дефолту, то ничего не получится даже на интерфейса виртуальном у клиента

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

                                        Пока объяснял уже сам все понял. Дела… Сегодня заставил наконец бегать OSPF по OpenVPN между работой и домашним микротиком. Полгода назад неделю на это убил безрезультатно. Пришлось править quagga_ospfd.inc

                                        1 Reply Last reply Reply Quote 0
                                        • ?
                                          A Former User
                                          last edited by

                                          короче счас все опишу что творится ) погодите
                                          Клиент:






                                          Сервер:




                                          Творится следующее:
                                          На клиентской части сам пфсенс в нет невыходит (я немогу смотреть пакеты)
                                          Со стороны клиента подсеть не может выйти в интернет…
                                          ДНС сервера не выдаются...

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

                                            На сервере Outbound NAT для 192.168.1.0/24 интерфейс не VPN, а PPPOE должен быть.

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