DHCP + PPTP on WAN
-
Однако, большой объем работ вы проделали, ув. 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 -
С заменой dhclient я обязательно сегодня-завтра поиграюсь, плюс сегодня еще попробую переставить с нуля все, так как мне кажется траблы с dhclient какие то "наносные", тобишь возможно появились в результате каких то моих действий при поиске решений(изначально то их не было совершенно, были другие).
Попробую переставить все, восстановить текущий конфинг с морды и прикрутить мои скрипты на чистую систему и посмотрю. Попутно попробую замену dhclient если трабла "WAN IP Loss" появится снова(а оно появится почти сразу если таки появится).
Менять железки на стоимостью 7к+ не вариант, шыло на мыло. Надо добить то что есть и возможно буржуям отчитаться по косякам для будущих изменений. Мне к примеру очень нравится Asus N16 в качестве точки доступа - она везде просвечивает в квартире и работает как часы как отдельный девайс.
-
Настроил подключение по 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.
-
-
Итак, Господа, есть некоторые новости с решением проблемы потери 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 просьба указать мою синтаксическую ошибку.
-
Итак коллеги я тут решительно поборол все свои глюки и недочеты в 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 без каких то траблов, однако скрипт все таки свой включил на всяк пожарный.
-
При этом сквозь роутер идут торренты на скорости 80мбит по L2TP!
Слабоват результат, для такого мощного железа.
-
В чем слабоват?
Вот графики по сегодняшнему вечернему периоду
http://nailalex.dyndns.org/zakroma/photos/2014-02-04_221048.jpg -
Настроил соединяется…. только скорость всего 21-22 мега бита из тарифных 70
Куда копать? кто виноват?
Работает так GA-C1037UN-EU > win7 > virtualbox 3.8.1 > pfsense 2.1
сетевухи в виртуалке intel pro 1000 mtнастройки как тут - http://habrahabr.ru/sandbox/52837/
-
Ставьте на реальное железо. Сетевые должны быть гигабитные и лучше , чтобы Intel.
-
Настроил соединяется…. только скорость всего 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-е. Проблем со скоростью не было. -
Попробуйте на virtualbox настроить WAN интерфейс как сетевой мост.
У меня какое-то время работал PF на virtualbox в 7-е. Проблем со скоростью не было.естественно WAN настроен как мост. А клиент тоже гостевая система в VirtualBox, но уже через виртуальную сеть.
-
А скорость чем замеряете? Speedtest, torrent, iperf?
-
Ставьте на реальное железо. Сетевые должны быть гигабитные и лучше , чтобы Intel.
на его GA-C1037UN-EU(как и на моей) совершенно нормальные реалтеки 8111f которые на pfSense робят не хуже "интела". Но…это если ставить на физика, а не виртуаль. С виртуалками много левой мути, непоняток и очень зависит от софта виртуализации.
-
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).
В чем загвоздка? -
pfSense 2.1.5
Как в нём настраивается DHCP + PPTP на WAN интерфейсе? Как добиться устойчивой работы в условиях, когда PPTP сессия периодически ложится? 27 страниц прочитал, рецепты, скрипты, много, какой идеологически верный? :)
-
Как добиться устойчивой работы в условиях, когда PPTP сессия периодически ложится?
Из коробки всё замечательно переподнимается и работает, кроме:
Кто-нибудь нашёл способ в последней сборке 2.1.5 указывать l2tp gateway в виде tp.internet.beeline.ru а не IP-адреса ? :o
-
Сегодня впервые за 4 месяца оборвалось соединение от билайна при использовании скрипта "NailMan". В логах писало, что не мог найти интерфейс l2tp0. В интерфейсе L2TP (Remote IP address)сменил IP и все вновь заработало. От чего такое получилось непонятно.
-
Ребят, так можно по L2TP подконнектиться к tp.internet.beeline.ru на 2.2.1 версии или нет ????
-
Всем привет. Настроил последнюю версию Pfsense 2.2.1 на подключение beeline в виде wan_dhcp+opt1_l2tp
Интернет работает прекрасно все хорошо. Настраивал по статье http://moonback.ru/page/pfsenseОднако есть проблема с реальником. Провайдер по тарифу дает белый IP и настроив пробросы на определенные сервисы внутрь сети ничего не работает. Скорее всего проблема с маршрутами т.к. не работает и icmp (т.е. из вне белый ip не пингуется как я не настраивал правила firewall)
Проброс и firewall настроены скорее всего верно т.к. на таком же шлюзе но на провайдер без тунеля все работает и icmp и пробросы. Проблема, скорее всего в маршрутах. Пытался прописать по аналогии с windows машиной, результата нет. При отключении функции firewall в личном кабинете билайн, вообще перестает выдаваться белый ip в тунеле.
На windows машине все работает нормально.
Заранее благодарен за любые рекомендации.
Если нужна какая-то техническая инфа, то скажите какая, без проблем предоставлю. -
Получилось настроить.
Ответ вот тут:https://forum.pfsense.org/index.php?topic=64367.msg348929#msg348929