Anonymous

Howto: Роутер для Корбины на базе FreeBSD или OpenBSD

Рекомендованные сообщения

HOWTO: Роутер для Корбины на базе FreeBSD или OpenBSD

 

Причина появления этого текста такова: после подключения к Корбине огорчило, что очень непросто подключить более одной машины в доме одновременно. Раньше был стрим, стояла m0n0wall, и было все хорошо, да и без нее - роутер внутри модема неплохо справлялся. А здесь пришлось воткнуть провод напрямую - и без любимого traffic shaping стало жить очень грустно (я много качаю через edonkey2000 и bittorrent). Поискал аппаратное решение - нашел только слабенькие клоны WRT54G от Asus с хакнутыми прошивками. Больше 20 мегабит они через себя пропустить не могут, да и с DHCP снаружи свежие прошивки, вроде бы, не работают. В итоге плюнул - и пошел собирать себе роутер на базе BSD-образных ОС с нуля. А теперь, после благополучной установки и настройки, хочу поделиться опытом, поскольку собирать информацию пришлось по крупицам из разных источников.

 

Рассказывать буду для "продвинутых чайников" (к которым отношу и себя), имеющих общее представление о сетях и юниксах, готовых читать FAQи и man'ы, но ни в коем разе не профессионалов. У меня процесс занял дня три-четыре, из них собственно выполнение разумных действий - часа три, остальное - раздумья, чтение документации и решение неожиданных проблем. По готовому легко можно уложиться за один вечер.

 

Средства: есть лишний компьютер (можно достаточно старый, но первый Pentium будет чуток слабоват - хотя бы мегагерц 500-600 необходимо для обработки 100-мегабитного потока, больше - лучше). В нем налицо две сетевые карты (очень желательно - стомегабитные). Есть какой-то способ подключить к нему остальные машины в квартире (свитч или хотя бы хаб и немного патч-кордов). Есть руки и голова. Есть минимальное понимание, как работает Internet, и что делает команда ls в юниксах :huh:

 

Цели: хочется соорудить нечто, стоящее между рабочей машиной (или машинами - если в доме есть несколько компьютеров) и Корбиной, и решающее все сетевые проблемы самостоятельно. Доступ в локалку, в интернет, раздача внутрь адресов по DHCP, кэширование dns для пущей скорости (особенно приятно в условиях <censored> перегруженного радиоканала в Новых Черемушках), traffic shaping, ftp-сервер, firewall, ssh, dyndns, ntpd. Желающие могут добавлять что угодно, да и сам я думаю про samba (только внутри, между своими машинами - мне не интересны MS-shares в локалке), mldonkey, apache, но все это я пока не трогал, а потому и описывать не буду.

 

Софт: линуксов я боюсь и не понимаю - опыт общения небольшой, но по нему они весьма похожи на порцию спагетти, перемешанную с кусками проводов и живыми червяками :huh: Поэтому выбираем из FreeBSD 6.0 и OpenBSD 3.8. В целом, обе очень похожи, на мой вкус OpenBSD чуток поприятнее, постройнее и попроще в настройках, по слухам, понадежнее и побезопаснее, зато, по слухам же, помедленнее в задачах роутера/сервера. До экспериментов я бы сказал, что если процессор избыточен - стоит взять OpenBSD, если машинка "на грани", как у меня, то FreeBSD.

 

Однако, забегая вперед, должен сказать, что я честно проделал все два раза, на обеих ОС, и оставил в итоге OpenBSD. Как это ни странно - именно из-за скорости! Причин я не понимаю, но лишние полмегабайта в секунду по FTP получаются на одном и том же железе с одними и теми же настройками, и при этом налицо лишние 10% свободного процессора одновременно (загрузка 90% и 80% соответственно). В обоих случаях используем pf, как самый мощный и удобный, и pptpclient, как быстро и просто настраиваемый (хоть и глючен, зараза, невероятно).

 

Подготовка: pptpclient нужно выкачать заранее - без него мы не увидим интернета, а без интернета нам его не выкачать :D Ну, вы понимаете. Заодно можно выкачать что-нибудь типа mc и всех пакетов, которые ему нужны, чтобы было быстрее и веселее. Само собой, это все личные предпочтения, но для OpenBSD, в итоге, я ограничился выкачиванием и установкой следующего (а для FreeBSD - чего-то похожего):

bash-3.0.16p1 GNU Bourne Again Shell

ddclient-3.6.3 Dynamic DNS service update client

gettext-0.10.40p3 GNU gettext

glib2-2.6.4 general-purpose utility library

libiconv-1.9.2p1 character set conversion library

links+-2.1pre17-no_x11 graphics and text browser with javascript support

mc-4.6.1 free Norton Commander clone with many useful features

pptp-1.6.0 PPTP client package for Microsoft VPN servers

unzip-5.52 extract, list & test files in a ZIP archive

wget-1.10.2 retrieve files from the 'net via HTTP and FTP

zip-2.3p0 create/update ZIP files compatible with PKZip

А можно, кстати, всего этого и не делать, и все выполнять встроенными средствами (базовый набор команд vi изучается за десять минут по любому FAQ'у). Тогда pptp-1.6.0 - и больше ничего.

 

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

 

FreeBSD

 

Качаем версию 6.0-RELEASE, читаем документацию по установке, ставимся. Пакетов ставим разумный минимум, никаких иксов, разве что исходники ядра понадобятся. Никаких особых заморочек при разбивке диска, особенно если машина выделенная, и винчестер идет целиком под нее. Соглашаемся на все, что нужно для будущей сети (снаружи - dhcp, внутри - фиксированный адрес, что-нибудь типа 192.168.1.1, только во время редактирования inetd.conf не пытаемся снимать комментарий со строки ssh - она запускается иначе, про нее спросят отдельно, а две копии нам точно не нужны (иначе потом будут сообщения об ошибках ssh/tcp: bind: Address already in use). То есть снимаем комментарий с ftpd и ftp-proxy, остальное не трогаем.

 

Чтобы не было странных пауз при загрузке, когда разные сервисы хотят разобраться с именами компьютеров, и тщательно ждут таймаутов, не забудьте прописать fully qualified domain name (в том числе в файле hosts), например mymachine.local. Ну и, опять же, совершенно не вредно подключить машинку сразу к корбиновской локалке - пусть она по dhcp получит адрес и не горюет на эту тему. Само собой, свою рабочую при этом отключите, два компа в корбиновской локалке из одной квартиры - запрещено договором.

 

В общем и целом, почти все дефолты весьма разумные, кроме, пожалуй, разбиения диска - самым большим рекомендую сделать раздел, куда вы положите home directory пользователя ftp, а по умолчанию такой раздел - /usr, что немного странновато.

 

Ставить русский шрифт разумно в кодировке 1251. Зачем? Да затем, что на ftp обязательно кто-нибудь зальет файл с русским именем, и удобно видеть его читаемым, если вы еще не оторвали клавиатуру и монитор от этого компьютера. Увы, при этом лично мне не удалось получить разумные рамочки в mc в консоли, но это не такая уж страшная цена. Кстати, можно и не заморачиваться вообще - все равно по ssh все видно нормально, включая рамочки, а клавиатуру и монитор лучше оторвать и использовать как-то иначе.

 

Большой интернет - первые шаги

 

Установка пакетов проста до идиотизма: pkg_add -r <имя пакета> (где -r означает "разрешить автоматическое выкачивание" и не требует даже указания точной версии пакета). А можно и файл указать - тоже сработает.

 

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

 

Редактируем файлы: /etc/ppp/ppp.conf

corbina:

set authname <LOGIN>

set authkey <PASSWORD>

set timeout 0

set ifaddr 0 0

disable pap

add! default HISADDR

allow users

 

Дальше можно уже попробовать ручной запуск:

route add -host vpn.corbina.net 10.197.0.17

pptp vpn.corbina.net corbina

 

Получилось? Что-нибудь типа ping ya.ru прошло успешно? Поздравляю. Не получилось? Вперед, читать маны, факи и прочие радости. Не забудьте только оторвать от сети машину-неудачницу перед тем, как подключить обратно свою рабочую: в Корбине официально запрещено цеплять несколько машин в одной квартире.

 

Тем, у кого получилось, можно автоматизировать процесс. Для этого достаточно создать пару файлов:

 

-------------------

 

/usr/local/etc/rc.d/corbina.pptp.sh:

 

#!/bin/sh

 

case "$1" in

 

start)

echo -n ' Corbina PPTP '

if [ -x /usr/local/etc/pptp.wrapper.sh ] ; then

echo -n " establishing connection"

/usr/local/etc/pptp.wrapper.sh &

fi

;;

 

stop|restart)

