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

    DHCP + PPTP on WAN

    Scheduled Pinned Locked Moved Russian
    402 Posts 58 Posters 489.5k 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.
    • werterW
      werter
      last edited by

      Однако, большой объем работ вы проделали, ув. NailMan. Большой и оч. нужный. Спасибо вам снова  ;D

      А насчет патчинга dhcp-клиента - это надо писать в англо-ветку непосредственно разработчикам.
      Согласен, что удобнее Pfsense (и бесплатно) сейчас решений нет. VyOS (форк Vyatta) не имеет веб-морды и возможностей меньше, Микротик - платный, Zentyal, ClearOS etc. - не совсем чистые роутеры и опять же возможности.

      Мн нужен мощный роутер(сквозные торренты на 100мбит), обязательный штатный SSH и обязательный встроенный OpenVPN до внутренней сети, особенно с внутренним скачиваемым клиентом и удобным центром сертификации

      Ну это почти все есть в Томато от Shibby. Ну центр сертификации не такой удобный как в пф, но ведь и клиента вы раз подключили и забыли.
      Нужна мощная железка - http://hotline.ua/network-besprovodnoe-oborudovanie/tenda-w1800r/  + Tomato Shibby's mode или Asus RT-AC66U

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

        С заменой dhclient я обязательно сегодня-завтра поиграюсь, плюс сегодня еще попробую переставить с нуля все, так как мне кажется траблы с dhclient какие то "наносные", тобишь возможно появились в результате каких то моих действий при поиске решений(изначально то их не было совершенно, были другие).

        Попробую переставить все, восстановить текущий конфинг с морды и прикрутить мои скрипты на чистую систему и посмотрю. Попутно попробую замену dhclient  если трабла "WAN IP Loss" появится снова(а оно появится почти сразу если таки появится).

        Менять железки на стоимостью 7к+ не вариант, шыло на мыло. Надо добить то что есть и возможно буржуям отчитаться по косякам для будущих изменений. Мне к примеру очень нравится Asus N16 в качестве точки доступа - она везде просвечивает в квартире и работает как часы как отдельный девайс.

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

          Настроил подключение по IP, не по hostname. Назову его IPROUTE. Распишу подробно рабочее решение, потому что с подключением по hostname, видимо, надолго всё затягивается.

          • Interfaces - assign. Настраиваю интерфейс WAN - DHCP.

          • Interfaces - assign - PPPs. Создаю подключение PPP с линком на созданный выше WAN, не на сетевую карту. Вместо hostname указываю IP шлюза IPROUTE. Узнать его можно Diagnostic - DNS Lookup.

          • Interfaces - assign. Создаю новый интерфейс PPTP. Там автоматом подставятся настройки PPP, созданного выше.

          • System - Routing. Ставлю default на интерфейс PPTP.

          • System - Routing - Routes. Добавляю маршрут до шлюза PPTP. Destination network — IPROUTE/32. Gateway — интерфейс WAN - DHCP.

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

            Итак, Господа, есть некоторые новости с решением проблемы потери WAN IP и-за несовершенства dhclient и довольно неожиданные.

            1. Попробовал я сделать подмену штатного dhclient на альтернативный ISC Dhclient. Так как в pfsense конфиги генерируемые, пришлось ставить костыль и подменять конфиг на тот что для нового dhclient катит(его полностью переписал по мануалу на базе дефолтного от ISC), заменой путей не очень получилось сделать подмену, так как rc.conf у pfsense тоже нет в прямом смысле(в штатном месте). Короче, я решил сделать прямую замену бинарников. заменил сам dhclient без его комплектного скрипта. Увы не заработало, поменял еще и скрипт, тоже не заработало. Проблема в том что у альтернативы ключ указания конфига в параметре запуска программы чуть иной(-cf вместо -c у родного), потому для такой замены палюбас придется копать глубоко те строки запуска где он вызывается, плюс из-за нестандартной структуры размещения файлов dhcliet-scrript надо тоже переделывать глубоко.

            Буду все таки попозже копать это дело и сперва поизучаю структуру файлов самого pfsense, так как решения для чистого freebsd тут не катят увы.

            2. После того как я переломал свой pfsense в результате подмены dhclient, я сделал восстановление системы. Я делал штатный бэкап из морды еще до извращений. Из packages был Крон, ОпенВПН клиенты и из консоли поставлен MC. С переустановил pfsense с LiveCD, преднастроил внутренний Айпишник и включил dhcp-сервер и через морду залил конфиг pfsense. После установки конечно же потеря WAN IP продолжила появляться, НО! она теперь случается не каждый час, или даже минут 20-30 что раздражало, а с промежутками 3-6-8ч! При этом я особо ничего не делал. Стало почти нормально и приемлемо.

            Плюс я переписал свой скрипт с использованием функций(для большей читаемости) и объединил все в одно

            #!/bin/sh
            
            restart_wan() {
            
                   ifconfig ue0 down
                    echo "WAN interface go down..." >>/tmp/watch_dns.log
                    echo "WAN interface go down..." | logger
                    echo "WAN interface go down..."
                   ifconfig ue0 up
                    echo "WAN interface go up..." >>/tmp/watch_dns.log
                    echo "WAN interface go up..." | logger
                    echo "WAN interface go up..."
                   sleep 6
            }
            
            restart_mpd() {
                  if [ -f /var/run/l2tp_opt1.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/l2tp_opt1.pid)
                     echo "l2tp is down - killing mpd5" >>/tmp/watch_dns.log
                     echo "l2tp is down - killing mpd5" | logger
                     echo "l2tp is down - killing mpd5"
                    kill $res2
                  fi
                  echo "restart l2tp by mpd5" >>/tmp/watch_dns.log
                  echo "restart l2tp by mpd5" | logger
                  echo "restart l2tp by mpd5"
                  /usr/local/sbin/mpd5 -b -k -d /var/etc -f mpd_opt1.conf -p /var/run/l2tp_opt1.pid -s ppp l2tpclient
            }
            
            nslookup tp.internet.beeline.ru | grep "Address: " -m 1 | grep "ddress: " | cut -d : -f 2 | cut -c 2-13  >/tmp/l2tp0_router 
            nslookup tp.internet.beeline.ru | grep "Address: " -m 1 | grep "ddress: " | cut -d : -f 2 | cut -c 2-13  >/tmp/l2tp0_defaultgw
            
            #check WAN interface manipulation
            wanisup=$(ifconfig ue0 | grep "UP" | cut -d "<" -f 2 | cut -d "," -f 1)
            
            if [ "$wanisup" != "UP" ]
            then
                  echo `date` "WAN interface is down, up it!" >>/tmp/watch_dns.log
                  echo "WAN interface is down, up it!" | logger
                  echo "WAN interface is down, up it!"
                  ifconfig ue0 up
                  sleep 6
                  restart_mpd
            else
               #if have no WAN ip and nameservers in /etc/resolv.conf present or no present
                waniptype=$(ifconfig ue0 | grep inet | cut -d " " -f 1 | cut -c 2-6)
                 if [ "$waniptype" == "inet6" ]
                 then
                  echo `date` "No WAN IP present! Restart WAN interface" >>/tmp/watch_dns.log
                  echo "No WAN IP present! Restart WAN interface" | logger
                  echo "No WAN IP present! Restart WAN interface"
                  restart_wan
                  restart_mpd
                 else
            #if WAN ip is present and nameservers is lost
                  dns=$(wc -l /etc/resolv.conf | cut -d ' ' -f 8)
                  dnsip=$(cat /etc/resolv.conf | grep "nameserver " | cut -d ' ' -f 2)
                    if [ "$dns" == "2" ] && [ "$dnsip" == "127.0.0.1" ]
                    then
                     echo `date` "No DNS servers present! Restart WAN interface" >>/tmp/watch_dns.log
                     echo "No DNS servers present! Restart WAN interface" | logger
                     echo "No WAN IP present! Restart WAN interface"
                      restart_wan
                      restart_mpd
            
                    else  
            #check L2TP interface if WAN is up and IP exist and DNS server present but no L2TP interface exist(is down)
                      l2tpexist=$(ifconfig l2tp0)
                      if [ -n $l2tpexist ]
                      then
                        echo `date` "L2TP interface not exist. Propably MPD5 not started" >>/tmp/watch_dns.log
                        echo "L2TP interface not exist. Propably MPD5 not started" >>/tmp/watch_dns.log | logger
            	    echo "L2TP interface not exist. Propably MPD5 not started" >>/tmp/watch_dns.log
                         restart_mpd
                      fi
                    fi
                 fi
            fi
            

            Кстати установленная Самба очень помогает обмениваться с pfsense конфигами. Вручную вставлять - вставляется криво в части разметки строк.

            Единственное - при запуске из консоли на что то ругается, но на что я не понимаю, так как все декларации делал по мануалу. На работоспособности это не отразилось. Если кто понимает в скриптах shell просьба указать мою синтаксическую ошибку.

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

              Итак коллеги я тут решительно поборол все свои глюки и недочеты в pfSense и могу поделиться выводами:
              1. Все мои траблы с пропажей WAN IP на физ. интерфейсе до провайдера были исключительно траблами с внешней USB-сетевой картой на компике-роутере. Она или сбойная была или это особенности именно USB-сетевух. DHCP в сборке pfSense эти особенности не понимал и потому терялось. Видимо по той же причине были отмечены периодическое появление жутких пингов до провайдера(обычно 1.5мс, которые вырастали до 75-100мс).

              Из-за подозрений насчет сетевухи я взял и поменял полностью платформу на роутер. Взял материнку с распаянным процом GA-C1037UN-EU и маленький корпус под Micro-ITX. На материнке штатные 2 порта гигабитных(2x Realtek 8111f). pfSense встал как родной, все определилось, лишнее в Биосе выключил.

              В результате роутер стал просто шоколадкой! Никаких проблем с удержанием физ. линка, никаких отвалов L2TP! Оччччень шустрый, пинг до шлюзов WAN и L2TP железно 0.5-1.5мс.
              Celeron 1037U имеет широчайший диапазон по технологии SpeedStep и в основном частота проца pfSensе'ом держится на уровне 200-700мгц, редко подпрыгивая до 1.2ггц при рендере RRD-Tool-ом графиков статистики и производительности. При этом сквозь роутер идут торренты на скорости 80мбит по L2TP! Температура в среднем 28-30С на проце.

              железом я очень теперь доволен. Вышло мне в 4тыр за платформу с 2Гб памятю+2тыр за корпус, диск у меня был. Производительность чумовая.

              2. Чехарда с L2TP GateWay's еще есть, потому скрипт по сути отрабатывает nslookup и подсовывает в текущие настройки соединения. За 9 часов аптайма после единственной перезагрузки роутера скрипт "по-боевому" (пересброс wan/l2tp) не срабатывал.

              Таким образом решение pfSense+L2TP+Beeline можно считать готовым к жизни. Залог удачи - железо и отсутствие всяких внешних сетевух. Траблы с Билайном решаются моим скриптом. В случае "тухлого" железа решается пересбросами интерфейсов, а сама чехарда с помощью трика с nslookup.

              3. В целом можно и не делать трик со скриптом. Я в настройках прописал адрес часто "встречающегося"  по nslookup-у гейта, и просидел на жестко-прописанном его IP часа 3-4 без каких то траблов, однако скрипт все таки свой включил на всяк пожарный.

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

                При этом сквозь роутер идут торренты на скорости 80мбит по L2TP!

                Слабоват результат, для такого мощного железа.

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

                  В чем слабоват?
                  Вот графики по сегодняшнему вечернему периоду
                  http://nailalex.dyndns.org/zakroma/photos/2014-02-04_221048.jpg

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

                    Настроил соединяется…. только скорость всего 21-22 мега бита из тарифных 70

                    Куда копать? кто виноват?

                    Работает так GA-C1037UN-EU > win7 > virtualbox 3.8.1 > pfsense 2.1
                    сетевухи в виртуалке intel pro 1000 mt

                    настройки как тут - http://habrahabr.ru/sandbox/52837/

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

                      Ставьте на реальное железо. Сетевые должны быть гигабитные и лучше , чтобы Intel.

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

                        @redbass:

                        Настроил соединяется…. только скорость всего 21-22 мега бита из тарифных 70

                        Куда копать? кто виноват?

                        Работает так GA-C1037UN-EU > win7 > virtualbox 3.8.1 > pfsense 2.1
                        сетевухи в виртуалке intel pro 1000 mt

                        настройки как тут - http://habrahabr.ru/sandbox/52837/

                        Там по ссылке  настроено на реальном железе.
                        Попробуйте на virtualbox настроить  WAN интерфейс как сетевой мост.
                        У меня какое-то время работал  PF на virtualbox в 7-е. Проблем со скоростью не было.

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

                          @gr0mW:

                          Попробуйте на virtualbox настроить  WAN интерфейс как сетевой мост.
                          У меня какое-то время работал  PF на virtualbox в 7-е. Проблем со скоростью не было.

                          естественно WAN настроен как мост. А клиент тоже гостевая система в VirtualBox, но уже через виртуальную сеть.

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

                            А скорость чем замеряете? Speedtest, torrent, iperf?

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

                              @werter:

                              Ставьте на реальное железо. Сетевые должны быть гигабитные и лучше , чтобы Intel.

                              на его GA-C1037UN-EU(как и на моей) совершенно нормальные реалтеки 8111f которые на pfSense робят не хуже "интела". Но…это если ставить на физика, а не виртуаль. С виртуалками много левой мути, непоняток и очень зависит от софта виртуализации.

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

                                Static IP + PPTP.
                                PFSense 2.1.
                                Не идут пакеты с хостов сети lan (192.168.0.0/24) в провайдерскую сеть (172.16.0.0/12). Заворачивают сразу в интернет, хотя непосредственно с самого fw - все норм.
                                Статический маршрут
                                172.16.0.0/12 GW_OPT1 - 172.26.62.1 CITYLAN default route
                                прописан.
                                Еще не могу выбрать в интерфейсе opt1 (172.26.62.5) , который физически смотрит в сеть провайдера, шлюз 172.26.62.1. Система не дает это сделать - типа ip не принадлежит сети или vip or VIP (This IPv4 address is being used by another interface or VIP).
                                В чем загвоздка?

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

                                  pfSense 2.1.5

                                  Как в нём настраивается DHCP + PPTP на WAN интерфейсе? Как добиться устойчивой работы в условиях, когда PPTP сессия периодически ложится? 27 страниц прочитал, рецепты, скрипты, много, какой идеологически верный? :)

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

                                    Как добиться устойчивой работы в условиях, когда PPTP сессия периодически ложится?

                                    Из коробки всё замечательно переподнимается и работает, кроме:

                                    Кто-нибудь нашёл способ в последней сборке 2.1.5 указывать l2tp gateway в виде tp.internet.beeline.ru а не IP-адреса ?  :o

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

                                      Сегодня впервые за 4 месяца оборвалось соединение от билайна при использовании скрипта "NailMan". В логах писало, что не мог найти интерфейс l2tp0. В интерфейсе L2TP (Remote IP address)сменил IP и все вновь заработало. От чего такое получилось непонятно.

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

                                        Ребят, так можно по L2TP подконнектиться к tp.internet.beeline.ru на 2.2.1 версии или нет ????

                                        1 Reply Last reply Reply Quote 0
                                        • W
                                          wayman
                                          last edited by

                                          Всем привет. Настроил последнюю версию Pfsense 2.2.1 на подключение beeline в виде wan_dhcp+opt1_l2tp
                                          Интернет работает прекрасно все хорошо. Настраивал по статье http://moonback.ru/page/pfsense

                                          Однако есть проблема с реальником. Провайдер по тарифу дает белый IP и настроив пробросы на определенные сервисы внутрь  сети ничего не работает. Скорее всего проблема с маршрутами т.к. не работает и icmp (т.е. из вне белый ip не пингуется как я не настраивал правила firewall)

                                          Проброс и firewall настроены скорее всего верно т.к. на таком же шлюзе но на провайдер без тунеля все работает и icmp и пробросы. Проблема, скорее всего в маршрутах. Пытался прописать по аналогии с windows машиной, результата нет. При отключении функции firewall в личном кабинете билайн, вообще перестает выдаваться белый ip в тунеле.

                                          На windows машине все работает нормально.
                                          Заранее благодарен за любые рекомендации.
                                          Если нужна какая-то техническая инфа, то скажите какая, без проблем предоставлю.

                                          1 Reply Last reply Reply Quote 0
                                          • W
                                            wayman
                                            last edited by

                                            Получилось настроить.
                                            Ответ вот тут:

                                            https://forum.pfsense.org/index.php?topic=64367.msg348929#msg348929

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