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

DHCP + PPTP on WAN

Scheduled Pinned Locked Moved Russian
402 Posts 58 Posters 473.8k 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.
  • T
    TheRaven
    last edited by Apr 7, 2012, 7:49 PM

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

    1 Reply Last reply Reply Quote 0
    • N
      ncat
      last edited by Apr 27, 2012, 1:46 AM

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

      1 Reply Last reply Reply Quote 0
      • N
        ncat
        last edited by May 18, 2012, 12:26 AM May 18, 2012, 12:17 AM

        ну раз никто не стал возиться, буду придумывать костыли сам.
        прошивки на новый 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 May 28, 2012, 6:07 PM May 28, 2012, 5:26 PM

          Итак, похоже на то что проблема получения 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 Jun 8, 2012, 6:34 PM Jun 8, 2012, 6:27 PM

            @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 Jun 8, 2012, 9:30 PM Jun 8, 2012, 9:25 PM

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

              1 Reply Last reply Reply Quote 0
              • K
                KanyT
                last edited by Jun 9, 2012, 10:51 PM Jun 9, 2012, 9:24 PM

                Огромный респект 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 Jun 10, 2012, 6:58 AM Jun 10, 2012, 6:31 AM

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

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

                  1 Reply Last reply Reply Quote 0
                  • B
                    Bishounen
                    last edited by Jun 13, 2012, 4:33 PM

                    ncat

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

                    1 Reply Last reply Reply Quote 0
                    • N
                      ncat
                      last edited by Jun 14, 2012, 12:24 AM Jun 14, 2012, 12:17 AM

                      @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 Jun 14, 2012, 9:15 PM Jun 14, 2012, 9:10 PM

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

                        1 Reply Last reply Reply Quote 0
                        • N
                          ncat
                          last edited by Jun 14, 2012, 9:59 PM Jun 14, 2012, 9:51 PM

                          хыхы) очень помог 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 Jul 17, 2012, 10:57 AM

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

                            1 Reply Last reply Reply Quote 0
                            • T
                              TheRaven
                              last edited by Nov 4, 2012, 10:27 PM Nov 4, 2012, 10:18 PM

                              В качестве теста сделал 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 Nov 15, 2012, 12:44 PM Nov 14, 2012, 11:41 AM

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

                                У меня интернет приходит по выделенной линии, соответственно я настроил 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 Nov 24, 2012, 3:32 PM

                                  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 Nov 25, 2012, 12:51 PM

                                    Всем привет!

                                    Требуется ваша экспертная помощь. Условия следующие:
                                    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 Nov 25, 2012, 3:51 PM

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

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

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

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

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        TheRaven
                                        last edited by Nov 25, 2012, 3:53 PM

                                        @Dealaxer:

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

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

                                        @Dealaxer:

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

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

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

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          Dealaxer
                                          last edited by Nov 27, 2012, 2:16 PM Nov 26, 2012, 8:58 AM

                                          @TheRaven:

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

                                          Загрузка CPU где то на 90-100 процентов, что уже плохо, память 9%
                                          И после долгой работы роутер виснет, в чем может быть трабла?

                                          Сетевые карты:
                                          dev.rl.0.%desc: RealTek 8139 10/100BaseTX
                                          dev.rl.0.%driver: rl
                                          dev.rl.0.%location: slot=1 function=0
                                          dev.rl.0.%pnpinfo: vendor=0x10ec device=0x8139 subvendor=0x10ec subdevice=0x8139 class=0x020000
                                          dev.rl.0.%parent: pci2
                                          dev.rl.0.twister_enable: 0
                                          rl0: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
                                          options=8 <vlan_mtu>ether 00:e0:4c:9b:ad:4b
                                          inet6 fe80::2e0:4cff:fe9b:ad4b%rl0 prefixlen 64 scopeid 0x1
                                          inet 16.28.138.59 netmask 0xfffff800 broadcast 16.28.138.255
                                          nd6 options=3 <performnud,accept_rtadv>media: Ethernet autoselect (100baseTX <full-duplex>)
                                          status: active

                                          dev.ste.0.%desc: D-Link DL10050 10/100BaseTX
                                          dev.ste.0.%driver: ste
                                          dev.ste.0.%location: slot=2 function=0
                                          dev.ste.0.%pnpinfo: vendor=0x1186 device=0x1002 subvendor=0x1186 subdevice=0x1002 class=0x020000
                                          dev.ste.0.%parent: pci2
                                          dev.ste.0.int_rx_mod: 150
                                          dev.ste.0.stats.rx.good_octets: 19644650
                                          dev.ste.0.stats.rx.good_frames: 103768
                                          dev.ste.0.stats.rx.good_bcast_frames: 85
                                          dev.ste.0.stats.rx.good_mcast_frames: 0
                                          dev.ste.0.stats.rx.lost_frames: 8
                                          dev.ste.0.stats.tx.good_octets: 198323693
                                          dev.ste.0.stats.tx.good_frames: 172799
                                          dev.ste.0.stats.tx.good_bcast_frames: 5
                                          dev.ste.0.stats.tx.good_mcast_frames: 4
                                          dev.ste.0.stats.tx.carrier_errs: 0
                                          dev.ste.0.stats.tx.single_colls: 0
                                          dev.ste.0.stats.tx.multi_colls: 0
                                          dev.ste.0.stats.tx.late_colls: 0
                                          dev.ste.0.stats.tx.defers: 0
                                          dev.ste.0.stats.tx.excess_defers: 0
                                          dev.ste.0.stats.tx.abort: 0
                                          ste0: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
                                          options=82008 <vlan_mtu,wol_magic,linkstate>ether 00:05:5d:1a:5f:1f
                                          inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
                                          inet6 fe80::205:5dff:fe1a:5f1f%ste0 prefixlen 64 scopeid 0x2
                                          nd6 options=3 <performnud,accept_rtadv>media: Ethernet autoselect (100baseTX <full-duplex>)
                                          status: active</full-duplex></performnud,accept_rtadv></vlan_mtu,wol_magic,linkstate></up,broadcast,running,simplex,multicast></full-duplex></performnud,accept_rtadv></vlan_mtu></up,broadcast,running,simplex,multicast>

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                                            This community forum collects and processes your personal information.
                                            consent.not_received