kill `cat /var/run/tun0.pid`

;;

 

*)

echo "usage: $0 { start | stop | restart }" >&2

exit 1

;;

 

esac

 

-------------------

 

/usr/local/etc/pptp.wrapper.sh:

 

#!/bin/sh

 

while true ; do

/usr/local/sbin/pptp vpn.corbina.net vpn

if [ -f /var/run/nologin ] ; then

exit

fi

/etc/rc.d/routing restart

sleep 10

egrep ' pptp\[' /var/log/messages |

tail -33 |

mail -s "pptp on `hostname` restarted" root

done

 

---------------------

 

На этом же этапе пора начать редактировать /etc/rc.conf. В принципе, дописать туда придется много всего по разным поводам, но сейчас нам интересно вот это (первый и второй - это доступные без интернета внутри-корбиновские адреса, типа homenet.corbina.ru и т.п.), а третий - собственно локалка). Само собой, адрес шлюза надо заменить на ваш - но такой уровень познаний предполагается при чтении этого документа :)

 

/etc/rc.conf

...

static_routes="corbina1 corbina2 corbina3"

route_corbina1="85.21/16 10.197.0.17"

route_corbina2="195.14.32/19 10.197.0.17"

route_corbina3="10/8 10.197.0.17"

...

 

Безопасность

 

Что мы делаем дальше? Пытаемся добиться, чтобы интернет был доступен не только на нашей свеженастроенной машинке. А заодно, как положено профессиональным параноикам, занимаемся тщательной настройкой файрвола. Опять же, решаем вопросы nat и traffic shaping. Поставим файрвол. Это просто:

 

/etc/rc.conf

 

pf_enable="YES"

pflog_enable="NO"

 

Вторая строка, понятно, ничего не делает, но при отладке pflog вполне может понадобиться, так что пусть строчка будет заранее. А если машинка достаточно быстрая - можно сразу и ее в YES поставить, пусть себе пишет логи.

 

И не забываем прописать в /etc/sysctl.conf

 

net.inet.ip.forwarding=1

 

После ближайшей перезагрузки в системе появится pf. Правила к нему - штука непростая, на всякий случай в конце покажу свой файл, но, само собой, каждый защищается по-своему. А вот тонкость одну надо отметить прямо сейчас: у нас _до_ загрузки pptp вообще нет интерфейса tun0, а без него pfctl закономерно отказывается грузить в pf правила, где этот интерфейс фигурирует. Ругается, выпадает с ошибкой - и правил не грузит вообще. Что делать? Очень просто: написать два набора правил, и один, где только правила для физических интерфейсов, грузить сразу, при старте (см. выше), а второй (где есть и правила для туннеля) - только после успешной установки связи. Файл /etc/ppp/ppp.linkup, строчка такая:

 

! sh -c "/sbin/pfctl -e -f /etc/pf.tunnel.conf"

 

Внимание: перед самым первым символом (восклицательным знаком) обязателен пробел, иначе не работает.

 

Кстати, раз уж мы пишем правила для ftp-сервера, давайте сразу и его настроим. С идеологической точки зрения правильно иметь incoming в режиме "без дописывания", но я еще размышляю на эту тему (связь без ВОЛС, блин, рвется, и мне уже не могли из интернета закачать нормально, в итоге мучились, заливая несколько раз с разными именами). В принципе, исходно incoming - мусорка, и даже если в нем что-то кто-то убьет, а и хрен с ним! Хуже, если весь диск забьют (так что лучше бы иметь под ftp отдельный раздел). Короче, решайте сами.

 

Само собой, раз уж у нас налицо и связь во все стороны, и интернет виден, уже можно оторвать от этой машинки монитор и клавиатуру, и впредь все делать через ssh. А для этого, само собой, надо ее настроить. Но это, в общем и целом, тривиально: в том же самом /etc/rc.conf пишем sshd_enable="YES", и не забываем запретить ее трафик на тех интерфейсах, откуда не хотим рулить своей машиной. Если все-таки хотите открыть ssh наружу - будьте аккуратны: пароли посложнее, убедитесь, что запрещен вход рута удаленно. Короче, рискуйте ровно настолько, насколько готовы к этому риску, и насколько понимаете возможные опасности.

 

Итак, у нас уже стоит вполне приличный файрвольчик, который заодно делает nat, при необходимости редиректит порты внутрь (мало ли, осел, торренты, файлы по аське, игрушки, еще что-нибудь), воспринимает удаленное управление по ssh, ftp-сервер серверит, роутинг на месте (видна и локалка и интернет одновременно на всех машинах)... Победа, правда?

 

Чу! Что это? Это хрустит винчестер, перемалывающий охренофигенное количество сообщений о потерянных или перемешанных пакетах туннеля (и немудрено - напоминаю, ВОЛС нет, есть только радиоканал, и там творится полное непотребство). Лично мне так и не удалось настроить лог pptp таким образом, чтобы он не содержал этих сообщений. Что ж, на то у нас и юникс, чтобы было много способов решения проблем.

 

В самом начале syslog.conf налицо перекидывание всего, что шевелится, в /var/log/messages. А мы воспользуемся не очень хорошо описанной возможностью - и напишем так:

 

!-pptp

*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages

!*

security.* /var/log/security

 

Теперь эта строчка работает для всех программ, кроме pptp.

 

А в конце файла мы сообщения об ошибках (и только о них - warning и выше) pttp выведем в другой лог:

 

!pptp

*.warning /var/log/ppp.log

 

Отлично, винчестер успокоился.

 

Что бы еще полезного накрутить? Ах, да, конечно же! Мы ведь не зря сервер держим, не зря ослика и торренты гонять будем - у нас исходящего трафика будет по самое не балуйся. Ну и, натурально, любая наша загрузка даже после появления ВОЛС будет о-ч-е-н-ь-т-о-р-м-о-з-н-о-й, пока пакетики наших запросов, а потом подтверждений, в очереди наружу отстоят... Чтобы наши загрузки не зависели от занятости исходящего канала, будем воскурять traffic shaper, в нашем случае AltQ. Вот тут нас ждет засада - его почему-то ни в ядро не встроили, ни модулем не сделали. Только ручками пересобирать ядро. Ну, надеюсь, вы при установке не забыли его исходники установить, так что проблем нет. Идем в /usr/src/sys/i386/conf, делаем копию файла GENERIC (называем ее как нравится), и добавляем в конец строчки:

 

options ALTQ

options ALTQ_CBQ # Class Bases Queuing (CBQ)

options ALTQ_RED # Random Early Detection (RED)

options ALTQ_RIO # RED In/Out

options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)

options ALTQ_PRIQ # Priority Queuing (PRIQ)

 

Большие гуру, если таковые зачем-то читают этот текст (бросьте немедленно, он не для вас!), могут заодно лишние устройства вырезать и т.п. А мы лучше не будем заморачиваться, кроме считанных мегабайт ОЗУ нам эта работа практически ничего не сэкономит, а мы в них и так вряд ли упремся.

 

Затем - штатная процедура сборки ядра, читайте любой FAQ. Процесс небыстрый, сходите попить чаю.

 

В тех файлах pf.*, что я привожу ниже, очереди AltQ тоже как-то прописаны, правда, пока не до конца, и, пожалуй, не без багов, но я их буду докручивать по ходу дела, не спеша. А вам все равно для себя лучше свои придумать, у каждого свои критерии хорошей работы. У меня, напомню, нет цели обучить кого-то настраивать pf или AltQ (я их и сам не очень знаю), я только порядок действий и подводные камни перечисляю.

 

Теперь - приятные мелочи. Ну, для начала, негоже лазить к далекому (особенно без <CENSORED> ВОЛС - ух, и далекому же!) dns-серверу по каждому чиху. Лучше завести свой, пусть кэширует результаты. Это, конечно, несколько замедляет процесс их обновления, если вдруг изменятся, но это небольшая проблема почти во всех случаях.

 

