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

    DHCP + PPTP on WAN

    Scheduled Pinned Locked Moved Russian
    402 Posts 58 Posters 491.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.
    • N
      ncat
      last edited by

      получил l2tp сервер по имени


      раскомментил строку №1295 файла /etc/inc/interfaces.inc        $gateways[$pid] = gethostbyname ($gateways[$pid]);
      и остальные там же (комментарий многострочный).
      Получил брас по имени (tp.corbina.net)


      Провайдер Билайн Москва
      Пока полет нормальный

      p.s. будете менять - сделайте бэкап  ;)

      Правда еще неясно как лучше маршруты прописать (у меня 85.21.0.0/24        WAN - 10.87.8.1)
      наверное можно оставить, так как ripe пишет

      inetnum:        85.21.0.0 - 85.21.0.255
      netname:        CORBINA-BRAS
      descr:          Broadband Access Servers Loopbacks in Moscow
      country:        RU
      
      1 Reply Last reply Reply Quote 0
      • L
        Lexvel
        last edited by

        Подтверждаю слова ncat.
        Кусок кода

        /* 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;
        }
        */

        раскомментируем до вида:

        /* 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;
        }

        Для удобства я установил MC.

        Проблема в том, что сам L2TP теперь не поднимается. Приходится его пинать вручную. Хотя когда поднялся - работает стабильнее, чем по одному IP…(билайн опять рулит...)

        Кстати для тех, у кого не получается - обращу внимание, что в System - Routing нужно основным гейтом поставить L2TP а не Wan.

        Всем огромное спасибо!

        У меня осталась проблема с вайфаем в лице чипа аферос AR9380. Отдельно тему создал, но если кто чего посоветует - буду очень благодарен!

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

          @Lexvel:

          Проблема в том, что сам L2TP теперь не поднимается.

          Тоже думал что из-за этого, но не стал связывать, так как много "экспериментировал" с файлами в pfSense…
          Теперь ясно что раскомменченный код виноват.
          по этому поводу тема на английском и русском форумах. Пока пусто  :(
          ждем ответов гуру freebsd (pfSense)?  ::)

          upd: самый кривой вариант, наверное, запустить cron и смотреть есть ли процесс ppp и стартовать если нет? Только не умею писать скрипты в unix, да и в целом не сильно разбираюсь в этих системах.

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

            Have you tried to remove the```
            !$g['booting']

            
            meaning:
            

            /* Configure the gateway (remote IP ) /
                        if (!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;
                          }

            
            but carefully, it can break pfsense, and i dont have it installed to test or to check the source code
            1 Reply Last reply Reply Quote 0
            • N
              ncat
              last edited by

              удаление !$g['booting'] не помогло.

              Вот полазил по форуму и накатал простой скриптик, который можно поставить в cron (ну и убрать флуд в лог):

              #!/bin/sh
              
              if [ -f /var/run/l2tp_opt1.pid ]
                  then
                 echo "mpd5 is running" | logger
                  else
                 echo "mpd5 is dead" | logger
              fi
              

              Как вместо echo "mpd5 is dead" | logger запихнуть запуск интерфейса? (например загрузить страницу http://192.168.2.1/status_interfaces.php?action=Connect&if=opt1 или еще каким образом…)

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

                Может кто-нибудь описать процесс настройки полноценного PPTP WAN с Dual-Access для российского провайдера? Имеем Pfsense 2.0.1, переходить обратно на 1.X не хотелось бы. VPN серверов у прова несколько так что хотелось бы настроить VPN на имя а не на IP. И потянет ли VIA 1HHz и 512RAM поток порядка 40мбит по PPTP или надо что-то помощнее?

                1 Reply Last reply Reply Quote 0
                • X
                  xogoc
                  last edited by

                  pfSense 2.0: пытаюсь поднять PPTP на WAN'е с DHCP
                  Что мне изменить в /etc/inc/interfaces.inc если провайдер требует такие настройки:

                  ?
                  Лог:

                  Jan 9 15:21:20 ppp: [opt2_link0] Link: reconnection attempt 1209
                  Jan 9 15:21:20 ppp: [opt2_link0] PPTP call failed
                  Jan 9 15:21:20 ppp: [opt2_link0] Link: DOWN event
                  Jan 9 15:21:20 ppp: [opt2_link0] LCP: Down event
                  Jan 9 15:21:20 ppp: [opt2_link0] Link: reconnection attempt 1210 in 3 seconds

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

                    @xogoc:

                    pfSense 2.0: пытаюсь поднять PPTP на WAN'е с DHCP
                    Что мне изменить в /etc/inc/interfaces.inc если провайдер требует такие настройки:

                    ?
                    Лог:

                    Jan 9 15:21:20 ppp: [opt2_link0] Link: reconnection attempt 1209
                    Jan 9 15:21:20 ppp: [opt2_link0] PPTP call failed
                    Jan 9 15:21:20 ppp: [opt2_link0] Link: DOWN event
                    Jan 9 15:21:20 ppp: [opt2_link0] LCP: Down event
                    Jan 9 15:21:20 ppp: [opt2_link0] Link: reconnection attempt 1210 in 3 seconds

                    У вас привязка по МАСу идет ? Тогда сперва МАС смените на ВАН, чтоб ИП локальный получить, а только затем проверяйте ППТП.

                    П.с. Как вариант, при загрузке pf-а задать первым поднимать ВАН , а только потом ППТП.
                    Команды можно вставить в Shellcmd, предварительно установив этот пакет.

                    1 Reply Last reply Reply Quote 0
                    • X
                      xogoc
                      last edited by

                      @werter:

                      У вас привязка по МАСу идет ? Тогда сперва МАС смените на ВАН, чтоб ИП локальный получить, а только затем проверяйте ППТП.

                      П.с. Как вариант, при загрузке pf-а задать первым поднимать ВАН , а только потом ППТП.
                      Команды можно вставить в Shellcmd, предварительно установив этот пакет.

                      Привязки по маку вроде нет, локальный ИП получаю, а вот ППТП перестал работать после "модернизации оборудования" где-то там у провайдера… :( Провайдер конечно же ничем помочь мне не смог в настройке :)

                      1 Reply Last reply Reply Quote 0
                      • 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
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.