Высокопроизводительный роутер для дома на базе PC и pfSense

02.12.2012 от admin 0

В жизни каждого пользователя всемирной сети наступает момент когда … кхм, да что там, вы и сами знаете для чего нужны маршрутизаторы.

Для подавляющего большинства домашних пользователей подойдут хардварные маршрутизаторы SOHO класса, но задачи бывают разные – кому-то нужно разместить приватный VPN сервер, протолкнуть честные 100 Мбит, что-нибудь очень хитро запроксировать … ну а я, например, люблю торренты, только не те что вы подумали — у меня к торрентам своя особая, «серверная» любовь.

В общем, мне понадобился маршрутизатор способный держать несколько тысяч соединений и прогонять поток в 100 Мбит.
В наличии из заводских маршрутизаторов у меня были только слабенькие ZyXel 330, Trendnet 432 brp, D-Link DIR-300. Ни один из них не способен осилить и четверти нагрузки что мне требуется, по этому было принято решение сваять что-нибудь из завалявшегося дома компьютерного барахла.
Первым моим роутером стал Celeron 800 + 64 Mb PC133 SDRAM на GA-6VEM с HDD на 4 гигабайта.
На эту замечательную машинку как родной встал m0n0wall-mod и успешно работал с 2008 года по сей день.

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

Именно в такой момент я и наткнулся на завалявшиеся в моем любимом компьютерном магазине интеловские платки D945GCLF. Да, моделька устаревшая, но в плюсах у нее цена и достаточная для моих задач производительность. Было принято решение обновлять роутеры.

Для замены старых жужжащих винчестеров были приобретены переходники CF to IDE и карточки к ним, оперативка – по 1GB DDR2 на роутер.

На корпусах решил сэкономить и использовать старые, места в них с большим запасом для таких плат.

А вот тут вскрылась проблема – в одном из корпусов был БП без серого провода т.е. сигнала Power OK у меня нет, а без него осторожная интеловская материнка включаться опасалась. Ну и 4-pin для процессора нет, но это не страшно.

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

В качестве софтовой части решил использовать pfSense.
Я давно следил за его развитием, например версию 1.2.3 я успешно расставил по филиалам и вязал по IPSEC с головным офисом. Вот только поддержки DHCP+PPTP на WAN у него никак не появлялось, а мой провайдер использует именно такой тип авторизации абонентов. К счастью версия 2.0 принесла много нового, в том и числе и возможность такого рода подключения – чем я и воспользовался.

Ставится pfSense очень дружелюбно: достаточно загрузиться с диска, выбрать Installer Mode и согласиться на Quick Install (ВНИМАНИЕ ! В режиме Quick Install автоматически будет выбран первый обнаруженный жесткий диск – отключите все лишнее !).

Далее загружаем свежую систему, указываем какую сетевую карту под какой интерфейс отдать, выдаем IP и переходим к настройке собственно Интернета — для этого у нас есть очень хорошо проработанный веб-интерфейс.

Кратко описываю основные моменты настройки, благо сложности тут почти нет:

System —> General Setup
указываем Hostname и Domain, для эстетического удовольствия
вбиваем свои любимые DNS-сервера либо ставим галку «Allow DNS server list to be overridden by DHCP/PPP on WAN» и получаем DNS от провайдера
ставим галку «Do not use the DNS Forwarder as a DNS server for the firewall», по названию вполне понятно что она делает
выставляем время и сохраняемсяSystem —> Advanced —> Admin access
ставим галку «Disable DNS Rebinding Checks», по моему опыту эта штука работает аномально (либо я не умею ее готовить)

Так же на этой странице есть много всего интересного, например перевод интерфейса на HTTPS и включение SSH на роутере.

System —> User manager
меняем дефолтный пароль pfsense пользователя admin

Создание подключения к Интернету описываю для Домашнего Интернета Билайн, т.е. DHCP+PPTP, для других провайдеров с аналогичной схемой то же должно подойти. Если вдруг нет – в русской ветке форума вам помогут.

Итак, идем в Interfaces —> assign —> PPPs и создаем подключения нажатием на «+»

Link type – PPTP, либо L2TP, это зависит от города и доступных серверов авторизации
Link interface – выбираем WAN, а не сетевой интерфейс
Вписываем логин и пароль от соединения в соответствующие поля.

Переходим на первую вкладку (Interface assignments) и нажатием на «+» добавляем новый интерфейс из созданного нами PPTP (L2TP) соединения. Сейчас он называется OPT1, но это исправимо.

Переходим в Interfaces —> OPT1, включаем его (Enable interface), после выбора типа – PPTP (L2TP) в открывшиеся поля подставятся данные из ранее созданного соединения.

Remote IP address – адрес VPN сервера провайдера, я предпочитаю вписывать IP, но должен понимать и домены.

В поле Local IP address я указываю адрес выданный по DHCP, т.к. поле обязательное, хотя в обсуждении на форуме говорят оставить его пустым.

При поднятии интерфейсов для каждого из них будет создан шлюз, чтобы по умолчанию ходить в Интернет заходим в System —> Routing и указываем быть дефолтным интерфейсу с PPTP соединением (OPT1).

Собственно всё, роутер в минимальной конфигурации у нас уже есть.

Рекомендую заглянуть в каждый уголок веб-интерфейса, тут много что можно настроить под свои нужды – функционал идущий из коробки очень богат.
Кроме того, на страничке System —> Packages —> Available packages можно выбрать что бы еще хотелось поставить, например мне очень приглянулся Zabbix Agent.

Отто Юльевич Шмидт