named - штука непростая, даже ОЧЕНЬ непростая, и я просто боюсь в нее лазить, но специально для лентяев, кому зоны прописывать незачем, имеет режим только кэширования (forward only). Как обычно - named_enable="YES" в /etc/rc.conf, чуток настроек в /etc/namedb/named.conf, не забываем запустить, как написано в инструкции, sh make-localhost, и мы вполне себе в хопре.

 

Впрочем, нет - на первый взгляд будет казаться, что все хорошо, а на деле умный ppp будет аккуратно при каждом коннекте прописывать в resolv.conf dns-серверы Корбины, так что все запросы, исходящие от нашей машинки, кэшироваться не будут. Обидно, да? Нет проблем - заменяем в /etc/ppp/ppp.conf в разделе corbina enable dns на disable dns, да и дописать resolv readonly не повредит. Ну и, само собой, сам resolv.conf не забываем поредактировать, дабы в нем nameserver 127.0.0.1 был первым.

 

Дальше - опять же, негоже разумному существу накручивать какие-то адреса в настройках домашних машин, если на то есть dhcp-серверы. ВНИМАНИЕ: если какой-то уродец не пропишет в настройках "отвечать на запросы _ТОЛЬКО_ на внутреннем интерфейсе", и порушит нахрен весь сегмент корбиновской локалки своими левыми адресами, он не только огребет заслуженные проблемы от Корбины, но и испортит себе карму навечно.

 

pkg_add -r isc-dhcp3-server

 

Он выдает вполне адекватное описание, что делать, куда добавить строчки, где что настроить. Дописываем что надо в многострадальный rc.conf, крутим конфигурацию, не забываем выдать dns-сервер на нашем же адресе, видимом из локалки - мы ведь только что воскурили dns-сервер, вот его и выдадим первым. Вторым на всякий случай какой-нибудь из dns Корбины.

 

Что нам осталось? Ну, разве что пять долларов в месяц сэкономить - мы ведь подняли ssh снаружи (если не испугались), а адрес постоянный купить - жаба душит. Выбрать dyndns-клиента - задача непростая, их довольно много. Лично я остановился на ddclient. Прописываем в его конфигурации /usr/local/etc/ddclient.conf нужные цифры и буквы, а потом делаем финт ушами - и пишем в файле /etc/ppp/ppp.linkup:

 

! sh -c "/usr/local/sbin/ddclient -daemon=0 -syslog -use=ip -ip=MYADDR"

 

Как и раньше - не забываем пробел в начале строки. Зачем нам демон=0? А затем, что нефиг лишнюю софтину в памяти держать, пусть обновит нам адрес, как только мы его получим, и сваливает нафиг. (обратите внимание - этот метод в итоге работает плохо, см. ниже)

 

OpenBSD 3.8

 

Отличия минимальны (даже "сложный" этап разбивки винчестера совершенно не страшен, если его надо захапать целиком, как в нашем случае - просто делаем все по документации, не заморачиваясь геометрией, и не забываем отдать максимум тому разделу, где будет home directory юзера ftp). Некоторые маны (и, особенно, примеры настроек) по умолчанию выглядят чуток хардкорнее, например, named - найти, где у него forward only, и как она работает, равносильно подвигу. Но после того, как это уже было сделано под FreeBSD, все оказалось очень просто, почти все можно копировать "заподлицо", пакеты-то те же самые (и многие вещи логичнее и разумнее, скажем, пересобирать ничего не надо, AltQ уже есть в ядре, dhcpd и даже apache тоже входят в комплект по умолчанию, настройки почти для всего, кроме /var/named, лежат в /etc, да и настраиваются проще, и версии готовых packages в целом чуть посвежее, например, тот же pptpclient 1.6 вместо 1.5). И, напомню, еще и работает быстрее.

 

Кстати, для пущего удобства советую выкачать ее всю (копейки - мег 200 с чем-то) и сделать себе CD, как описано на http://opennet.ru/tips/info/938.shtml (туда же можно кинуть и всяческие pptp, mc и прочие пакеты, от которых у них есть зависимости). Или найти готовый cd в интернете (где искать - не знаю, я делал сам, используя только что установленную FreeBSD, которую описывал выше). Или загрузиться с флопа. Или купить диск. Или поднять свой локальный ftp. Ну, короче, я в вас верю :lol: А то, может быть, и сама Корбина поднимет зеркало, а?

 

Первое серьезное отличие - пересобирать ядро не нужно. Есть переменная для sysctl под названием net.inet.gre.allow=1, которая делает все, что нужно для успеха.

 

Второе - наш любимый туннель. Потрахался немало, подбирая, кто кого вызывает (то ли ppp из pptp, то ли наоборот, и с кем именно это чудо работает - то ли ppp, то ли pppd), пока не нашел в паре мест готовое решение, почти полностью подходящее для Корбины: http://www.opennet.ru/tips/info/944.shtml и http://www.openbsdsupport.org/obsd_dsl.html

 

Для начала кидаем в какое-нибудь разумное место настройку статических маршрутов, например, в /etc/hostname.<external_interface> (в моем случае - /etc/hostname.rl0):

 

dhcp NONE NONE NONE

!route add -host vpn.corbina.net 10.197.0.17

!route add 85.21/16 10.197.0.17

!route add 195.14.32/19 10.197.0.17

!route add 10/8 10.197.0.17

 

/etc/ppp/ppp.conf

 

corbina:

set authname <LOGIN>

set authkey <PASSWORD>

set timeout 0

set ifaddr 0 0

disable pap

disable dns

add! default HISADDR

allow users

set device "!/usr/local/sbin/pptp vpn.corbina.net --nolaunchpppd"

set log Phase LCP IPCP CCP tun command

enable lqr

set lqrperiod 25

set redial 30

set dial

set login

 

Потом создаем для туннеля конфигурацию:

 

/etc/hosname.tun0

 

!/usr/sbin/ppp -ddial corbina >/dev/null 2>&1

 

Не забываем создать обычного пользователя, чтобы не ходить каждый раз рутом, дать ему надежный пароль, а потом прописать в /etc/ssh/sshd_config строчку PermitRootLogin no

 

Пользователя ftp и его домашний каталог с правильными permissions надо создавать руками (инсталлятор не предлагает, слишком уж хардкорен для таких мелочей), но это легко находится и в man ftpd и, конечно, в гугле.

Если кратенько - то кладем его туда, где много места (лучше - на отдельный partition), и делаем такие каталоги:

dr-xr-xr-x 5 root wheel 512 Dec 24 04:21 ftp

и в нем

d--x--x--x 2 root wheel 512 Dec 24 04:48 etc

d-wx-wx-wx 2 root wheel 512 Dec 24 21:49 incoming

dr-xr-xr-x 2 root wheel 512 Dec 24 21:48 pub

Можно в /etc положить файл motd с приветствием, если хочется (хотя, конечно, кто их видит в наши дни?).

 

Моя личная рекомендация после экспериментов и размышлений отличается от того, что предлагают большинство экспертов - поскольку мы делаем не варезник для обмена (то есть не хотим давать возможность анонимусам видеть имена файлов в incoming и/или выкачивать их), но и не параноидально закрытую машину (где закачанный и даже оборванный при закачке файл недоступен полностью), а ftp для народа, разумно создать для пользователя ftp отдельный класс в /etc/login.conf, и прописать ему umask 0555, а потом не забыть cap_mkdb /etc/login.conf. Тогда он может залить нам файл, и (весьма удобно) может его дозалить, если соединение порвалось (о, блин, эта отсутствующая ВОЛС!!!). Если не знать имени файла, его не получится убить, так что случайные шалуны, хоть и не прикрыты полностью, но испытывают некоторые проблемы. А скачать залитый файл - так и вообще у анонимусов не получится (и незачем - файлообменников в мире и так хватает, а хорошие файлы я и сам переложу куда надо). Само собой, не забудьте поменять и владельца и permissions, если перекладываете куда-то залитые вам файлы.

 

Лично я советую в inetd.conf для ftpd прописать ключики -llUS, получится масса интересных логов.

 

Логи pptp (о, эта ВОЛС и ее потерянные пакеты!) - другой синтаксис, внимание. В самом начале /etc/syslog.conf пишем нижеприведенное, и создаем вручную файл /var/log/ppp.log, чтобы было, куда писать.

 

!!pptp

*.warning /var/log/ppp.log

*.* /dev/null

!*

