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

    DHCP + PPTP on WAN

    Scheduled Pinned Locked Moved Russian
    402 Posts 58 Posters 460.0k 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.
    • X
      xaoc
      last edited by

      "Если вдруг, вы увидите, что default gateway не поменялся на "белый", а остался от модема, его можно переназначить в System->Routes. (выбираем default gateway для OPT1)" а кто подскажет как зделать чтобы он менялся сам ?

      1 Reply Last reply Reply Quote 0
      • T
        TheRaven
        last edited by

        Прошу прощения если пропустил, но судя из последних страниц на последнем стабле pFsense так и не удалось реализовать стабильные DHCP+PPTP(L2TP) из коробки, это так ?

        1 Reply Last reply Reply Quote 0
        • N
          ncat
          last edited by

          я бы сказал что он работает, но с оговоркой что IP l2tp сервера надо указывать только цифрами.

          1 Reply Last reply Reply Quote 0
          • N
            ncat
            last edited by

            ну раз никто не стал возиться, буду придумывать костыли сам.
            прошивки на новый Asus n66u еще будут пилить и пилить, так нормальной скорости интернета никогда не дождусь

            Наконец-то мне подсказали на интернациональном форуме, большое спасибо stephenw10.
            Пока что, по идее, вот этот скрипт надо запихнуть в крон

            #!/bin/sh
            
            if [ -f /var/run/l2tp_opt1.pid ]
                then
            #   echo "mpd5 is running" | logger
                else
                /etc/rc.linkup l2tp0 start
            fi
            # l2tp0 - имя, отображаемое на страничке Interfaces для вашего l2tp интерфейса.
            
            

            Таким образом вроде бы можно решить проблему отказывающегося стартовать l2tp с модифицированным interfaces.inc
            а модифицировали для того, чтобы получать IP по имени l2tp сервера, как нам велит Билайн. Так как однажды выбранный единственный l2tp сервер может стать недоступным

            1 Reply Last reply Reply Quote 0
            • N
              ncat
              last edited by

              Итак, похоже на то что проблема получения l2tp сервер по имени и его автоматического старта решена.
              pfSense 2.0.1 nanobsd
              Опишу все по порядку.
              Понадобится вот что:

              • mc (с ним удобнее) или текстовый редактор
              • установленный cron (System -> Packages -> cron)

              **Что получилось:

              • L2TP сервер получаем по имени
              • добавляем маршрут (l2tp сервер становится виден из внутренней сети [актуально для интернета билайн])
              • L2TP стартует сам и даже обновляет IP сервера при падении**

              [Решение]
              Для всех модификаций советую сделать копии
              1) модифицируем /etc/inc/interfaces.inc
              1.1 - function interface_ppps_configure($interface)
              1.1.1 - раскомменчиваем строку $gateways[$pid] = gethostbyname ($gateways[$pid]);
              1.1.2 - а также добавляем код помеченный /* ADDED -start- / - / ADDED -end- */
              пункт 1.1.2 позволяет при получении IP l2tp сервера писать маршрут l2tp server - wan gateway. Так как l2tp сервер находится во внешней сети, без маршрута соединение с ним не будет подниматься (это очень любит интернет от билайна).
              маршруты у него передаются, по ходу, 249 опцией

              вот как должно выглядеть:

              
                                              if(!is_ipaddr($localips[$pid])){
                                                      log_error("Could not get a Local IP address for PPTP/L2TP link on {$port} in interfaces_ppps_configure. Using 0.0.0.0 ip!");
                                                      $localips[$pid] = "0.0.0.0";
                                              }
                                              /* XXX: This needs to go away soon! [It's commented out!] */
                                              /* Configure the gateway (remote IP ) */
                                              if (!$g['booting'] && !is_ipaddr($gateways[$pid]) && is_hostname($gateways[$pid])) {
                                                      /* XXX: Fix later  */
                                                      $gateways[$pid] = gethostbyname($gateways[$pid]);
                                                      if(!is_ipaddr($gateways[$pid])) {
                                                              log_error("Could not get a valid Gateway IP from {$port} via DNS in interfaces_ppps_configure.");
                                                              return 0;
                                                      }
              
                                              }
                                              if(!is_ipaddr($gateways[$pid])){
                                                      log_error("Could not get a PPTP/L2TP Remote IP address from {$dhcp_gateway} for {$gway} in interfaces_ppps_configure.");
                                                      return 0;
                                              }
              
              /* ADDED -start- */
                                              //$parent_gw = get_interface_gateway($port);
              
                                              $wanif = get_real_wan_interface();
                                              $parent_gw = file_get_contents("/tmp/{$wanif}_router");
                                              mwexec("route add -host {$gateways[$pid]} {$parent_gw}");
              /* ADDED -end- */
              
                                              pfSense_ngctl_attach(".", $port);
                                              break;
                                      case "ppp":
              
              

              i: По поводу пунктов 1.2 и 1.3 не уверен, приносят ли они пользу, но на всякий случай. Эти изменения предложены Micky на 4-й странице http://forum.pfsense.org/index.php/topic,25465.15.html
              к слову, и 1.1.2 предложено им, хотя в том виде не работало…

              1.2 - function interface_bring_down($interface = "wan", $destroy = false)

              
                      $int_list = get_configured_interface_list_by_realif();
                      if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
                              foreach ($config['ppps']['ppp'] as $pppid => $ppp) {
                                      if ($ppp['type'] == 'pptp' || $ppp['type'] == 'l2tp') {
                                              $ports = explode(',',$ppp['ports']);
                                              foreach($ports as $pid => $port){
                                                      if ($port == $interface) {
                                                              interface_bring_down($int_list[$ppp['if']]);
                                                      }
                                              }
                                      }
              
                              }
                      }
              
              

              местоположение:

              function interface_bring_down($interface = "wan", $destroy = false) {
                      global $config, $g;
              
                      if (!isset($config['interfaces'][$interface]))
                              return;
              
                      $ifcfg = $config['interfaces'][$interface];
              
                      $realif = get_real_interface($interface);
              
              /* ADDED -start- */
                      $int_list = get_configured_interface_list_by_realif();
                      if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
                              foreach ($config['ppps']['ppp'] as $pppid => $ppp) {
                                      if ($ppp['type'] == 'pptp' || $ppp['type'] == 'l2tp') {
                                              $ports = explode(',',$ppp['ports']);
                                              foreach($ports as $pid => $port){
                                                      if ($port == $interface) {
                                                              interface_bring_down($int_list[$ppp['if']]);
                                                      }
                                              }
                                      }
              
                              }
                      }
              
              /* ADDED -end- */
              
                      switch ($ifcfg['ipaddr']) {
                      case "ppp":
                      case "pppoe":
                      case "pptp":
                      case "l2tp":
                              if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
              
              

              1.3 - function interface_dhcp_configure($interface = "wan")

                      $int_list = get_configured_interface_list_by_realif();
                      if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
                              foreach ($config['ppps']['ppp'] as $pppid => $ppp) {
                                      if ($ppp['type'] == 'pptp' || $ppp['type'] == 'l2tp') {
                                              $ports = explode(',',$ppp['ports']);
                                              foreach($ports as $pid => $port){
                                                      if ($port == $interface) {
                                                              interface_ppps_configure($int_list[$ppp['if']]);
                                                      }
                                              }
                                      }
              
                              }
                      }
              
              

              местоположение (в конце):

                      fwrite($fd, $dhclientconf);
                      fclose($fd);
              
                      /* bring wan interface up before starting dhclient */
                      if($wanif)
                              interfaces_bring_up($wanif);
                      else
                              log_error("Could not bring up {$wanif} interface in interface_dhcp_configure()");
              
                      /* fire up dhclient */
                      mwexec("/sbin/dhclient -c {$g['varetc_path']}/dhclient_{$interface}.conf {$wanif} > {$g['tmp_path']}/{$wanif}_output > {$g['tmp_path']}/{$wanif}_error_output");
              
              /* ADDED -start- */
                      $int_list = get_configured_interface_list_by_realif();
                      if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
                              foreach ($config['ppps']['ppp'] as $pppid => $ppp) {
                                      if ($ppp['type'] == 'pptp' || $ppp['type'] == 'l2tp') {
                                              $ports = explode(',',$ppp['ports']);
                                              foreach($ports as $pid => $port){
                                                      if ($port == $interface) {
                                                              interface_ppps_configure($int_list[$ppp['if']]);
                                                      }
                                              }
                                      }
              
                              }
                      }
              /* ADDED -end- */
              
                      return 0;
              }
              
              

              i: теперь перед стартом мы получаем l2tp адрес сервера по имени (полученный через DNS IP записывается в конфигурацию mpd5.
              Получили две проблемы:

              • сам интерфейс не стартует
              • надо переконфигурировать l2tp соединение, если, например, l2tp сервер стал недоступным. Пример: оборвался WAN и L2TP, через некоторое время WAN поднимается, а L2TP продолжает стучаться на старый IP, хотя можно было бы получить и новый.
                Эти проблемы и будем решать ниже

              2) создаем два файла в /usr/scripts/ (папку scripts придется создать)
              2.1 - файл start-keeper.sh

              
              #! /bin/sh
              
              #########################################################################################
              #                                                                                       #
              #       This file starts mpd-keeper unless it is not already started.                   #
              #       Before using make sure you put your variables at /usr/sctipts/mpd-keeper        #
              #                                                                                       #
              #########################################################################################
              
              res=$(ps -A | grep -w '[m]pd-keeper')
              
              if [ ! "$res" ]
                  then
                  echo "Starting mpd-keeper" | logger
                  /usr/bin/nice -n20 /usr/scripts/mpd-keeper
              fi
              
              

              2.2 - файл mpd-keeper

              ##### VARIABLES #####
              
              # wan is your WAN interface network port name. Can be viewed at pfsense welcome screen.
              wan='re0'
              
              # l2tp is your l2tp network port name (also can be viewed in Webconfigurator -> Status -> Interfaces -> l2tp interface header
              l2tp='l2tp0'
              
              # pid can be found in /var/run should looks same. This file creates when your l2tp is up.
              pid='l2tp_opt1.pid'
              
              # repeat time for this script (in seconds)
              repeat_time='5'
              
              # time to wait for bringing l2tp connection up (in seconds)
              l2tpup_time='60'
              
              ##### CODE #####
              
              while [ 1 -eq 1 ]
              do
                  if [ ! -f /tmp/${l2tp}up ]
                  then
                      if [ -f /var/run/$pid ]
                      then
                              # If l2tp connection is down (no IP) and mpd5 for this connection is running we kill mpd
                              # to be able to change connection settings, specifically l2tp peer.
                              # Because if (for example) l2tp peer is down we can get different l2tp peer IP using hostname.
                              res2=$(cat /var/run/$pid)
                              echo "l2tp is down - killing mpd5" | logger
                              kill $res2
                      fi
                  fi
              
                  sleep 1
                  res1=$(ifconfig $wan | grep status | cut -d : -f 2)
              
                  if [ ! -f /var/run/$pid ]
                  then
                      if [ "$res1" = " active" ]
                      then
                          # If wan connection is active and there is no l2tp over it, we start l2tp connection.
                          echo "wan is active - starting l2tp connection" | logger
                          /etc/rc.linkup $l2tp start
                          # L2TP connection needs some time to come up.
                          # Without sleep it seems that mpd5 will be killed before it has a chance
                          # to connect to l2tp server (if repeat_time is less than ~30)
                          sleep $l2tpup_time
                      else
                          #echo "wan is not active. l2tp cannot start" | logger
                      fi
                  fi
              
                  sleep $repeat_time
              done
              
              

              опишу переменные, которые надо установить в соответствии с Вашей системой

              wan - название вашего интерфейса WAN, которые показывается при приветственном окне в pfsense

              wan='re0'

              l2tp - имя вашего интерфейса L2TP (показывается в Webconfigurator -> Status -> Interfaces -> l2tp interface header)

              l2tp='l2tp0'

              pid может быть найден /var/run выглядеть должен примерно также. Файл создается когда соединение l2tp поднято.

              pid='l2tp_opt1.pid'

              интервал повтора скрипта (в секундах)

              repeat_time='5'

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

              l2tpup_time='60'

              2.3 - делаем созданные файлы исполняемыми командой chmod 755 filename (я вот не помнил наизусть как)

              3) настраиваем cron (Services -> cron)
              minute */1
              hour *
              mday *
              month *
              wday *
              who root
              command /bin/sh /usr/scripts/start-keeper.sh

              Вроде все  :)

              Спасибо: Steve (stephenw10), Micky, Evgeny.

              P.S.: мой первый "общественный" скрипт набор скриптов; в FreeBSD новичок, то же самое относится к сетевым технологиям. Если есть какие-либо ошибки или дополенения - с удовольствием исправлю\дополню.

              1 Reply Last reply Reply Quote 0
              • L
                lsd25
                last edited by

                @ncat:

                Итак, похоже на то что проблема получения l2tp сервер по имени и его автоматического старта решена.

                Хм. Аналогично имею провайдера, именуемого АИСТ. Получаю ip по dhcp на wan внутренней сети, некоторой, из 10.0.0.0/8. Для коннекта с инетом - впн, pptp.
                Юзаю pfsense 2.1. На данный момент сервер впн забил по ип, но надо по имени fqdn. Инет пашет, все ок вроде. Но есть косяк с тем, что почему-то шлюз не резолвит с днс провайдера хосты внутресетевые.
                т.е. даже в гуглевском днс они имеют записи. если на сетевом интерфейсе в винде прописать днс гугля или от провайдера, то все резолвит. Если использовать dns forwarder шлюза - не резолвит (в general dns прописаны).
                Ну и странно, что у меня оба шлюза от провайдера являются дефолтовыми. Т.е. шлюз полученный из внутренней сети, и шлюз полученный при соединении впн.
                С другим провайдером все работало окей, правда там pppoe было )

                p.s. из сообщения выше костыли не юзал, пака что

                1 Reply Last reply Reply Quote 0
                • G
                  gr0mW
                  last edited by

                  У прова скорее всего split DNS. Попробуйте решить записью в Services: DNS forwarder-Advanced  _–->  rebind-domain-ok=/site1/site2/site3/

                  1 Reply Last reply Reply Quote 0
                  • K
                    KanyT
                    last edited by

                    Огромный респект ncat за модификацию !

                    Попробовал настроить у себя - получилось, но в логах постоянно маячит такая строчка:

                    php: : The command 'route change -host 10.172.40.1' returned exit code '1', the output was 'route: writing to routing socket: No such process route: writing to routing socket: Invalid argument change host 10.172.40.1: Invalid argument'
                    

                    И еще почему-то не прописывается default gateway в System->Routing, и у клиентов интернета нет, пока руками не прописать что opt1 это default
                    Но в целом прогресс огромный - оно даже переподымается после падения wan :))

                    1 Reply Last reply Reply Quote 0
                    • L
                      lsd25
                      last edited by

                      gr0mW, Спасибо, помогло) Оказалось, что поиском по форуму находит похожую ситуацию с таким же решением проблемы.. почему-то не нашел я сразу.

                      UPD: Увидел в опциях, в Advanced, пункт "Disable DNS Rebinding Checks". Так вот при активации данной опции, так же начинают резолвиться внутренние адреса. Но интересно, чревато ли это чем-либо?)

                      1 Reply Last reply Reply Quote 0
                      • B
                        Bishounen
                        last edited by

                        ncat

                        Такой вопрос, на сколько я понимаю при такой настройке  на Wan мы получаем ip по DHCP?
                        Вопрос в следующем, при провешивании портов с помощью UPNP у нас они будут не в Интернет же провешиваться? Или я что-то не понимаю?

                        1 Reply Last reply Reply Quote 0
                        • N
                          ncat
                          last edited by

                          @KanyT:

                          Огромный респект

                          Рад что кому-то пригодилось

                          @KanyT:

                          Попробовал настроить у себя - получилось, но в логах постоянно маячит такая строчка:

                          php: : The command 'route change -host 10.172.40.1' returned exit code '1', the output was 'route: writing to routing socket: No such process route: writing to routing socket: Invalid argument change host 10.172.40.1: Invalid argument'
                          

                          Такая же штука была (не знаю есть сейчас или нет) не обращал внимания на нее.
                          Тут стоит пояснить про пункт 1.1.2 из решения:
                          Конфигурирование L2TP:

                          
                          $gateways[$pid] = gethostbyname($gateways[$pid]); //(из решения 1.1.1) - получаем IP по имени
                          $wanif = get_real_wan_interface(); // судя по всему, получаем WAN
                          $parent_gw = file_get_contents("/tmp/{$wanif}_router"); // узнаем gateway у него (пишется в файл; у меня например в /tmp/re0_router)
                          mwexec("route add -host {$gateways[$pid]} {$parent_gw}"); // прописываем маршрут. 
                          
                          

                          Такая схема работает у меня, но у других провайдеров она может отличаться. Возможно кому-то и не надо писать маршрут…

                          @KanyT:

                          И еще почему-то не прописывается default gateway в System->Routing, и у клиентов интернета нет, пока руками не прописать что opt1 это default

                          Я через это же меню поставил OPT1 как default галочкой, все сохраняется вроде.

                          @KanyT:

                          Но в целом прогресс огромный - оно даже переподымается после падения wan :))

                          пишите о результатах


                          @Bishounen:

                          Такой вопрос, на сколько я понимаю при такой настройке  на Wan мы получаем ip по DHCP?

                          вроде да  :)

                          @Bishounen:

                          Вопрос в следующем, при провешивании портов с помощью UPNP у нас они будут не в Интернет же провешиваться? Или я что-то не понимаю?

                          не занимался этим. Тока бросал порт для торрентов (NAT). Там надо было в interfaces выбрать L2TP (ну или как там называется интерфейс с интернетом)


                          И вообще позволю себе себя же процитировать:
                          @ncat:

                          в FreeBSD новичок, то же самое относится к сетевым технологиям.

                          так что проверяйте и относитесь с недоверием  ::)

                          надеюсь нету оверквотинга?

                          Ах да! следите за тем что написали в скрипте и как он работает (mpd-keeper); он в бесконечном цикле  ;D. Так что проверяйте процессы при первых запусках, а то мало ли что  :-\

                          1 Reply Last reply Reply Quote 0
                          • K
                            KanyT
                            last edited by

                            Почти неделю полёт нормальный. Наконец-то один из самых сочных фаерволов нормально заработал с билайном!
                            Осуществил то что давно хотел: "МОНСТРОУТЕР"  8) - 5015A-EHF-D525 на нём esxi а в нём pfsense + файлопомойка/торрент на винде. Лёгко держит 60 мегабит по l2tp.
                            Теперь всё самостоятельно переподключается при падениях wan и отрубе/восстановлении электричества. Проводил стресс-тесты - работает блин!
                            Я счастлив  ;D
                            Ещё раз спасибо ncat!!!

                            1 Reply Last reply Reply Quote 0
                            • N
                              ncat
                              last edited by

                              хыхы) очень помог stephenw10 кстати, я его достал в личке  :D
                              еще бы подключить принтер, сделать failover, настроить QoS и дождаться WiFi-N и можно будет не мечтать об Asus rt-n66u )))

                              p.s. еще не смог настроить IPTV через igmp

                              1 Reply Last reply Reply Quote 0
                              • M
                                mikhe
                                last edited by

                                ncat
                                Принципиально именно igmp (для приставки?). Я смотрел ЧЕ 2012 на билайновском IPTV Спорт 1 HD (к которому они почти на месяц свободный доступ дали) через udpxy.

                                1 Reply Last reply Reply Quote 0
                                • T
                                  TheRaven
                                  last edited by

                                  В качестве теста сделал WAN(static) + PPTP(dynamic) на pFsense 2.0.1 по инструкции ncat http://forum.pfsense.org/index.php/topic,24734.msg215185.html#msg215185

                                  Провайдер Билайн. VPN-сервер IP-адресом. Работает, после перезагрузки поднимается. Наблюдаю.

                                  =======================

                                  Вопрос вдогонку - реально ли поднять еще "комплект WAN-ов" в том же духе, если у них совпадает подсеть и GW ? Т.е.

                                  LAN 192.168.1.1/24

                                  WAN1_STATIC_LOCAL 10.1.1.2/24 GW 10.1.1.1
                                  WAN1_DYNAMIC_INET 1.2.3.5/32 GW 1.2.3.4

                                  WAN2_STATIC_LOCAL 10.1.1.3/24 GW 10.1.1.1
                                  WAN1_DYNAMIC_INET 1.2.3.6/32 GW 1.2.3.4

                                  при этом хочется возможности роутинга одних клиентов из LAN в один гейт, других - в другой. Или я слишком много хочу ? :)

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    AlexS
                                    last edited by

                                    Здравствуйте!

                                    У меня интернет приходит по выделенной линии, соответственно я настроил wan на получение ip по dhcp, и добавил интерфейс opt1(pptp), который должен подниматься последним.
                                    При загрузке я вижу что сначала поднимается WAN потом LAN  и последним OPT1, однако по факту интерфейс не поднимается. Если после включения нажжать кнопку подключения или в консоле команду  /etc/rc.linkup pptp0 start все подключается и работает.
                                    Я установил пакет shellcmd написал туда эту команду, однако она все равно не срабатывает, после перезагрузки интерфейс не поднимается.
                                    Как побороть эту проблему?
                                    upd
                                    вобщем написал скрипт, который дергается по cron. Всем спасибо

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

                                      ncat, оргомное псасибо за скрипты, все офигенно классно работает.

                                      В данном коде убрал только два апострофа перед $parent_gw = get_interface_gateway($port); и все заработало)))

                                      
                                                                      if(!is_ipaddr($localips[$pid])){
                                                                              log_error("Could not get a Local IP address for PPTP/L2TP link on {$port} in interfaces_ppps_configure. Using 0.0.0.0 ip!");
                                                                              $localips[$pid] = "0.0.0.0";
                                                                      }
                                                                      /* XXX: This needs to go away soon! [It's commented out!] */
                                                                      /* Configure the gateway (remote IP ) */
                                                                      if (!$g['booting'] && !is_ipaddr($gateways[$pid]) && is_hostname($gateways[$pid])) {
                                                                              /* XXX: Fix later  */
                                                                              $gateways[$pid] = gethostbyname($gateways[$pid]);
                                                                              if(!is_ipaddr($gateways[$pid])) {
                                                                                      log_error("Could not get a valid Gateway IP from {$port} via DNS in interfaces_ppps_configure.");
                                                                                      return 0;
                                                                              }
                                      
                                                                      }
                                                                      if(!is_ipaddr($gateways[$pid])){
                                                                              log_error("Could not get a PPTP/L2TP Remote IP address from {$dhcp_gateway} for {$gway} in interfaces_ppps_configure.");
                                                                              return 0;
                                                                      }
                                      
                                      /* ADDED -start- */
                                                                      //$parent_gw = get_interface_gateway($port);
                                      
                                                                      $wanif = get_real_wan_interface();
                                                                      $parent_gw = file_get_contents("/tmp/{$wanif}_router");
                                                                      mwexec("route add -host {$gateways[$pid]} {$parent_gw}");
                                      /* ADDED -end- */
                                      
                                                                      pfSense_ngctl_attach(".", $port);
                                                                      break;
                                                              case "ppp":
                                      
                                      

                                      На данном сайте не понятно что в коде написано цифра 1 или буква l, поэтому ни сразу вбил правильно код из примера ниже.
                                      2.2 - файл mpd-keeper

                                      ##### VARIABLES #####
                                      
                                      # wan is your WAN interface network port name. Can be viewed at pfsense welcome screen.
                                      wan='re0'
                                      
                                      # l2tp is your l2tp network port name (also can be viewed in Webconfigurator -> Status -> Interfaces -> l2tp interface header
                                      l2tp='l2tp0'
                                      
                                      # pid can be found in /var/run should looks same. This file creates when your l2tp is up.
                                      pid='l2tp_opt1.pid'
                                      
                                      # repeat time for this script (in seconds)
                                      repeat_time='5'
                                      
                                      # time to wait for bringing l2tp connection up (in seconds)
                                      l2tpup_time='60'
                                      
                                      ##### CODE #####
                                      
                                      while [ 1 -eq 1 ]
                                      do
                                          if [ ! -f /tmp/${l2tp}up ]
                                          then
                                              if [ -f /var/run/$pid ]
                                              then
                                                      # If l2tp connection is down (no IP) and mpd5 for this connection is running we kill mpd
                                                      # to be able to change connection settings, specifically l2tp peer.
                                                      # Because if (for example) l2tp peer is down we can get different l2tp peer IP using hostname.
                                                      res2=$(cat /var/run/$pid)
                                                      echo "l2tp is down - killing mpd5" | logger
                                                      kill $res2
                                              fi
                                          fi
                                      
                                          sleep 1
                                          res1=$(ifconfig $wan | grep status | cut -d : -f 2)
                                      
                                          if [ ! -f /var/run/$pid ]
                                          then
                                              if [ "$res1" = " active" ]
                                              then
                                                  # If wan connection is active and there is no l2tp over it, we start l2tp connection.
                                                  echo "wan is active - starting l2tp connection" | logger
                                                  /etc/rc.linkup $l2tp start
                                                  # L2TP connection needs some time to come up.
                                                  # Without sleep it seems that mpd5 will be killed before it has a chance
                                                  # to connect to l2tp server (if repeat_time is less than ~30)
                                                  sleep $l2tpup_time
                                              else
                                                  #echo "wan is not active. l2tp cannot start" | logger
                                              fi
                                          fi
                                      
                                          sleep $repeat_time
                                      done
                                      
                                      

                                      Скрипты актуальны и работают, переподключение у скрипта занимает 3-4 минуты, долговато, но все равно супер. В начале без скриптов интернет вообще не врубался.
                                      Теперь только непонятно почему pfsense режет скорость, из за скриптов или настроек, может кто-нить подсказать?
                                      Скорость должна быть 80 мбит/с а на деле 50-60 мбит/с.

                                      Народ также подскажите как настроить wifi карточку чтобы она также раздавала инет?
                                      И самое главное как настроить раздачу интернета для всех одинаково?, чтобы не получилось как на билайновском роутере один качает и все, все остальные сидят курят.

                                      За ранее благодарен.

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

                                        Всем привет!

                                        Требуется ваша экспертная помощь. Условия следующие:
                                        1. Есть центтральный офис. В нём сейчас стоит PPTP сервер на основе Windows Server 2003(на нём ещё очень много чего накручено предыдущим администратором - сейчас пока разбираюсь и готовлючь к переезду, но заменить его возможности нет)
                                        2. Есть удалённый склад. Там сидят несколько клиентов, которые по PPTP(каждый самостоятельно запускает соединение на своём компьютере) когда надо ходят в центральный офис.

                                        Как вы видите, схема убогая и правильно для начала будет поставить в офис ротутер, котрый будет держать VPN сессию до основного офиса. В будущес в центральный офис так же поставлю Pfsense и подниму IPSEC-VPN между ними.

                                        Сейчас хочу на склад поставить шлюза н основе PfSense 2.0.1 и на его основе уже поднять PPTP сессию на виндовый PPTP сервер в центральном офисе.

                                        Столкнулся с проблемой при настройке конфигарации:
                                        Склад->Pfsense  2.0.1->PPTP->PPTP Server(Windows 2003)->центральный офис
                                        Pfsense 2.0.1 не поднимает сессию до сервера PPTP.

                                        Пробовал править согласно инструкции:
                                        http://www.thin.kiev.ua/router-os/50-pfsense/680-pptp-clien-wan-pfsense-20.html

                                        Всё равно не работает.

                                        PPTP Server - Windows 2003 работает - виндовые клиенты к неому нормально подключаются по PPTP.

                                        Пожалуйста, помогите советом, может быть кто-нибудь сталкивался?

                                        З.Ы. Знаю, что PPTP теперь отличнно расшифровывается, но требуется ваша помощь, чтобы хотя бы временно решить данную проблему.

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          TheRaven
                                          last edited by

                                          rinx, я думаю стоит вынести ваш вопрос в отдельную ветку т.к. к данному топику он не подходит.

                                          Так же вам следует:

                                          1. указать как приходит интернет на склад
                                          2. логи с pfsense –> status --> system logs --> ppp

                                          так же желательно набросать схему сети с адресацией

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            TheRaven
                                            last edited by

                                            @Dealaxer:

                                            Теперь только непонятно почему pfsense режет скорость, из за скриптов или настроек, может кто-нить подсказать?
                                            Скорость должна быть 80 мбит/с а на деле 50-60 мбит/с.

                                            Сетевые карточки какие, что с загрузкой CPU и памяти в момент полной утилизации канала ?

                                            @Dealaxer:

                                            Народ также подскажите как настроить wifi карточку чтобы она также раздавала инет?
                                            И самое главное как настроить раздачу интернета для всех одинаково?, чтобы не получилось как на билайновском роутере один качает и все, все остальные сидят курят.

                                            За ранее благодарен.

                                            Сделать ее бриджем с LAN, как вариант.
                                            Полоса по дефолту делится динамически же.

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