Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
|
Каталог статей |
PPPoE соединения во FreeBSD
Пару слов о настройке PPPoE соединения во FreeBSD
Очень многие небольшие домашние сети в настоящее время по ряду причин (в
основном связанных с безопасностью) осуществляют перевод пользователей
на PPPoE (point-to-point over Ethernet). В связи с этим возникает вопрос
с настройкой подключения к сети посредством протокола PPPoE.
Во
FreeBSD есть несколько возможностей такого подключения при помощи
встроенного в систему ppp (на базе netgraph) или при помощи программного
mpd (/usr/ports/net/mpd). Рассмотрим первый способ.
Конфигурационные
файлы для процесса ppp хранятся в папке /etc/ppp/. При этом основным
файлом (и единственным, который теперь используется) является
/etc/ppp/ppp.conf Ранее (в более старых версиях FreeBSD) по умолчанию в
данном каталоге хранились ещё несколько файлов (например, chap-secrets,
где отдельно указывался пароль, используемый при подключении, и др.). На
настоящий момент допускается применение нескольких файлов, но для
удобства проще задать всю необходимую конфигурацию сразу в ppp.conf
Итак, по умолчанию файл ppp.conf выглядит примерно так.
################################################################# # PPP Sample Configuration File # Originally written by Toshiharu OHNO # Simplified 5/14/1999 by wself@cdrom.com # # See /usr/share/examples/ppp/ for some examples # # $FreeBSD: src/etc/ppp/ppp.conf,v 1.8 2001/06/21 15:42:26 brian Exp $ #################################################################
default: set log Phase Chat LCP IPCP CCP tun command ident user-ppp VERSION (built COMPILATIONDATE)
# Ensure that "device" references the correct serial port # for your modem. (cuaa0 = COM1, cuaa1 = COM2) # set device /dev/cuaa1
set speed 115200 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" set timeout 180 # 3 minute idle timer (the default) enable dns # request DNS info (for resolv.conf)
papchap: # # edit the next three lines and replace the items in caps with # the values which have been assigned by your ISP. #
set phone PHONE_NUM set authname USERNAME set authkey PASSWORD
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 add default HISADDR # Add a (sticky) default route
Дадим некоторые пояснения к правилам оформления файла. Слово
до символа ":" (default, papchap) означает начало блока с
соответствующим именем, который содержит список параметров. Начало
следующего блока говорит об окончании предыдущего. Так ключевое слово
default говорит о том, какие данные будут использоваться в соединении по
умолчанию при каждом запуске ppp и соответственно для всех указанных в
файле типов соединений. Как правило каждый блок соответствует отдельному
провайдеру. Так например при использовании разных провайдеров
(различных ppp соединений) для одной машины может быть задан блок
pppoe_conection (для соединения PPPoE) и блок modem_connection (для
модемного соединения). При этом имя блока, естественно может быть любым и
к примеру, совпадать с кличкой вашего любимого кота, который своим
шипением так искусно подражает модему. Блок papchap, отвечающий за
авторизацию и её безопасность при установлении соединения вообще говоря
не обязателен и как правило параметры из этого блока объединяются внутри
единого блока для каждого конкретного соединения. Соответственно PAP и
CHAP - это механизмы аутентификации, которые используются провайдером
(серверная часть протокола PPP). Если внимательно взглянуть на
параметры, приводимые внутри блока, то смысл их станет понятен уже из
названия. А если вы что-то не поняли, то всегда есть man ppp. Итак, на базе конфигурационного файла по умолчанию составим свой.
#Начало файла default: set log Phase tun command
myisp: set device PPPoE:rl0 set authname your_login set authkey your_password enable dns add default HISADDR #Конец файла
Сделаем некоторые пояснения.
Директива set говорит о том, что надо установить следующие после неё параметры. log - включает ведение log-файла (по умолчанию все сообщения записываются в файл /var/log/ppp.log Phase - поэтапный вывод сообщений в лог (соответствует этапам подключения), позволяет исключить малоинформативные сообщения tun
- виртуальное сетевое устройство, которое будет задействовано при
соединении (в данном случае tun, т.к. протокол точка-точка) command -
производить запись в лог как команд, полученных с командной строки, так
и тех, которые были считаны стартовым скриптом ppp из конфигурационного файла device
- задаёт имя физического устройства, по которому осуществляется
соединение (например, сетевая карта rl0 или модем на com порту
/dev/cuaa1) PPPoE - задаёт уточнение протокола (в рамках протоколов, поддерживающихся ppp) authname - указывает на логин, используемый при подключении, обычно выдаётся провайдером (вместо your_login введите свой логин) authkey
- задаёт пароль, используемый при авторизации (при помощи механизмов
PAP или CHAP), и обычно выдаваемый провайдером (вместо your_password введите свой пароль) enable dns - указывает, что данные о DNS сервере следует считывать из файла /etc/resolv.conf add
default - говорит о том, что не нужно использовать для посылки пакетов
другой стороне PPP-соединения альтернативной записи о маршрутизации HISSADR - отображать IP адрес присоединённой стороны
Таким
образом, как зто следует из конфигурационного файла, осталось только
прописать адрес DNS (лучше спросить у провайдера) в файле
/etc/resolv.conf
У меня используется для ускорения загрузки
страниц в браузере собственный кеширующий DNS сервер, запущенный на моей
машине, который впрочем в качестве forwarders использует DNS сервер
провайдера. Поэтому первой строкой впишем его, а уже потом провайдерский
DNS сервер.
# Начало файла nameserver 127.0.0.1 nameserver xxx.xxx.xxx.xxx # смените на IP адрес DNS сервера вашего провайдера # Конец соединения
Вот и всё, теперь можно попробовать подключиться. Сделать это можно при помощи команды запущенной от имени root #ppp -ddial myisp Она выдаст что-то похожее на Working in ddial mode Using interface: tun0
Теперь внесём соответствующие записи в /etc/rc.conf для того, чтобы соединение устанавливалось автоматически при старте системы. Добавим следующие строки от имени root. #echo 'ppp_enable="YES"' #echo 'ppp_mode="ddial"' #echo 'ppp_profile="myisp"'
На
этом конфигурирование PPP можно считать оконченным. Теперь можете
запустить аську и рассказать своим друзьям, что несмотря на козни вашего
провайдера у вас по-прежнему работает интернет на FreeBSD =)
И ещё несколько слов о том, как происходит запуск ppp при старте системы. Как
известно, стартовые скрипты располагаются в каталоге /etc/rc.d (куда с
лёгкостью можно добавить какой-нибудь свой, однако, чтобы не мешать
пользовательские скрипты с системными, свои лучше помечать в
/usr/local/etc/rc.d). При этом за общий запуск всех сетевых
соединений указанных в /etc/rc.conf отвечает скрипт /etc/netstart, в
котором фактически просто перечислены некоторые скрипты из /etc/rc.d За
старт ppp отвечает скрипт /etc/rc.d/ppp-user, который фактически
представляет простенький скрипт, формирующий команду для запуска ppp на
базе соответствующих строк в файлах /etc/rc.conf и /etc/ppp/ppp.conf, а
также синхронизирует ipfilter с ppp. Поэтому в случае необходимости
всегда можно внести свои дополнения в этот файл.
P.S. При подготовке данной заметки использовались man ppp.
|
Категория: Мои статьи | Добавил: Admin (07.04.2011)
|
Просмотров: 2261
| Рейтинг: 0.0/0 |
|
|
|