(далее - остальное, как было)

 

dhclient - очень удобно прописать prepend domain-name-servers 127.0.0.1; - и не развлекаться с resolv вообще.

 

А в остальном практически все точно так же, как описано выше. Не забываем сделать две конфигурации pf (кстати, правильные permissions на них - 600), в том же ppp.linkup их меняем, весь софт настраивается точно так же (да он, собственно, тот же самый и есть, так что ничего удивительного).

 

ddclient

 

Собственно, я недостаточно долго держал FreeBSD, чтобы натолкнуться на эту особенность, так что решал ее уже под OpenBSD. Поэтому расскажу напоследок о деталях и тонкостях, которые, к счастью, многим из вас так и не встретятся никогда.

 

В реальной жизни все не так, как хотелось бы (и снова ВОЛС!!!). Обновлять адреса слишком часто - невежливо (разные службы соглашаются на сроки где-то от 5 до 10 минут между обновлениями, а если чаще - могут и отрубить). А падения радиорелейки - штука, увы, почти всегда серийная. То есть два, три, четыре падения подряд, без перерыва. Первое, конечно, обновляет (или хотя бы пытается - чаще у него не выходит), а вот остальные обламываются - типа, времени недостаточно прошло с прошлой попытки. Причем, обламываются навсегда, так и стоит адрес необновленным до следующего падения.

Писать скрипт, долбящийся до победного, в этой точке, конечно, можно, но лениво - в конце концов, это ведь уже сделали авторы софтины. Так что вешаем ее демоном: строчку выше убиваем, чтобы не нарушить частоту обновлений, а вот в /etc/rc.conf.local засунем /usr/local/sbin/ddclient -daemon 300 -syslog

 

Планы

 

Планов, само собой, громадьё, смутно хочется прицепить аналоговый модем для запасного выхода в интернет, хочется (хотя и непонятно, нафиг надо) прицепить самбу внутри, а apache снаружи, подумать о переносе осла и торрентов на эту машину с основной (кстати, что посоветуете? mldonkey как-то слегка пугал кривизной и недоделанностью, когда я его глядел), прицеплении к ней Bluetooth dongle, дабы мобильник через нее в интернет ходил нахаляву, увеличении размеров ftp за счет расшаривания того, что лежит на рабочей машине... Победить проблему русской буквы "я" в именах файлов, заливаемых на ftp. Попробовать найти хоть какую-то замену под FreeBSD (или версию посвежее) глючного и кривого pptpclient, падающего с корой на каждый чих, а то и без него (но, вроде, под OpenBSD живет нормально, так что это отпало). Опять же, попробовать http://www.sentia.org, она же http://www.dssrg.curtin.edu.au/~satherrl/l...t/msg27709.html, и она же http://btf.ru/pftpx/ - вроде бы, идеологично, и уже в следующей версии OpenBSD она будет по умолчанию. Подумать о какой-нибудь красивой статистике чего-нибудь B) Но это детали и мелочи, ими можно заниматься не спеша.

Кто-то, возможно, захочет WiFi, но мне он не нужен - тормозной. Разбирайтесь сами.

А вот если до нас когда-нибудь доберется корбиновское телевидение и придется крутить mrouted - я и сам расскажу о результатах, если добьюсь таковых.

 

Благодарности

 

Сами понимаете, всех все равно не напишу, слишком много людей, которые писали софт, FAQs, HOWTOs, помогали людям с похожими проблемами во всяких форумах и т.п. Так что ограничусь ссылками на самые полезные топики этого форума, которые сильно помогли (спасибо всем участникам, и отдельно - Aike и indeez):

http://homenet.corbina.net/index.php?showtopic=3416

http://homenet.corbina.net/index.php?showtopic=2490

Еще скажу спасибо другу, который дал кучу полезных советов и выполнил роль "гуру" во время копания в потрохах FreeBSD.

Ну и, опять же, скажу спасибо доблестным админам Корбины, которые сегодня, уже поздно вечером, подключили-таки ВОЛС!

 

Вопросы задавать лучше прямо здесь, в форуме, поскольку я вовсе не гуру, и на большинство из них лучше ответят другие. И, конечно, буду рад советам и замечаниям по поводу настроек - вдруг я где-то важную дырку оставил :)

 

Ну и, собственно, копирайты и разрешения: © 2005 by Anonymous, разрешается использовать кому угодно, как угодно и для чего угодно, публиковать где угодно, переводить на любые языки. Рекомендуется подвесить где-нибудь в разделе помощи, юниксообразные ОС сейчас все популярнее, а без роутера на входе в наши дни неуютно...

openbsd_configs_for_corbina.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как показал краткий поиск, русская буква "я" на ftp под обеими ОС лечится только редактированием исходников. Для OpenBSD это /usr/src/libexec/ftpd/ftpcmd.y, ищем волшебную строку IAC и комментируем или убиваем нафиг весь посвященный ей case целиком. После чего make - и мы получаем новый ftpd, отлично работающий с буквой "я" во все стороны и в любых позах. Я это проделал, заняло две минуты, работает. Причем, исходники можно даже целиком не ставить (да и зачем?) - достаточно зайти в src.tar.gz с помощью mc и скопировать в /usr/src нужный каталог, а после сборки и копирования готового ftpd куда надо - стереть все исходники нафиг, они больше не понадобятся. Для сборки еще нужны исходники /usr/src/bin/ls, так что этот каталог тоже надо скопировать.

 

Самба тоже весьма тривиальна, все строго по факам и манам. Разве что паузу (скажем, sleep 60) стоит поставить перед запуском nmbd и smbd, а то nmbd обожает, не найдя сети, которая еще просто не встала, умирать навсегда. И, само собой, для пущего удобства, чтобы не было хлопот с ftp, пишущим русский в винюковой кодировке, а не в юникоде, разумно поставить и в самбе кодировку CP1251.

 

"Обратная самба" (монтирование винюковой share, например, для раздачи ее по ftp наружу) чуть посложнее - до сих пор под OpenBSD нет ничего, кроме shlight, и это достаточно грустно, поскольку под ней нет способа полечить кодировку (так что только Unicode), нет способа подцепить много шар одновременно, да и откуда именно ее идеологично запускать, чтобы сеть уже была готова, и все сработало - я до сих пор не понимаю. Под FreeBSD все нормально, mount_smb, или как там его, имеется, но возвращаться к ней не буду - по сумме все-таки OpenBSD заметно лучше для конкретной задачи. В конце концов, если сильно приспичит действовать извращенно - можно и в сторону NFS поглядеть.

 

