Документация по ОС FreeBSD Среда, 24.04.2024, 04:35
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » РРР

Настройка PPPoE сервера во FreeBSD Часть 2 [2009]
Блок def_conf:

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

create bundle template B - создаем бандл "B", он же будет выступать в качестве шаблона
set iface up-script /usr/local/etc/mpd5/vpn_up_mpd.pl
set iface down-script /usr/local/etc/mpd5/vpn_down_mpd.pl - цепляем внешние скрипты на события создания и закрытия туннеля ppp.

MPD может передавать данные в качестве аргументов на события подключения и отключения пользователя к серверу:
$ARGV[0] - ngXX - номер тунеля
$ARGV[1] - inet
$ARGV[2] - aaa.bbb.ccc.ddd/32 - IP адрес сервера
$ARGV[3] - IP адрес, выданный пользователю
$ARGV[4] - логин пользователя

Эти аргументы вы можете использовать в perl скриптах vpn_up_mpd.pl и vpn_down_mpd.pl

set bundle enable compression - разрешаем CCP (Compression Control Protocol). Разрешаем только использование протокола, выбор протокола сжатия описан ниже.

set bundle enable encryption - разрешаем ECP (Encryption Control Protocol). Аналогично предыдущему пункту, выбор протокола сжатия описан ниже.

set iface idle 0 - таймаут в секундах неактивности, по истечении которого соединение принудительно разрывается со стороны сервера.
"0" - не разрывать (стоит по дефолту).

set iface disable proxy-arp - запрещаем proxy-arp. Этот параметр полезен для имитации единой локалки для удаленных хостов.

set iface enable tcpmssfix - позволяет MPD управлять настройкой входящих и исходящих TCP SYN сегментов таким образом, чтобы не превышать MTU, допустимый на интерфейсе.

set ipcp yes vjcomp - разрешает компрессию заголовков (Van Jacobson TCP).

set ipcp ranges aaa.bbb.ccc.ddd/32 0.0.0.0/0 - пул IP адресов сервера/клиентов

set ipcp dns xxx.yyy.zzz.ddd qqq.www.eee.rrr - dns сервера, отдаваемые клиенту

set ccp yes mppc - включаем MPPC субпротокол сжатия/шифрования

set mppc yes e40 - включаем 40-bit MPPE шифрование

set mppc yes e56 - включаем 56-bit MPPE шифрование

set mppc yes e128 - включаем 128-bit MPPE шифрование

set mppc yes stateless - настройка, полезная при пакетлоссах (потерях)

log -echo -ipv6cp -radius -rep - уровни логгирования

load common - загрузка другого блока с именем common

Переходим к блоку common:

create link template PPPoE pppoe - создаем линк, он же будет выступать в качестве шаблона

set link enable no-orig-auth - Обычно при использовании PAP или CHAP авторизация происходит в начале соединения. Эта опция временно выключает данное требование в случае если наш сервер является единственным в сети, а клиенту вдруг не нравится запрос от сервера на авторизацию.

set link max-children 300 - максимальное количество соединений для этого шаблона

load pppoe - подгружаем следующий блок

set link action bundle B - накладываем на линк настройки бандла

set link enable multilink - опция позволяет создавать множественное подключение PPP. Но в данном случае опция позволяет пропускать большие пакеты (больше MTU) фрагментами. Что-то вроде фрагментации пакетов.

set link yes acfcomp protocomp - сжатие адресного поля, поля заголовков и поля протокола. Для экономии нескольких байтов во фрейме.

set link disable chap pap eap - запрещаем данные протоколы проверки пароля

set link enable chap-msv1 chap-msv2 chap-md5 - разрешаем протоколы проверки пароля (необходимы для возможности включения шифрования (Microsoft)).

set link keep-alive 10 60 - разрешает LCP пакеты. По умолчанию 5 40.
Можно отказаться от этой опции, поставив первое значение в "0".

create link template bge1_0 PPPoE - создаем линк bge1_0 и накладываем настройки шаблона PPPoE

set pppoe iface bge1 - задаем интерфейс, где будет поднят наш сервис.
Может быть как физическим интерфейсом, так и вланом (vlan).

set link enable incoming - разрешаем входящие соединения

set pppoe service service_name0 - поднимаем сервис-нейм (service-name) на заданном интерфейсе

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

Заключение

Из плюсов использования MPD в качестве PPPoE сервера хочу отметить меньшую загрузку CPU, особенно в сочетании с использованием поллинга (polling).

Для этого нужно собрать ядро с поддержкой поллинга:

options DEVICE_POLLING
options HZ=1000


После этого можно включить поллинг через /etc/sysctl.conf:

kern.polling.enable=1
kern.polling.user_frac=10

Последнее означает что система будет делить ресурсы CPU в соотношении userland/kernel как 10/90. По умолчанию это значение 50/50.

Конфиг работает на версиях порта mpd-5.0, mpd-5.1. С версией mpd-5.1_1 наблюдались проблемы на серверной стороне. При невыясненных обстоятельствах запускался второй процесс mpd5, который грузил CPU в 100%, а пользователи не могли подключиться. Пришлось откатываться на 5.1.


Источник: http://subnets.ru/blog/?p=1110
Категория: РРР | Добавил: oleg (25.11.2009) | Автор: Николаев Дмитрий (virus (at) subnet
Просмотров: 1281 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024