Понедельник, 23.10.2017, 05:16
# FreeBSD ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Мои статьи [167]
Статистика

Онлайн всего: 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)
Просмотров: 1174 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2017Сделать бесплатный сайт с uCoz