Ну и, по итогам, накопилось чуток вопросов.

  • Не молчите, пожалуйста - покопайтесь в настройках, ткните пальцем в дырки. А то ведь я это чудо рано или поздно на всеобщее растерзание выставлю, обидно будет, когда сломают...
  • Накидайте сюда хороших русскоязычных ресурсов по использованному мной софту (прежде всего, конечно, "тяжеловесам", требующим самостоятельной настройки, типа pf), а то я сам все читал в оригиналах, так что рекомендаций на родном языке у меня просто нет.
  • Может быть, Корбине стоит положить на ftp.corbina.ru не только FreeBSD, как сейчас, но и OpenBSD с разумным подмножеством packages? Чтобы не приходилось делать компакт (а это неудобно - нужно иметь работающий комплект cdrtools), а можно было сразу загрузиться (с пятимегабайтной iso'шки, входящей в комплект) - и дальше ставить все с ftp. По размеру это копейки, от трехсот мегабайт. И обновлять регулярно незачем - только при смене релиза. Лично я не в курсе, кто отвечает за этот сервер, но если кто-то в курсе, поговорите с ним, пожалуйста. В конце концов, может быть, просто Малову письмо послать?
  • Может быть, служба поддержки Корбины уже сможет дописать и выложить на сайте помощи инструкции по установке и настройке соединения в Linux и BSD? Вроде, здесь уже достаточно HOWTO, чтобы закрыть этот вопрос, а http://help.corbina.ru/install_set/vpn/ по-прежнему пустая в этой области, с жалким линком на корневую страницу homenet.corbina.net...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо.VPN работает.

OpenBSD 3.7;pptp-1.1.0.tgz.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для FreeBSD не надо страдать ерундой с pptpclient и кучами врапперов а поставить и настроить net/mpd

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • Может быть, Корбине стоит положить на ftp.corbina.ru не только FreeBSD, как сейчас, но и OpenBSD с разумным подмножеством packages? Чтобы не приходилось делать компакт (а это неудобно - нужно иметь работающий комплект cdrtools), а можно было сразу загрузиться (с пятимегабайтной iso'шки, входящей в комплект) - и дальше ставить все с ftp. По размеру это копейки, от трехсот мегабайт. И обновлять регулярно незачем - только при смене релиза. Лично я не в курсе, кто отвечает за этот сервер, но если кто-то в курсе, поговорите с ним, пожалуйста. В конце концов, может быть, просто Малову письмо послать?

Мы не сможем это качественно поддержать. FreeBSD там лежит потому, что мы сами ее используем

 

  • Может быть, служба поддержки Корбины уже сможет дописать и выложить на сайте помощи инструкции по установке и настройке соединения в Linux и BSD? Вроде, здесь уже достаточно HOWTO, чтобы закрыть этот вопрос, а <a href="http://help.corbina.ru/install_set/vpn/" target="_blank">http://help.corbina.ru/install_set/vpn/</a> по-прежнему пустая в этой области, с жалким линком на корневую страницу homenet.corbina.net...

Мы за

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Мы не сможем это качественно поддержать. FreeBSD там лежит потому, что мы сами ее используем

Так, вроде бы, ничего "поддерживать" не надо, ни качественно, ни как-то иначе? Минимальный список дополнительных пакетов, достаточных для установки ОС и выхода в интернет через Корбину, составляет _одну_ штуку (pptp), а список "комфортных" для роутера я выше привел - примерно десяток. Сам дистрибутив лежит на официальном сайте в отдельном каталоге и занимает те самые три сотни мегабайт. После выхода очередного релиза, когда это случится, будет достаточно положить новый на место старого :huh: Или поддержка - это что-то еще, кроме обновления изредка?

 

Мы за

Мы, пользователи, конечно, Корбину любим и ценим, чем можем - помогаем, но писать официальные руководства не умеем, да, наверное, и не должны пытаться :lol: Наше дело - разве что показать на пальцах, что надо делать, если область редкая или сложная, а уж служба поддержки из этого дела должна бы изготовить нечто, пригодное для пользователей, и разместить его, где нужно... Так что, если я правильно понимаю, кто-то кому-то может дать задание внутри Корбины - и вскоре вместо линка на той самой страничке появится доступное типичным пользователям описание, скомпилированное из готовых, прицепленных в этом форуме, тем?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почитал я статью и у меня появились некоторые замечания.

Но все по порядку.

 

Я тоже прошел этот путь, но он был гораздо длиннее во времени. BSD я устанавливал по вечерам

в течение 3-х недель.

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

 

В процессе танцев с бубном выяснилось, что mpd на глючной карте таки заработал, а вот pptpclient нет.

Сейчас у меня стоит mpd и довольно стабильно работает (типа переконнекчивается при "обрывах").

 

Автор установил pf, который довольно продвинут (типа лучший файервул от OpenBSD), но не учел, что pf во FreeBSD реализован в виде модуля и не вкомпилен в ядро. Поэтому производительность маршрутизатора под OpenBSD оказалась бОльшей. Ежели бы автор воспользовался IPFilter`ом, он бы получил сравнимую производительность под обеими оськами. Также автор мог бы попытаться воспользоваться встроенным в pptpclient NAT`ом.

 

Вобщем Celeron 800, FreeBSD6.0, IPFilter дают мне следующую производительность:

15% загрузки системы на 50 мегабит канала (5 мегов в сек ), но 5% на 10 мегабит.

 

Однако, есть мнение, что для маршрутизатора больше подойдет NetBSD :-)

У кого какие соображения по этому поводу ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ух, как много интересного :lol: Но пара мест вызвала вопросы, и ответов "быстренько в гугле" я не нашел - так что буду выяснять прямо здесь и сейчас...

В процессе танцев с бубном выяснилось, что mpd на глючной карте таки заработал, а вот pptpclient нет.

Сейчас у меня стоит mpd и довольно стабильно работает (типа переконнекчивается при "обрывах").

У меня под obsd сейчас pptpclient тоже успешно переконнекчивается :yes: Я думаю, было бы очень и очень полезно прямо в этом топике привести "идеологически правильный" конфиг mpd, работающий с Корбиной, тем более, что mpd идет в комплекте операционок, и его не надо качать. Да и советов использовать именно его было уже несколько. Ау, гуру mpd, не молчите - народ ждет :)
Автор установил pf, который довольно продвинут (типа лучший файервул от OpenBSD), но не учел, что pf во FreeBSD реализован в виде модуля и не вкомпилен в ядро. Поэтому производительность маршрутизатора под OpenBSD оказалась бОльшей. Ежели бы автор воспользовался IPFilter`ом, он бы получил сравнимую производительность под обеими оськами. Также автор мог бы попытаться воспользоваться встроенным в pptpclient NAT`ом.

Вот здесь я не понял сразу двух вещей. Поискал тесты производительности "модуль против вкомпиленного в ядро" - с налету не нашел. А по всякой документации производительность должна быть строго одинаковой - модуль загрузился, да и пошел себе работать точно так же, как если бы был вкомпилен...

Ну а встроенный нат - ну его, в самом деле, это же пришлось бы еще опытным путем выяснять, как он дружит (или не дружит!) с натом из pf. Опять же, если есть опыт в этой области - его полезно написать сюда в виде работающих конфигов.

Да, и еще, в порядке комментария: я до того не писал конфигов ни к pf, ни к ipf, ни к ipfw, ни, наконец, к ipchains/iptables :-) Но перед тем, как выбрать pf, я честно прочитал не одну сотню килобайт описаний, факов, примеров и т.п. по всему вышеперечисленному. И выбор был сделан прежде всего не по "народному мнению" о продвинутости, а по уровню... гм... вменяемости, что ли. Читаемость правил, удобство их изменения и тестирования, так важное для чайника (смешно, но до сих пор некоторые фильтры - не будем тыкать пальцами - при смене набора правил "на лету" очищают внутренние таблицы и теряют активные сессии! или, хуже того, смена конфигурации у кое-кого - неатомарная операция, и может сменить только половину, если встретит ошибку!), "все в одном" в смысле nat и shaping в том же конфиге... В итоге - если кто-нибудь не предъявит мне лишний мегабайт в секунду на одинаковом железе с одинаковым по функциям набором правил, я точно не буду менять фильтр. Ни-ко-гда :)

Вобщем Celeron 800, FreeBSD6.0, IPFilter дают мне следующую производительность:

15% загрузки системы на 50 мегабит канала (5 мегов в сек ), но 5% на 10 мегабит.

Ишь, как жирно... Целерон 800... А тут, понимаешь ли, VIA EDEN вообще без вентиляторов (даже в блоке питания) на 600 мегагерцах (как их сравнивать - непонятно, но я бы сказал, что EDEN раза в четыре-пять тормознее того целерона). Так что на 8 мегабайтах в секунду по ftp сквозь это все получается 80% загрузки (они принимаются из локалки, маршрутизируются, натятся и т.д. - и уходят дальше, на рабочую машину). И, я так думаю, это вполне нормально...
Однако, есть мнение, что для маршрутизатора больше подойдет NetBSD :-)

У кого какие соображения по этому поводу ?

Сильно подозреваю, что разницу простым глазом обнаружить не удастся. Ну, разве что тостер какой-нибудь использовать вместо обычного компьютера - вроде бы, NetBSD запускается и на тостерах -_-

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Использую роутер на P200/64RAM. На входе сетки двух провайдеров - один из них Корбина. Работает на Debian GNU/Linux, весь софт - из дистрибутива, ничего дополнительного. Shorewall (для быстрой настройки файрвола и NAT), dhcp и pptp-клиенты, pdnsd для кеширования DNS. Тестами производительности под роутинг для разных ОС и фильтров не заморачивался принципиально - если за роутером сетка из сотни серверов это важно, а когда пара домашних компов, то по-моему главный критерий - удобство и быстрота настройки. Доп. плюс Debian - весь софт можно нахаляву взять (и потом обновлять регулярно) с локального корбиновского ftp.corbina.ru.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ишь, как жирно... Целерон 800... А тут, понимаешь ли, VIA EDEN вообще без вентиляторов (даже в блоке питания) на 600 мегагерцах (как их сравнивать - непонятно, но я бы сказал, что EDEN раза в четыре-пять тормознее того целерона). Так что на 8 мегабайтах в секунду по ftp сквозь это все получается 80% загрузки (они принимаются из локалки, маршрутизируются, натятся и т.д. - и уходят дальше, на рабочую машину). И, я так думаю, это вполне нормально...

 

