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

    DHCP + PPTP on WAN

    Scheduled Pinned Locked Moved Russian
    402 Posts 58 Posters 511.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.
    • B
      bersercer
      last edited by

      Приветсвую всех пользователей интернета по "технологии" PPTP/L2TP поверх DHCP!
      Слежу за различнми решениями поддерживающими работу PPTP/L2TP поверх DHCP с 2009г., в том числе и за pfsense с марта 2010г., но на тот момент у меня не получилось настроить работу Билайна :(
      Поэтому еще в октябре 2010г. я начал регулярно "дергать" разработчиков ИКС (Интернет Контроль Сервер см. http://xserver.a-real.ru) по поводу нормальной и стабильной реализации PPTP/L2TP поверх DHCP.
      И наконец 28 марта 2013 года в версии ИКС-4.4.5.15464 от 26.03.2013 релиз, о котором представитель техн. поддержки сообщил:
      @Александр:

      @aen1975:

      Рассматриваем ИКС как вариант для покупки на роль интернет-шлюза и почтовика. Провайдер использует L2TP -подключение (АтлантТелеком (Минск, Беларусь) Езернет, DHCP, после подключения - получаем статик айпи). Все ли проблемы  с L2TP на сегодня решены?

      На последней версии проблем при тестировании  не обнаружилось.

      Предлагаю присоединиться к пользователям ИКС, который до 8-ми пользователей бесплатен (см. http://xserver.a-real.ru/description/iks_lite.php).
      И принять участие в оптимизации работы PPTP/L2TP поверх DHCP см. http://xserver.a-real.ru/forum/viewtopic.php?p=25953#25953
      С Вашим опытом и знаниями уверен это будет очень плодотворно!

      ИКС достаточно оперативно развивается и "обрастает" новым функционалом см. голосование http://ics.reformal.ru/

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

        Hi,

        i'm not using pfsense so wasn't on the forum, but saw this thread so:

        ncat, i think you mixed changes made to two different code branches.
        The changes i made were mostly before the merge from gnhb branch (pages ~4 and such in that thread),
        and made on the 2.0 BETA. they are mostly irrelevant now, as gnhb merged the code later and made a gui
        http://forum.pfsense.org/index.php/topic,25465.msg180054.html#msg180054

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

          Micky, thx for post. I'll check the information

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

            ncat, спасибо за проделаную работу!
            Сделал все как было указано - поднялось с первого раза )
            Пробую опять вернуться на пфсенс - отпишусь сколько проработает в таком режиме без проблем.

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

              Для версии 2.1 pfsense не подходят скрипты от ncat, нужно что то другое, разработчики что то там наваяли другое. Интернет от билайна теперь вообще не хочет запускаться.

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

                @Dealaxer:

                Для версии 2.1 pfsense не подходят скрипты от ncat, нужно что то другое, разработчики что то там наваяли другое. Интернет от билайна теперь вообще не хочет запускаться.

                Я пока не ставил, и, думаю что не стоит торопиться. Почитаю отзывы, подожду фиксов (2.1.1). Для Вас решение простое - откатиться назад  ;) бэкап, надеюсь, сделали?
                А может они сделали так что теперь Билайн работает без костылей?

                Вообще, конечно, интересно поэкспериментировать надеюсь будет время.

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

                  В 2.1 Release WAN_DHCP+L2TP поднимается после падения линка само, без скриптов. Неделя полёт нормальный.
                  Зато других глюков добавили - не принимает ICMP на L2TP интерфейс, тоесть пинговать извне не получается, rules никакие не помогают, при этом NAT работает :)

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

                    2.1 Обновился
                    dhcp+pptp
                    Стояла 2,0 все работало, правда с реконектом были проблемы
                    Настройка такова ВАН-дхцп опт1 на вани там пптп
                    Все тоже в 2,1 лыжи не едут, захочет подключится, захочет нет….
                    Такое чувство что подключается не через ВАН, а через ХЗ
                    Подскажите что делать? Реконект важен....

                    После обновы сбросил в заводские.

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

                      немного разобрался, конектится он через дефолтный гетвей, потому при его смене перестает все работать, ну и по прежнему при старте нет конекта, надо пинать кнопкой, после этого реконект есть, проверено высовыванием кабеля, вроде как еще есть плавающая проблема, с реконектом, но это нужно подтвердить еще….
                      Какую версию поставить для ставить для стабильного конекта?????

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

                        на 2.0 костыль использовали для pptp?

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

                          Щас тупо откатил на 2.0 RC3 закинув через вебморду, работает, реконекты не проверял, но после перезагрузки завелось само…
                          Костыли никогда не использовал. и так работало.... Правда не всегда хорошо :)
                          Версия i386
                          К слову х64 когда-то ставил, недопилы в дровах там были....

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

                            Коллеги, подскажите, какая сейчас ситуация с l2tp поверх dhcp для Beeline?
                            У меня не поднимается l2tp ((
                            Мои настройки:
                              Interfaces:WAN
                                Enable: Enanable Interface
                                Description:WAN
                                IPv4 Configuration Type: DHCP
                                IPv6 Configuration Type: None
                                Остальные параметры не менял
                              Interface: LAN
                                Enable: Enanable Interface
                                Description:LAN
                                IPv4 Configuration Type: Static IPv4
                                IPv6 Configuration Type: None
                                IPv4 address: 192.168.20.100/24
                                Остальные параметры не менял
                              Interfaces: PPP
                                Link Type: L2TP
                                Link Interfaces: WAN
                                Description: Beeline
                                Username: 089xxxxxxx
                                Password: xxxxxxxxxxxx
                                Local IP(em1): 9x.xxx.xxx.xxx (у меня статика). Почему маска 32 недоступна?
                                Remote IP address: 85.21.0.255 (tp.internet.beeline.ru)
                              Interfaces: OPT1
                                Enable: Enanable Interface
                                Description:OPT1
                                IPv4 Configuration Type: L2TP
                                IPv6 Configuration Type: None
                                Username:089xxxxxxxxxx
                                Password:xxxxxxxxxx
                                Local IP address: 9x.xxx.xxx.xxx (у меня статика). Почему маска 32 недоступна?
                                Remote IP address: 85.21.0.255 (tp.internet.beeline.ru)
                                Enable-on-Demand mode: yes
                                Idle timeout: 15
                              Interfaces: Assign network ports
                                WAN - em1
                                LAN  - em0
                                OP1 - l2tp0(wan) - Beeline

                            ifconfig выдает ppp0:
                                inet addr: 9x.xxx.xxx.xxx P-t-P:85.21.0.255 Mask:255.255.255.255

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

                              А поискать - не судьба?

                              https://www.google.com.ua/search?client=opera&q=Beeline+pfsense

                              http://forum.pfsense.org/index.php/topic,64367.15.html

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

                                @werter
                                Спасибо за гугловую ссылку, она он очень помогает. Я переформулирую вопрос: До сих пор нужно все допиливать, что описано в этой ветки? (просто сейчас версия 2.1, и прошло уже достаточно времени со времен постов)

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

                                  Просто у вас провайдер "чудесный". Pfsense тут ни при чем.

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

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

                                    Я вот недавно по совету коллеги решил на pfSense перейти(канал не качает RT-N16) и сижу дома на том самом чудесном провайдере Билайн. Еще в пору WL500GpV2 и RT-N16 приходилось бороться(писать скрипт в Крон) с его чудными замутами с tp.internet.beeline.ru и сменой айпишника без дропа PPPTP(при переходе на l2tp такая беда почти пропала). Но на pfSense - это просто чума какая то!

                                    Пробовал местный солюшен с правкой /etc/inc/interfaces.inc и скриптами в Крон - хрен там. Не пашет!  Последил nslookup-ом в течение двух вечеров что делается на tp.internet.beeline.ru - он с переодичностью в ~30мин - 2ч полностью меняет пару айпишников гейтов(по двум DNS у меня приходят). Я пробовал менять на "протухший" айпи в интерфейсе Opt1(l2tp0) из какой то предыдущей пары при совершенно иной другой паре IP - работает до какого то момента и после очередной смены как то все падает.

                                    В итоге я решил так попробовать сделать(пока самый простой вариант) решения проблемы "протухания" гейта:
                                    в Cron добавил команду(берет первый IP гейта из пары, соотвественно самый "быстрый"):
                                    nslookup tp.internet.beeline.ru | grep "Address: " -m 1 | grep "ddress: " | cut -d : -f 2 | cut -c 2-13 >/tmp/l2tp0_router

                                    с настройкой времени запуска minute: */1  и всеми остальными *, пока тестирую - все живет и не падает. с переодичностью 1 минуту меняется IP(или не меняется если текущий гейт "шустрее") в gateway на интерфейсе OPT1(l2tp0), связь не рвется.

                                    При этом в настройках l2tp прописан прямой IP одного из гейтов(самый "частый" по наблюдениям).

                                    Такой вариант кто то пробовал? Это я до Плацебо додумался или это какое то реальное решение?

                                    UPD спустя сутки мониторинга: роутер без дропов, падений физ-линка, l2tp прожил сутки. При этом я извне периодически смотрел какой IP у Gateway  на l2tp - пару раз менялись пары, но ни разу не прерывалось. Кажется проблема с гейтами решена без особого куроченья файлов системы.

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

                                      2 NailMan

                                      Спасибо! Если неделю не будет проблем - это еще одно решение в "борьбе" с Пчелайном.

                                      P.s.

                                      (канал не качает RT-N16)

                                      Советую взглянуть на прошивку Tomato - http://tomato.groov.pl/
                                      Описание прошивки - http://www.bxtra.net/articles/2012-12-23/how-to-flash-tomatousb-by-shibby-on-asus-rt-n12-b1c1-wireless-n-router

                                      Ваша будет по адресу - http://tomato.groov.pl/download/K26/build5x-115-EN/tomato-K26USB-1.28.RT-MIPSR2-115-AIO.trx

                                      P.s. Есть ньюанс в настройке Dual\Russian , но могу подсказать как решить:

                                      1. В веб-морде на WAN настраиваете L2TP.
                                      2. С помощью скриптов настраивате "серый" адрес на WAN и маршрутизацию (подставляйте свои данные!) :

                                      Firewall:
                                      iptables -A POSTROUTING -t nat -o vlan1 -j SNAT –to-source 172.25.83.245
                                      ip route change 172.25.0.0/16 dev vlan1 via 172.25.83.1

                                      WAN UP:
                                      ifconfig vlan1 172.25.83.245 netmask 255.255.255.0
                                      route add -net 172.25.0.0 netmask 255.255.0.0 gw 172.25.83.1

                                      vlan1 - WAN-интерфейс (у вас он может называться на роутере по-другому - команда ifconfig покажет)

                                      172.25.83.245 - заменить на свой локальный IP

                                      172.25.0.0 netmask 255.255.0.0 - заменить на адрес(-а) сети(-ей) и подсети(-ей) вашего провайдера

                                      172.25.83.1 - заменить на адрес вашего локального шлюза

                                      И не забываем отключить "Предотвращать DNS-атаки" - блокирует впн и торрент.

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

                                        @werter:

                                        2 NailMan

                                        Спасибо! Если неделю не будет проблем - это еще одно решение в "борьбе" с Пчелайном.

                                        Рано я радовался    :( , проблемы не решены полностью таким простым способом. Смену гейтов на l2tp0 мой фокус позволяет побороть, но периодически физический WAN "теряет" оба DNS-сервера и все встает в клин. Вот как раз пока я сегодня на работу ехал, оно отвалилось от WAN. Вчера тоже самое случилось когда я был дома. Успел сохранить лог чтобы покопаться в ситуации.

                                        Надо сделать скриптик и отслеживать наличие DNS на WAN порту, если не нашлись - делаем WAN down/up. Примерно похоже я на линуксе на wl500/n16 делал, только я там получал IP своего DDNS-домена и если он был отличен от того что реально на L2TP порту то физзинк линк перезапускался.

                                        Вечером попробую воплотить скриптик.

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

                                          Итак, потестировал несколько дней, нарвался на сброс DNS на физическом WAN, подробно проанализировал ситуацию с интерфейсами и адресами и с радостью оттестировал два скрипта(пришлось кой чего подправить). Прошу не пинать - я не линуксоид и тем более не фришник. Давным давно программировал на дельфях, потому может покажется не красиво и неоптимально.

                                          Вот что вышло у меня для решения проблем с линком на Билайне. Делаем 2 скрипта и добавляем их в Крон:
                                          1. Патчинг gatways для L2TP. Я разместил его в /root/etc/watch_gw.sh

                                          
                                          #!/bin/sh
                                          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 2 | grep "ddress: " | cut -d : -f 2 | cut -c 2-13 >/tmp/l2tp0_defaultgw
                                          
                                          

                                          где  первый из полученный адресов засунется в /tmp/l2tp0_router  (как я понял это адрес шлюза), второй засунется в дефолтный шлюз( вчем между ними разница я не знаю, допирал интуитивно)

                                          В Кроне он запускается раз в минуту, т.е. minutes = */1, остальное *

                                          2. следилка за WAN. Проверяет поднят ли WAN(если нет, стартует его и l2tp вслед за ним[код использовал частично из местного солюшена]), если поднят, то проверяет наличие записей в /etc/resolv.conf и если там 2 строки - первая домен и вторая это адрес локалхоста, то гасит и подымает wan и стартует L2TP. После делает тоже самое что и watch_gw.sh (на всяк пожарный). размещается в /root/etc/watch_dns.sh

                                          
                                          #!/bin/sh
                                          
                                          wanisup=$(ifconfig ue0 | grep "UP" | cut -d "<" -f 2 | cut -d "," -f 1)
                                          
                                            if [ -z $wanisup ];
                                            then
                                              ifconfig ue0 down
                                              sleep 5
                                              ifconfig ue0 up
                                              sleep 10
                                              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" | logger
                                               echo `date` "l2tp is down - killing mpd5" >>/tmp/watch_dns.log
                                               kill $res2
                                              fi
                                            echo "restart l2tp by mpd5" | logger
                                            echo "restart l2tp by mpd5" >>/tmp/watch_dns.log
                                          
                                           /usr/local/sbin/mpd5 -b -k -d /var/etc -f mpd_opt1.conf -p /var/run/l2tp_opt1.pid -s ppp l2tpclient
                                           sleep 10
                                          
                                            else
                                             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
                                                 ifconfig ue0 down
                                                 sleep 5
                                                 ifconfig ue0 up
                                                 sleep 10
                                                  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" | logger
                                                    echo `date` "l2tp is down - killing mpd5" >>/tmp/watch_dns.log
                                                    kill $res2
                                                  fi
                                                    echo "restart l2tp by mpd5" | logger
                                                    echo "restart l2tp by mpd5" >>/tmp/watch_dns.log
                                                 /usr/local/sbin/mpd5 -b -k -d /var/etc -f mpd_opt1.conf -p /var/run/l2tp_opt1.pid -s ppp l2tpclient
                                                 sleep 10
                                              fi
                                          
                                           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 2 | grep "ddress: " | cut -d : -f 2 | cut -c 2-13 >/tmp/l2tp0_defaultgw
                                            fi
                                          
                                          

                                          Соответственно ue0 - в данном случае мой физический WAN, L2tp на OPT1

                                          В Кроне отрабатывается раз в 2 мин, соотвественно minutes */2

                                          Итог работы - отследился и сбросился-поднялся физлинк и за ним L2TP при ситуации "пропадания" DNS-ов, и постоянно "держится на пульсе" гейвей. С первым скриптом не падало подряд 3 дня. Сейчас будет не падать постоянно.

                                          Вот как то так.

                                          ДА! Релиз у меня 2.1-RELEASE (i386) если это важно.

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

                                            2 NailMan
                                            Еще раз выражаю благодарность.
                                            Вот уж действительно полезный пост.

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