Могу порекомендовать небольшой геморрой для изучения следующего теоретического изыскания:

Дешевые процессоры очень часто для реализации совместимости со стандартом содержат микропрограммы, которые реализуют набор команд высшего семейства процессоров на основе набора команд низшего. В результате получается 686 процессор, но очень тормозной, так как расширенные команды преобразуются в несколько простых (например из семейства 486).

Предположение: Если скомпилировать ядро для 486/586 процессора и запустить его на псевдо 686-м, то можно получить другую производительность, предположительно выше :-) GENERIC ядро не подойдет, так как продетектит 686 псевдопроцессор и будет его использовать.

 

Кстати, у тебя в твоем маршрутизаторе винт-то есть ?

Мой здесь: http://ilvin.msk.ru/Bugs/corbina/hardware.htm

В течение часа еще чего-нить допишу. :-)

Кстати, 8 мегабайт в секунду - это 100 мегабит под завязку. Там кроме полезной инфы передается служебная и широковещательные запросы еще :-)

 

Использую роутер на P200/64RAM. На входе сетки двух провайдеров - один из них Корбина. Работает на Debian GNU/Linux, весь софт - из дистрибутива, ничего дополнительного. Shorewall (для быстрой настройки файрвола и NAT), dhcp и pptp-клиенты, pdnsd для кеширования DNS. Тестами производительности под роутинг для разных ОС и фильтров не заморачивался принципиально - если за роутером сетка из сотни серверов это важно, а когда пара домашних компов, то по-моему главный критерий - удобство и быстрота настройки. Доп. плюс Debian - весь софт можно нахаляву взять (и потом обновлять регулярно) с локального корбиновского ftp.corbina.ru.

 

После ASP Linux у меня аллергия на слово Linux.

Переход на FreeBSD позволил мне спать спокойно, не беспокоясь за работоспособность серверов :-)

По поводу нахаляву "обновить" с ftp.corbina.ru - предпочитаю обновлять не нахаляву, но гораздо быстрее, чем 150к в секунду.

Изменено пользователем IlVin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После ASP Linux у меня аллергия на слово Linux.

Переход на FreeBSD позволил мне спать спокойно, не беспокоясь за работоспособность серверов :-)

По поводу нахаляву "обновить" с ftp.corbina.ru - предпочитаю обновлять не нахаляву, но гораздо быстрее, чем 150к в секунду.

 

Для меня вот freebsd был первым юниксом и по бсдшной традиции к линуксу я тогда с подозрением относился :) Потом аллергии как-то прошли. Один фиг какое ядро - команды и окружение на всех юниксовых системах похожи. А дальше чему привыкнешь. Привыкнув конечно уже влом чего-то переменять :) Мне в Debian система администрирования нравится, особенно в части управления пакетами - APT и пр. радости.

 

Скорость с ftp.corbina.ru отличная (не путать с мегафтп). К примеру:

ftp.corbina.ru: /pub/Linux/kernel.org/linux/kernel/v2.4> get linux-2.4.9.tar.bz2

22232256 байтов перемещено за 4 секунды (4.75Мб/с)

 

По-моему неплохо. Кстати, ftp.corbina.ru/debian это официальное зеркало дебиановского репозитария, в международном списке зеркал на www.debian.org оно указано. Одно из двух (если не ошибаюсь) зеркал Debian находящихся в Росии. Я и раньше когда к другому провайдеру был подключен часто с этого ftp пакеты брал, потому как быстрей чем с других зеркал получалось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Кстати, у тебя в твоем маршрутизаторе винт-то есть ?

Мой здесь: http://ilvin.msk.ru/Bugs/corbina/hardware.htm

Есть винт, 250 гиг, весьма негромкий - на нем ftp-сервер живет (110 гиг - музыки, остальное - англоязычные сериалы: полные Simpsons, Married With Children, Tremors the Series). Вот как решится в Корбине вопрос о выделении внутренних постоянных IP - я его во всякие поисковики корбиновские пропишу и т.п. А пока на него иногда заходят случайные люди через LanScope и что-то качают потихоньку.

О, кстати, у меня тут супер-железка есть, P-233 с 64 мегами. На нем, конечно, ста мегабит не получится, но как бэкапный сервер надо будет настроить - что-нибудь типа BackupPC, наверное... Он, конечно, не так креативно собран, как твой супер-аппарат, зато жил на 250 мегагерцах больше полугода после того, как в нем остановился кулер - ну, я его открыл зачем-то, а оттуда горелым воняет... Но работал без проблем еще месяца четыре, пока я не нашел-таки доку к его матери и не смог тормознуть его до 166 МГц, ибо не искать же, в самом деле, новый кулер... Умели же делать :)

После ASP Linux у меня аллергия на слово Linux.

Переход на FreeBSD позволил мне спать спокойно, не беспокоясь за работоспособность серверов :-)

Это отчасти снобизм, ведь правда? :blink: Машин под линуксом, которые работают себе, и ничего с ними не происходит, вокруг полно. У меня выбор BSD на роль первого юниксообразного был, скорее, из-за того, что у них пожестче держится структура, нет стремления, как у винюков и большинства линуксов, запихнуть в очередной релиз всё, что только попадается, причем прямо сейчас и в том виде, в каком оно есть (а потом для совместимости обязательно весь этот зоопарк тащить за собой годами!). В итоге у BSD больше логики, больше единообразия, меньше эклектики...

 

Короче, ждем-с отчетов про mpd :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это отчасти снобизм, ведь правда? :) Машин под линуксом, которые работают себе, и ничего с ними не происходит, вокруг полно. У меня выбор BSD на роль первого юниксообразного был, скорее, из-за того, что у них пожестче держится структура, нет стремления, как у винюков и большинства линуксов, запихнуть в очередной релиз всё, что только попадается, причем прямо сейчас и в том виде, в каком оно есть (а потом для совместимости обязательно весь этот зоопарк тащить за собой годами!). В итоге у BSD больше логики, больше единообразия, меньше эклектики...

 

Короче, ждем-с отчетов про mpd :-)

 

Это как любовь: одну девочку любишь, а другую - не получается... Секс есть, а любви нет :-(

Секса с ASP у меня было предостаточно и что фигово - устанавливаемый софт глючил на уровне подкорки - вроде работает, но подглючивает...

При переходе на FreeBSD ощущение, как будто пересел с жигуля в иномарку, причем иномарка класса мерина 600... и что самое интересное - софт перестал глючить...

Однако, оценка субъективна и не претендует на роль абсолютной истины...

ЗЫ: А правда, что ядро FreeBSD используется в MacOS ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

того, что у них пожестче держится структура, нет стремления, как у винюков и большинства линуксов, запихнуть в очередной релиз всё, что только попадается, причем прямо сейчас и в том виде, в каком оно есть (а потом для совместимости обязательно весь этот зоопарк тащить за собой годами!). В итоге у BSD больше логики, больше единообразия, меньше эклектики...

Насчёт больше логики - не стал бы утверждать, но то что все единообразно - полностью согласен. Наверно одна из главных проблем новичка в линукс - какой дистр выбрать (учитывая что советы "гуру" дают самые противоречивые). Во *BSD такой проблемы не возникает. Что FreeBSD, OpenBSD, NetBSD - в каждой общая централизованная разработка как ядра, так и самой системы. В линуксах же даже ядра собирают под разные дистры с разными патчами - никогда не знаешь, чего ожидать от очередного дистра. С другой стороны через время хочется разнообразия, вот тут линукс позволяет найти готовую систему под любую задачу, без необходимости перелопачивать систему под свои нужды. Да и развивается он имхо динамичней (что ядро, что приложения). Если не выбирать разные экстремальные дистры, собираемые небольшими командами девелоперов и плохо поддерживаемые, то проблем с пользованием будет не более чем в BSD.

 

Это как любовь: одну девочку любишь, а другую - не получается... Секс есть, а любви нет :-(

Секса с ASP у меня было предостаточно и что фигово - устанавливаемый софт глючил на уровне подкорки - вроде работает, но подглючивает...

При переходе на FreeBSD ощущение, как будто пересел с жигуля в иномарку, причем иномарка класса мерина 600... и что самое интересное - софт перестал глючить...

Однако, оценка субъективна и не претендует на роль абсолютной истины...

ЗЫ: А правда, что ядро FreeBSD используется в MacOS ?

ASP - не единственный дистрибутив. Оценивать по нему линукс вообще - некорректно. Хы, насчёт безглючности софта во FreeBSD - не поверю :) По любому - ядро есть меньшая часть системы, а приложения - они кроссплатформенные, один и тот же софт используется что под BSD, что под линуксы. Вот в прикладном софте подавляющая часть глюков и водится, т.что вменять это в проблему ОС - не верно. И очевидно больше глюков проявляется на десктопном софте. А серверная установка - что под BSD, что под линуксом - при адекватной настройке работает отлично.

 

PS. В основе МакОС ядро Mach, как один из компонентов ядра - FreeBSD (и afaik код из других BSD-систем).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Гм... Похоже, с сегодняшнего дня мой HOWTO можно считать недействительным - ибо интернет по нему больше не подключается :rolleyes: В Черемушках на несколько дней отключался интернет (как писал в форуме Малов, где-то порвали оптоволокно), и на своей стороне, само собой, я ничего не трогал, спокойно ждал - но когда интернет включили, подсоединение к vpn-серверу работать перестало. Симптомы дурацкие - соединение идет нормально, а заканчивается вот так:

ppp[6715]: tun0: IPCP: deflink: LayerUp.
ppp[6715]: tun0: IPCP: myaddr 85.21.221.132 hisaddr = 195.14.40.9
ppp[6715]: tun0: Command: MYADDR: ! sh -c /sbin/pfctl -e -f /etc/pf.tunnel.conf
ppp[6715]: tun0: Warning: 0.0.0.0/0: Change route failed: errno: No such process
ppp[6715]: tun0: LCP: deflink: RecvEchoRequest(1) state = Opened
ppp[6715]: tun0: LCP: deflink: SendEchoReply(1) state = Opened
ppp[6715]: tun0: Phase: deflink: read (0): Got zero bytes
ppp[6715]: tun0: CCP: deflink: State change Stopped --> Closed
ppp[6715]: tun0: CCP: deflink: State change Closed --> Initial
ppp[6715]: tun0: LCP: deflink: LayerDown
ppp[6715]: tun0: LCP: deflink: State change Opened --> Starting

Ну, и так далее - "из ничего" сразу после успешного соединения происходит Got zero bytes, и соединение начинается с начала.

 

Для справки - Warning на тему "change route failed" был всю дорогу, упоминался в исходном HOWTO, и в этом смысле ничего не изменилось.

 

Только что провел несколько часов, пытаясь понять, что изменилось, прошерстил весь гугль - так и не понял. Винюки, однако, цепляются, и даже удалось один раз соединиться и с OpenBSD (выдернул корбиновский провод, вставил в винюковую машину, убедился, что все работает - и воткнул провод обратно, тут-то оно и зацепилось), так что интернет формально опять есть - буду, видимо, ставить mpd, когда время появится, авось он будет как-то иначе работать...

 

И все-таки жутко интересно, что же они там поменяли с такими странными последствиями...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет. Тоже из Черемушек. инет колбасило пару дней, и думал что это мпд дурит, оказалось проблемы в районе. А так мпд работает без проблем. тфу тфу тфу

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Переодически, когда попадаю на какой-то встерчается точно такое-же:

ppp[6715]: tun0: IPCP: myaddr 85.21.х.х hisaddr = 195.14.40.9

Это бага, есть подозрение что не на моей стороне, адрес удаленной точки вместо 85.21. стоит 195.14.40.9 (собно адрес впн-шлюза)

Изменено пользователем _kaa_

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это бага, есть подозрение что не на моей стороне, адрес удаленной точки вместо 85.21. стоит 195.14.40.9 (собно адрес впн-шлюза)

 

В каком смысле "бага"? Если я что-то в чем-то понимаю, то это фича :corbina: С другой стороны туннеля, вроде бы, и должен стоять один из vpn.corbina.net - он и стоит... Или речь о чем-то другом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Или речь о чем-то другом?

 

скорее всего дело в моем кривом старом роутинге. насчет того, что должно стоять на том конце тунеля - работает, когда там стоит адрес, отличный от адресов впн-серверов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обратился на support@corbina.ru - пришел совет попробовать указать статический адрес vpn-сервера вместо vpn.corbina.net. Только что попробовал (взял 83.102.232.1) - и тут же произошло успешное соединение с первой попытки. К сожалению, сейчас очень много других дел, поэтому экспериментировать (все ли серверы одинаковы, можно ли снова добиться корректной работы, указывая имя, а не адрес - ведь раньше-то работало) в ближайшие несколько дней вряд ли получится. Но, по крайней мере, работоспособность восстановлена, интернет снова живет по-человечески, чего и вам желаю :huh: Техподдержке - большое спасибо!

 

И, что интересно, получилось точно по словам _kaa_ - строчка в логе появилась вот такая: myaddr 83.102.232.152 hisaddr = 85.21.11.218. Легко заметить, что адрес дальнего конца туннеля отличается от адреса vpn-сервера - и налицо успешный коннект. У меня не хватает знаний, чтобы это объяснить, но факт налицо.

 

Ох и грустно же было жить пару дней без traffic shaping, кстати! Ощущение, как будто через модем подключен :) Причем, даже когда линия загружена не на сто процентов, все равно странички грузятся задумчивее, а уж если торрент хороший попался, и загрузка сто процентов в обе стороны - пиши пропало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обратился на support@corbina.ru - пришел совет попробовать указать статический адрес vpn-сервера вместо vpn.corbina.net. Только что попробовал (взял 83.102.232.1) - и тут же произошло успешное соединение с первой попытки. К сожалению, сейчас очень много других дел, поэтому экспериментировать (все ли серверы одинаковы, можно ли снова добиться корректной работы, указывая имя, а не адрес - ведь раньше-то работало) в ближайшие несколько дней вряд ли получится. Но, по крайней мере, работоспособность восстановлена, интернет снова живет по-человечески, чего и вам желаю :) Техподдержке - большое спасибо!

 

И, что интересно, получилось точно по словам _kaa_ - строчка в логе появилась вот такая: myaddr 83.102.232.152 hisaddr = 85.21.11.218. Легко заметить, что адрес дальнего конца туннеля отличается от адреса vpn-сервера - и налицо успешный коннект. У меня не хватает знаний, чтобы это объяснить, но факт налицо.

 

Ох и грустно же было жить пару дней без traffic shaping, кстати! Ощущение, как будто через модем подключен :lol: Причем, даже когда линия загружена не на сто процентов, все равно странички грузятся задумчивее, а уж если торрент хороший попался, и загрузка сто процентов в обе стороны - пиши пропало.

 

У мна мпд захотел дружить только с 83.102.232.1 с остальными чудил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И снова то же самое, но, похоже, в этот раз всё хуже. Снова (вчера вечером) некая "замена оборудования", по словам техподдержки, на несколько часов, затем, к вечеру, интернет появился, но утром его снова не обнаружилось.

 

Звоню в поддержку - и обнаруживается, что люди из моего дома успешно сидят в интернете. А у меня все те же симптомы, что и раньше, только уже указан ip для vpn-сервера. Рекомендация техподдержки - попробуйте поменять адрес с 83* на 195* (и в соответствующем разделе форума я уже прочитал, что 83 убили), поменять на один из 195 уже попробовал - не заработало. Само собой, сейчас пойду экспериментировать, авось что-нибудь накручу, но пока есть грустное подозрение, что теперь все vpn-серверы корбины перестали работать с pptpclient'ом в моей OpenBSD, и что теперь делать - я не понимаю.

 

Если у кого-нибудь есть советы - не молчите, подскажите что-нибудь...

 

Да, на всякий случай - ключевые строчки в логах с новыми vpn выглядят так:

 

Mar 23 15:09:23 open ppp[4313]: tun0: IPCP: myaddr 85.21.222.125 hisaddr = 195.14.40.9

Mar 23 15:09:23 open ppp[4313]: tun0: Warning: iface add: ioctl(SIOCAIFADDR, 85.21.222.125 -> 195.14.40.9): File exists

Mar 23 15:09:23 open ppp[4313]: tun0: Error: ipcp_InterfaceUp: unable to set ip address

 

Если пойти в гугль по этим ключевым словам, то вопрос встречается очень часто, просто невероятно часто, но вот ответа на него первые три-четыре страницы результатов не содержат :-( Самый похожий на истину совет, увы, повторяет уже известную (см. письма от Dalida и _kaa_) истину:

 

http://archive.netbsd.se/?ml=freebsd-net&a=2004-02&t=50446

 

The usual cause of "File exists" here is a duplicate address on either end. I would not expect to be able to have >1 non-bundled links to/from the same address.

Изменено пользователем Anonymous

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробуй 195.14.40.7

У меня FreeBSD и pptp. Все работает. Только я в скрипте при обрыве выбираю след. vpn сервер пока не зацепится устойчиво.

А строчка есно должна быть

tun0: IPCP: myaddr 85.21.222.125 hisaddr = 85.21.52.94

 

А приведи что выше по логу IPCP. Что-то типа

tun0: IPCP: IPADDR[6] 85.21.52.94

должно присутствовать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробуй 195.14.40.7

У меня FreeBSD и pptp. Все работает. Только я в скрипте при обрыве выбираю след. vpn сервер пока не зацепится устойчиво.

А строчка есно должна быть

tun0: IPCP: myaddr 85.21.222.125 hisaddr = 85.21.52.94

 

А приведи что выше по логу IPCP. Что-то типа

tun0: IPCP: IPADDR[6] 85.21.52.94

должно присутствовать

 

Попробовал .7 - тут же заработало, спасибо! И адрес действительно другой:

 

tun0: IPCP: myaddr 85.21.99.118 hisaddr = 85.21.52.94

 

А в старых логах было так:

 

Mar 23 19:21:46 open ppp[4313]: tun0: Phase: Chap Input: SUCCESS
Mar 23 19:21:46 open ppp[4313]: tun0: CCP: FSM: Using "deflink" as a transport
Mar 23 19:21:46 open ppp[4313]: tun0: CCP: deflink: State change Initial --> Closed
Mar 23 19:21:46 open ppp[4313]: tun0: CCP: deflink: LayerStart.
Mar 23 19:21:46 open ppp[4313]: tun0: CCP: MPPE: Not usable without CHAP81
Mar 23 19:21:46 open ppp[4313]: tun0: CCP: deflink: SendConfigReq(1) state = Closed
Mar 23 19:21:46 open ppp[4313]: tun0: CCP:  DEFLATE[4] win 15
Mar 23 19:21:46 open ppp[4313]: tun0: CCP:  PRED1[2]
Mar 23 19:21:46 open ppp[4313]: tun0: CCP: deflink: State change Closed --> Req-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: Phase: deflink: lcp -> open
Mar 23 19:21:46 open ppp[4313]: tun0: Phase: bundle: Network
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: FSM: Using "deflink" as a transport
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: State change Initial --> Closed
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: LayerStart.
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: SendConfigReq(93) state = Closed
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  IPADDR[6] 0.0.0.0
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  COMPPROTO[6] 16 VJ slots with slot compression
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: State change Closed --> Req-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: RecvConfigReq(1) state = Req-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  IPADDR[6] 195.14.40.9
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: SendConfigAck(1) state = Req-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  IPADDR[6] 195.14.40.9
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: State change Req-Sent --> Ack-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: RecvConfigRej(93) state = Ack-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  COMPPROTO[6] 16 VJ slots with slot compression
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: SendConfigReq(94) state = Ack-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  IPADDR[6] 0.0.0.0
Mar 23 19:21:46 open ppp[4313]: tun0: LCP: deflink: RecvProtocolRej(2) state = Opened
Mar 23 19:21:46 open ppp[4313]: tun0: LCP: deflink: -- Protocol 0x80fd (Compression Control Protocol) was rejected!
Mar 23 19:21:46 open ppp[4313]: tun0: CCP: deflink: State change Req-Sent --> Stopped
Mar 23 19:21:46 open ppp[4313]: tun0: LCP: deflink: RecvProtocolRej(3) state = Opened
Mar 23 19:21:46 open ppp[4313]: tun0: LCP: deflink: -- Protocol 0x8057 (Internet Protocol V6 Control Protocol) was rejected!
Mar 23 19:21:46 open ppp[4313]: tun0: Phase: deflink: IPV6CP protocol reject closes IPV6CP !
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: RecvConfigNak(94) state = Ack-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  IPADDR[6] 85.21.220.222
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  IPADDR[6] changing address: 0.0.0.0  --> 85.21.220.222
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: SendConfigReq(95) state = Ack-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  IPADDR[6] 85.21.220.222
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: RecvConfigAck(95) state = Ack-Sent
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP:  IPADDR[6] 85.21.220.222
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: State change Ack-Sent --> Opened
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: LayerUp.
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: myaddr 85.21.220.222 hisaddr = 195.14.40.9
Mar 23 19:21:46 open ppp[4313]: tun0: Warning: iface add: ioctl(SIOCAIFADDR, 85.21.220.222 -> 195.14.40.9): File exists
Mar 23 19:21:46 open ppp[4313]: tun0: Error: ipcp_InterfaceUp: unable to set ip address
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: LayerDown: 85.21.220.222
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: SendTerminateReq(96) state = Opened
Mar 23 19:21:46 open ppp[4313]: tun0: IPCP: deflink: State change Opened --> Closing

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На 195.14.40.9 у меня таже строка.

tun0: IPCP: myaddr 85.21.хх.хх hisaddr = 195.14.40.9

Но работает. Правда недолго ( минут 5-10) и срывается

 

tun0: Error: ipcp_InterfaceUp: unable to set ip address

не возникает такой ошибки. Но у меня статический адрес. Возможно в этом

и порылась собака? Т.е. на разных vpn - разные пулы? А у меня всегда один

и тот же ip.

Но скорее всего эта ошибка характерна для OBSD и не воспроизводится на Free

в силу разного механизма bind-а ip на интерфейс

 

Другие сервера еще не проверял. ( Не дошел цикл)

А 195.14.40.7 это судя по всему физически бывший 83.102.232.1 :(

Изменено пользователем AndreySh

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вот и полный финиш. Сегодня и .7 начал отвечать точно так же, как и все остальные. Я только что проверил все семь серверов по порядку - и они стали строго одинаковыми, увы. И ни один не работает.

 

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

 

Короче, видимо, тему можно удалять - пользы она теперь никому принести не может. Пойду подключать провод напрямую в винюки и сносить OpenBSD. Спасибо доброй Корбине за наше счастливое всё :-(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Жалко, конечно, но сам понимаешь - обидно...

 

Опять же, какие у меня разумные варианты? Под линуксами все равно заново терять несколько вечеров (проделанная работа почти неприменима - софт по дефолту практически везде другой, настройки у него другие и в других местах), потом заново лечить все обнаруженные проблемы... И, повторюсь, линуксы меня не очень радуют изнутри. Я несколько штук смотрел под vmware, и пришел-таки к BSD. Проще, удобнее, надежнее...

 

Под FreeBSD, как описано выше, весьма хреново работает pptpclient - падает с корами, и почти наверняка надо будет разбираться с mpd, плюс, она тормознее, плюс, люди здесь же пишут, что и она не со всеми серверами вяжется (вон, Dalida говорит, что вообще только с одним, AndreySh обрывается через 5-10 минут). Плюс, в любом случае, винт заново форматить, все с нуля...

 

И не факт, что завтра добрые админы еще что-нибудь не поменяют потихоньку... Под винюками, хоть и гиморно, зато есть уверенность, что завтра будет работать не хуже, чем сегодня. Ибо леммингов _много_, и их никто не тронет.

 

Ну, может, через какое-то время остыну чуток, если найдется какое-то время - может, покручу что-нибудь на досуге - FreeBSD, наверное, как самую близкую... А может и нет, как пойдет... Главный вывод пока - ни в коем разе не пытаться покупать для Корбины аппаратные решения: их в подобных случаях снести и забыть не получится, деньги уже заплачены B)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 Anonymous

mpd до сегодняшнего дня работал на 5+

Судя по темам ряду пользователей проблему удалось решить

Так что не будем отчаиваться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас