Проект Документации Freebsd   руководство

Вид материалаРуководство

Содержание


21.3. PPP уровня ядра
21.3.2. Использование pppd в качестве клиента
Abort busy abort 'no carrier' "" at ok atdt
21.3.3. Использование pppd в качестве сервера
21.4. Решение проблем с соединениями PPP
21.4.1. Проверьте файлы устройств
21.4.2. Подключение вручную
21.5. Использование PPP через Ethernet (PPPoE)
21.5.1. Настройка ядра
21.5.2. Настройка ppp.conf
21.5.3. Запуск ppp
21.5.5. Использование тега сервиса PPPoE
21.5.6. PPPoE c 3Com® HomeConnect® ADSL Modem Dual Link
21.6. Использование PPP через ATM (PPPoA)
21.6.2. Использование mpd
21.6.3. Использование pptpclient
21.7. Использование SLIP
21.7.1.1. То, что необходимо сделать только один раз
21.7.1.2. Создание SLIP соединения
21.7.1.3. Как прервать соединение
...
Полное содержание
Подобный материал:
1   ...   49   50   51   52   53   54   55   56   ...   69

21.3. PPP уровня ядра


Части документа первоначально предоставили Gennady B. Sorokopud, Robert Huff.

21.3.1. Настройка PPP уровня ядра


Перед началом настройки PPP на вашем компьютере, убедитесь, что pppd находится в /usr/sbin и каталог /etc/ppp существует.

pppd может работать в двух режимах:

1. В качестве “клиента” — когда вы хотите подключить компьютер к внешнему миру через последовательное соединение PPP или модемную линию.

2. В качестве “сервера” — когда компьютер подключен к сети и используется для подключения других компьютеров через PPP.

В обеих случаях вам потребуется настроить файл параметров (/etc/ppp/options или ~/.ppprc если на вашем компьютере более одного пользователя работают с PPP).

Вам потребуется также программа для модемных/последовательных линий (предпочтительно comms/kermit) для дозвона и установки соединения с удаленным хостом.

21.3.2. Использование pppd в качестве клиента


Основано на информации, предоставленной Trev Roydhouse.

Для подключения к линии PPP терминального сервера Cisco может использоваться следующий файл /etc/ppp/options.

crtscts # enable hardware flow control

modem # modem control line

noipdefault # remote PPP server must supply your IP address

# if the remote host does not send your IP during IPCP

# negotiation, remove this option

passive # wait for LCP packets

domain ppp.foo.com # put your domain name here


: # put the IP of remote PPP host here

# it will be used to route packets via PPP link

# if you didn't specified the noipdefault option

# change this line to :


defaultroute # put this if you want that PPP server will be your

# default router

Для подключения:

1. Дозвонитесь на удаленный хост, используя kermit (или любую другую модемную программу), и введите ваше имя пользователя и пароль (или те данные, которые требуются для установления PPP соединения с удаленным хостом).

2. Выйдите из kermit (без обрыва соединения).

3. Введите следующее:

# /usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200

Убедитесь, что выбраны подходящая скорость и правильное имя устройства.

Теперь ваш компьютер подключен по PPP. Если соединение не состоялось, вы можете добавить параметр debug к файлу /etc/ppp/options, и отследить проблему по сообщениям на консоли.

Следующий скрипт /etc/ppp/pppup проведет все 3 стадии в автоматическом режиме:

#!/bin/sh

ps ax |grep pppd |grep -v grep

pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`

if [ "X${pid}" != "X" ] ; then

echo 'killing pppd, PID=' ${pid}

kill ${pid}

fi

ps ax |grep kermit |grep -v grep

pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`

if [ "X${pid}" != "X" ] ; then

echo 'killing kermit, PID=' ${pid}

kill -9 ${pid}

fi


ifconfig ppp0 down

ifconfig ppp0 delete


kermit -y /etc/ppp/kermit.dial

pppd /dev/tty01 19200

/etc/ppp/kermit.dial это скрипт kermit, который дозванивается до удаленного хоста и проходит необходимую авторизацию (пример такого скрипта находится в конце этого раздела).

Используйте следующий скрипт /etc/ppp/pppdown для отключения от PPP линии:

#!/bin/sh

pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`

if [ X${pid} != "X" ] ; then

echo 'killing pppd, PID=' ${pid}

kill -TERM ${pid}

fi


ps ax |grep kermit |grep -v grep

pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`

if [ "X${pid}" != "X" ] ; then

echo 'killing kermit, PID=' ${pid}

kill -9 ${pid}

fi


/sbin/ifconfig ppp0 down

/sbin/ifconfig ppp0 delete

kermit -y /etc/ppp/kermit.hup

/etc/ppp/ppptest

Проверьте, запущен ли еще pppd, выполнив /usr/etc/ppp/ppptest, который выглядит примерно так:

#!/bin/sh

pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'`

if [ X${pid} != "X" ] ; then

echo 'pppd running: PID=' ${pid-NONE}

else

echo 'No pppd running.'

fi

set -x

netstat -n -I ppp0

ifconfig ppp0

Для обрыва соединения, выполните /etc/ppp/kermit.hup, который должен содержать:

set line /dev/tty01 ; put your modem device here

set speed 19200

set file type binary

set file names literal

set win 8

set rec pack 1024

set send pack 1024

set block 3

set term bytesize 8

set command bytesize 8

set flow none


pau 1

out +++

inp 5 OK

out ATH0\13

echo \13

exit

Существует альтернативный метод, использующий chat вместо kermit:

Для установления соединения pppdдостаточно двух файлов.

/etc/ppp/options:

/dev/cuaa1 115200


crtscts # enable hardware flow control

modem # modem control line

connect "/usr/bin/chat -f /etc/ppp/login.chat.script"

noipdefault # remote PPP serve must supply your IP address

# if the remote host doesn't send your IP during

# IPCP negotiation, remove this option

passive # wait for LCP packets

domain # put your domain name here


: # put the IP of remote PPP host here

# it will be used to route packets via PPP link

# if you didn't specified the noipdefault option

# change this line to :


defaultroute # put this if you want that PPP server will be

# your default router

/etc/ppp/login.chat.script:

Замечание: Все это может быть расположено на одной строке.

ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT


CONNECT "" TIMEOUT 10 ogin:-\\r-ogin:

TIMEOUT 5 sword:


Как только эти файлы будут созданы и отредактированы, необходимо только запустить pppd, вот так:

# pppd

21.3.3. Использование pppd в качестве сервера


/etc/ppp/options должен содержать примерно следующее:

crtscts # Hardware flow control

netmask 255.255.255.0 # netmask (not required)

192.114.208.20:192.114.208.165 # IP's of local and remote hosts

# local ip must be different from one

# you assigned to the Ethernet (or other)

# interface on your machine.

# remote IP is IP address that will be

# assigned to the remote machine

domain ppp.foo.com # your domain

passive # wait for LCP

modem # modem line

Следующий скрипт /etc/ppp/pppserv укажет pppd работать в качестве сервера:

#!/bin/sh

ps ax |grep pppd |grep -v grep

pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`

if [ "X${pid}" != "X" ] ; then

echo 'killing pppd, PID=' ${pid}

kill ${pid}

fi

ps ax |grep kermit |grep -v grep

pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`

if [ "X${pid}" != "X" ] ; then

echo 'killing kermit, PID=' ${pid}

kill -9 ${pid}

fi


# reset ppp interface

ifconfig ppp0 down

ifconfig ppp0 delete


# enable autoanswer mode

kermit -y /etc/ppp/kermit.ans


# run ppp

pppd /dev/tty01 19200

Используйте этот скрипт /etc/ppp/pppservdown для остановки сервера:

#!/bin/sh

ps ax |grep pppd |grep -v grep

pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`

if [ "X${pid}" != "X" ] ; then

echo 'killing pppd, PID=' ${pid}

kill ${pid}

fi

ps ax |grep kermit |grep -v grep

pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`

if [ "X${pid}" != "X" ] ; then

echo 'killing kermit, PID=' ${pid}

kill -9 ${pid}

fi

ifconfig ppp0 down

ifconfig ppp0 delete


kermit -y /etc/ppp/kermit.noans

Следующий kermit скрипт (/etc/ppp/kermit.ans) включит/отключит режим ответа модема на входящие звонки. Он должен выглядеть примерно так:

set line /dev/tty01

set speed 19200

set file type binary

set file names literal

set win 8

set rec pack 1024

set send pack 1024

set block 3

set term bytesize 8

set command bytesize 8

set flow none


pau 1

out +++

inp 5 OK

out ATH0\13

inp 5 OK

echo \13

out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable

; autoanswer mode

inp 5 OK

echo \13

exit

Скрипт, называющийся /etc/ppp/kermit.dial, используется для дозвона и аутентификации на удаленном хосте. Вам потребуется приспособить его под собственные нужды. Поместите ваш логин и пароль в этот скрипт; вам также потребуется изменить операторы input в зависимости от ответов от модема и удаленного хоста.

;

; put the com line attached to the modem here:

;

set line /dev/tty01

;

; put the modem speed here:

;

set speed 19200

set file type binary ; full 8 bit file xfer

set file names literal

set win 8

set rec pack 1024

set send pack 1024

set block 3

set term bytesize 8

set command bytesize 8

set flow none

set modem hayes

set dial hangup off

set carrier auto ; Then SET CARRIER if necessary,

set dial display on ; Then SET DIAL if necessary,

set input echo on

set input timeout proceed

set input case ignore

def \%x 0 ; login prompt counter

goto slhup


:slcmd ; put the modem in command mode

echo Put the modem in command mode.

clear ; Clear unread characters from input buffer

pause 1

output +++ ; hayes escape sequence

input 1 OK\13\10 ; wait for OK

if success goto slhup

output \13

pause 1

output at\13

input 1 OK\13\10

if fail goto slcmd ; if modem doesn't answer OK, try again


:slhup ; hang up the phone

clear ; Clear unread characters from input buffer

pause 1

echo Hanging up the phone.

output ath0\13 ; hayes command for on hook

input 2 OK\13\10

if fail goto slcmd ; if no OK answer, put modem in command mode


:sldial ; dial the number

pause 1

echo Dialing.

output atdt9,550311\13\10 ; put phone number here

assign \%x 0 ; zero the time counter


:look

clear ; Clear unread characters from input buffer

increment \%x ; Count the seconds

input 1 {CONNECT }

if success goto sllogin

reinput 1 {NO CARRIER\13\10}

if success goto sldial

reinput 1 {NO DIALTONE\13\10}

if success goto slnodial

reinput 1 {\255}

if success goto slhup

reinput 1 {\127}

if success goto slhup

if < \%x 60 goto look

else goto slhup


:sllogin ; login

assign \%x 0 ; zero the time counter

pause 1

echo Looking for login prompt.


:slloop

increment \%x ; Count the seconds

clear ; Clear unread characters from input buffer

output \13

;

; put your expected login prompt here:

;

input 1 {Username: }

if success goto sluid

reinput 1 {\255}

if success goto slhup

reinput 1 {\127}

if success goto slhup

if < \%x 10 goto slloop ; try 10 times to get a login prompt

else goto slhup ; hang up and start again if 10 failures


:sluid

;

; put your userid here:

;

output ppp-login\13

input 1 {Password: }

;

; put your password here:

;

output ppp-password\13

input 1 {Entering SLIP mode.}

echo

quit


:slnodial

echo \7No dialtone. Check the telephone line!\7

exit 1


; local variables:

; mode: csh

; comment-start: "; "

; comment-start-skip: "; "

; end:

21.4. Решение проблем с соединениями PPP


Предоставил Tom Rhodes.

Этот раздел охватывает несколько вопросов, которые могут возникнуть при использовании PPP через модемные соединения. Например, предположим, что вам потребовалось узнать, какое именно приглашение отображает система, до которой вы дозваниваетесь. Некоторые провайдеры выдают приглашение ssword, другие password; если ppp скрипт не обрабатывает такие приглашения, попытка входа завершится неудачно. Наиболее общий способ отладки соединений ppp это подключение вручную. Ниже дана пошаговая информация по подключению вручную.

21.4.1. Проверьте файлы устройств


Если вы пересобирали ядро, проверьте устройство sio. Если вы не перенастраивали ядро, нет причин для беспокойства. Просто проверьте вывод dmesg для модемного устройства следующей командой:

#dmesg | grep sio

Вы должны получить информацию о устройствах sio. Это COM порты, которые нам необходимы. Если ваш модем работает как стандартный последовательный порт, вы увидите его на sio1, или COM2. Если это так, вам не требуется пересобирать ядро, необходимо лишь создать последовательное устройство. Вы можете сделать это, зайдя в /dev и запустив скрипт MAKEDEV. Создайте последовательные устройства:

# sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3

Если модем находится на sio1, или COM2 в DOS, модемным устройством будет /dev/cuaa1.

21.4.2. Подключение вручную


Подключение к интернет с контролированием ppp вручную это быстрый, легкий и действенный способ отладки соединения или получения информации о обслуживании провайдером клиентского соединения ppp. Запустите PPP из командной строки. В примерах в качестве имени хоста мы будем использовать example. Запустите ppp, введя команду ppp:

# ppp

Теперь программа ppp запущена.

ppp ON example> set device /dev/cuaa1

Мы указали модемное устройство, в данном случае cuaa1.

ppp ON example> set speed 115200

Мы установили скорость подключения к модему, в данном случае 115,200 кбит/с.

ppp ON example> enable dns

Сообщает ppp настроить разрешение имен, добавив строки в /etc/resolv.conf. Если ppp не может определить имя хоста, его можно настроить позже вручную.

ppp ON example> term

Переключение в “терминальный” режим для контроля модема вручную.

deflink: Entering terminal mode on /dev/cuaa1

type '~h' for help

at

OK

atdt123456789

Использование команды at для инициализации модема, а затем atdt и номера провайдера для начала дозвона.

CONNECT

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

ISP Login:myusername

Здесь вам предлагается ввести имя пользователя в приглашение, выводимое сервером провайдера.

ISP Pass:mypassword

Здесь предлагается ввести пароль, предоставленный провайдером. Как и при входе в FreeBSD, пароль не отображается.

Shell or PPP:ppp

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

Ppp ON example>

Обратите внимание, что в этом примере первая буква p появилась в верхнем регистре. Это означает, что мы успешно подключились к провайдеру.

PPp ON example>

Мы успешно аутентифицировались у провайдера и ожидаем присвоения IP адреса.

PPP ON example>

Мы завершили согласование IP адресов, соединение успешно установлено.

PPP ON example>add default HISADDR

Это маршрут по умолчанию, его необходимо настроить, чтобы сделать возможной связь с внешним миром, поскольку на этот момент установлена связь только с удаленной стороной. Если маршрут не устанавливается из-за уже существующего маршрута, добавьте символ ! перед add. Альтернативно вы можете сделать настройку перед установкой соединения.

Если все прошло удачно, на данный момент должно работать соединение с интернет, которое можно поместить в фоновый режим клавишами CTRL+z. Переход строки PPP в приглашении в нижний регистр (ppp) означает, что соединение было разорвано. Таким образом, символы P в верхнем регистре означают наличие соединения, а в нижнем — потерю соединения.
21.4.2.1. Отладка

Если у вас выделенная линия и нет необходимости устанавливать соединение, выключите контроль передачи данных CTS/RTS командой set ctsrts off. Это обычно необходимо при подключении к поддерживающим PPP терминальным серверам, когда PPP прерывается при попытке записать данные в ваше соединение, и ожидает сигнала CTS, или Clear To Send, который не появляется. Если вы используете этот параметр, используйте также параметр set accmap, который может быть необходим для устранения зависимости от оборудования путем пропускания определенных символов через соединение, обычно XON/XOFF. Обратитесь к странице справочника ppp(8) за более подробной информацией по этому параметру и его использованию.

Если у вас старый модем, может потребоваться использование set parity even. Проверка четности по умолчанию отключена, но она используется для для устранения ошибок (с серьезным увеличением объема трафика) на старых модемах и у некоторых провайдеров.

PPP может не вернуться в командный режим, что обычно вызвано ошибкой согласования, когда провайдер ждет от вас начала процесса согласования. В этот момент использование команды ~p заставит ppp начать отправку настроечной информации.

Если вы не получаете приглашения на вход, скорее всего вам требуется использование аутентификации PAP или CHAP вместо UNIX стиля как в примерах выше. Для использования PAP или CHAP просто добавьте следующие параметры PPP перед переходом в терминальный режим:

ppp ON example> set authname myusername

Необходимо заменить myusername на имя пользователя, выданное провайдером.

ppp ON example> set authkey mypassword

Где mypassword должен быть заменен на пароль, выданный провайдером.

Если вы подключаетесь, не можете определить ни одно доменное имя, попробуйте использовать ping(8) с каким-либо IP адресом и просмотрите выводимую информацию. Если 100 процентов (100%) пакетов теряются, скорее всего не назначен маршрут по умолчанию. Дважды проверьте, что параметр add default HISADDR установлен во время соединения. Если вы можете подключиться к удаленному IP адресу, возможно, что адрес сервера имен не был добавлен в /etc/resolv.conf. Этот файл должен выглядеть примерно так:

domain example.com

nameserver x.x.x.x

nameserver y.y.y.y

Где x.x.x.x и y.y.y.y должны быть заменены на IP адреса DNS серверов провайдера. Эта информация может предоставляться провайдером, вы можете выяснить это в службе поддержки.

Вы можете также настроить syslog(3) для протоколирования PPP соединения. Просто добавьте:

!ppp

*.* /var/log/ppp.log

в файл /etc/syslog.conf. В большинстве случаев эти строки уже присутствуют.

21.5. Использование PPP через Ethernet (PPPoE)


Предоставил (с reebsd/how-tos/how-to-freebsd-pppoe.phpl) Jim Mock.

Этот раздел описывает настройку PPP через Ethernet (PPP over Ethernet, PPPoE).

21.5.1. Настройка ядра


Для PPPoE более не требуется настройка ядра. Если необходимая поддержка netgraph не встроена в ядро, она будет динамически загружена ppp.

21.5.2. Настройка ppp.conf


Вот пример работающего ppp.conf:

default:

set log Phase tun command # you can add more detailed logging if you wish

set ifaddr 10.0.0.1/0 10.0.0.2/0


name_of_service_provider:

set device PPPoE:xl1 # replace xl1 with your Ethernet device

set authname YOURLOGINNAME

set authkey YOURPASSWORD

set dial

set login

add default HISADDR

21.5.3. Запуск ppp


Под пользователем root вы можете запустить:

# ppp -ddial name_of_service_provider

21.5.4. Запуск ppp при загрузке


Добавьте к /etc/rc.conf следующее:

ppp_enable="YES"

ppp_mode="ddial"

ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO

ppp_profile="name_of_service_provider"

21.5.5. Использование тега сервиса PPPoE


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

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

В крайнем случае, вы можете попробовать метод, предложенный в программе Roaring Penguin PPPoE (ngpenguin.com/pppoe/), которая находится в коллекции портов. Учтите, что этот метод может сделать ваш модем неработоспособным, так что дважды подумайте перед тем, как воспользоваться им. Просто установите программу, поставляемую с модемом вашим провайдером. Затем, войдите в меню System программы. Имя вашего профиля должно находиться здесь. Обычно это ISP.

Имя профиля (тег сервиса) будет использоваться в записи настройки PPPoE в файле ppp.conf (часть команды set device, относящаяся к провайдеру). Обратитесь к странице справочника ppp(8) за более подробной информацией. Эта команда должна выглядеть примерно так:

set device PPPoE:xl1:ISP

Не забудьте изменить xl1 на имя устройства вашей Ethernet карты.

Не забудьте изменить ISP на профиль, определенный вами ранее.

Дополнительная информация:

• Cheaper Broadband with FreeBSD on DSL (ldura.com/doc/freebsd/pppoe/), опубликовал Renaud Waldura.

• Nutzung von T-DSL und T-Online mit FreeBSD (de/home/nathan/FreeBSD/tdsl-freebsd.phpl) by Udo Erdelhoff (на немецком).

21.5.6. PPPoE c 3Com® HomeConnect® ADSL Modem Dual Link


Этот модем не поддерживает RFC 2516 (org/rfcs/rfc2516.phpl) (Метод соединения PPP через Ethernet (PPPoE), написанный L. Mamakos, K. Lidl, J. Evarts, D. Carrel, D. Simone, и R. Wheeler). Вместо этого, для фреймов Ethernet используются различные коды типов пакетов. Сообщите 3Com (com/) если считаете, что они должны соблюдать спецификации PPPoE.

Для включения поддержки этого нестандартного устройства, в FreeBSD необходимо установить переменную sysctl. Это может быть сделано автоматически, поместите в /etc/sysctl.conf следующую переменную:

net.graph.nonstandard_pppoe=1

или, для непосредственного включения, выполните команду sysctl net.graph.nonstandard_pppoe=1.

К сожалению, поскольку эта настройка влияет на всю систему, невозможно одновременно взаимодействовать с нормальным PPPoE клиентом или сервером и 3Com HomeConnect® ADSL Modem.

21.6. Использование PPP через ATM (PPPoA)


Далее описано как настроить PPP через ATM (PPP over ATM, PPPoA). PPPoA популярен у европейских провайдеров DSL.

21.6.1. Использование PPPoA с Alcatel SpeedTouch™ USB


Поддержка PPPoA для этого устройства в FreeBSD поставляется в виде порта, поскольку встроенное программное обеспечение поставляется под лицензионным соглашением Alcatel (touchdsl.com/disclaimer_lx.php) и не может свободно распространяться с основной системой FreeBSD.

Для установки этой программы, просто используйте коллекцию портов. Установите порт net/pppoa и следуйте инструкциям.

Как и многие устройства USB, Alcatel SpeedTouch™ USB должен загрузить встроенное программное обеспечение с компьютера. Возможна автоматизация этого процесса в FreeBSD, чтобы эта передача происходила при подключении устройства к порту USB. Для включения этой автоматической передачи необходимо добавить в /etc/usbd.conf нижеприведенную информацию. Этот файл необходимо отредактировать под пользователем root.

device "Alcatel SpeedTouch USB"

devname "ugen[0-9]+"

vendor 0x06b9

product 0x4061

attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"

Для включения даемона USB, usbd, поместите в /etc/rc.conf следующую строку:

usbd_enable="YES"

Возможна также настройка ppp для дозвона при запуске. Для этого добавьте в /etc/rc.conf нижеприведенные строки. Опять же, для этого вам необходимо войти под пользователем root.

ppp_enable="YES"

ppp_mode="ddial"

ppp_profile="adsl"

Необходимо также использовать пример файла ppp.conf, поставляемый с портом net/pppoa.

21.6.2. Использование mpd


Вы можете использовать mpd для подключения к различным сервисам, в частности к сервисам PPTP. Вы можете найти mpd в коллекции портов, net/mpd. Многие ADSL модемы требуют, чтобы PPTP туннель был создан между модемом и компьютером, один из таких модемов это Alcatel SpeedTouch Home.

Сначала установите порт, затем настройте mpd под собственные нужды и настройки провайдера. Порт помещает набор примеров настройки в каталог PREFIX/etc/mpd/. PREFIX означает каталог, в который устанавливаются порты, по умолчанию это /usr/local/. Полное руководство по настройке mpd доступно в HTML формате после установки порта. Оно находится в PREFIX/share/doc/mpd/. Ниже находится пример настройки mpd для соединения с ADSL сервисом. Настройка разделена на два файла, первый это mpd.conf:

default:

load adsl


adsl:

new -i ng0 adsl adsl

set bundle authname username

set bundle password password

set bundle disable multilink


set link no pap acfcomp protocomp

set link disable chap

set link accept chap

set link keep-alive 30 10


set ipcp no vjcomp

set ipcp ranges 0.0.0.0/0 0.0.0.0/0


set iface route default

set iface disable on-demand

set iface enable proxy-arp

set iface idle 0


open

 Имя пользователя, используемое для аутентификации у провайдера.

 Пароль, используемый для аутентификации у провайдера.

Файл mpd.links содержит информацию о соединении или соединениях, которые вы планируете установить. Пример mpd.links, соответствующий приведенному выше примеру:

adsl:

set link type pptp

set pptp mode active

set pptp enable originate outcall

set pptp self 10.0.0.1

set pptp peer 10.0.0.138

 IP адрес компьютера FreeBSD, с которого вы будете использовать mpd.

 IP адрес модема ADSL. Для Alcatel SpeedTouch Home этот адрес по умолчанию 10.0.0.138.

Инициализация соединения возможно простым выполнением следующей команды под root:

# mpd -b adsl

Вы можете просмотреть статус соединения с помощью следующей команды:

% ifconfig ng0

ng0: flags=88d1 mtu 1500

inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff

Использование mpd это рекомендуемый способ подключения к сервису ADSL из FreeBSD.

21.6.3. Использование pptpclient


Возможно также использование FreeBSD для подключения к сервисам PPPoA с помощью net/pptpclient.

Для подключения к сервису DSL с использованием net/pptpclient, установите порт или пакет и отредактируйте /etc/ppp/ppp.conf. Вам потребуется работать под root. Пример настройки ppp.conf дан ниже. За дальнейшей информацией по параметрам ppp.conf обратитесь к странице справочника ppp, ppp(8).

adsl:

set log phase chat lcp ipcp ccp tun command

set timeout 0

enable dns

set authname username

set authkey password

set ifaddr 0 0

add default HISADDR

 Имя пользователя вашей учетной записи у провайдера DSL.

 Пароль для вашей учетной записи.

Внимание: Поскольку вам необходимо поместить пароль в незашифрованном виде в файл ppp.conf, убедитесь что никто другой не сможет прочесть содержимое этого файла. Следующая последовательность команд сделает этот файл доступным для чтения только пользователю root. Обратитесь к страницам справочника chmod(1) и chown(8) за дальнейшей информацией.

# chown root:wheel /etc/ppp/ppp.conf

# chmod 600 /etc/ppp/ppp.conf

Следующая команда откроет туннель для PPP сессии к вашему DSL маршрутизатору. Модемы Ethernet DSL поставляются с настроенным IP адресом локальной сети, к которому вы подключаетесь. У Alcatel SpeedTouch Home этот адрес 10.0.0.138. В документации на ваш маршрутизатор должно быть указано, какой адрес используется. Для открытия туннеля и начала PPP сессии выполните:

# pptp address adsl

Подсказка: Чтобы вернуться в приглашение командной строки после выполнения этой команды, добавьте символ “&” в конец строки.

Устройство виртуального туннеля tun будет создано для взаимодействия между процессами pptp и ppp. Как только вы вернетесь в приглашение, или процесс pptp выполнит соединение, вы можете проверить туннель примерно такой командой:

% ifconfig tun0

tun0: flags=8051 mtu 1500

inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00

Opened by PID 918

Если вы не сможете соединиться, проверьте настройку маршрутизатора, которая обычно доступна через telnet или через веб браузер. Если вы все еще не можете подключиться, проверьте вывод команды pptp и содержимое лог файла ppp, /var/log/ppp.log.

21.7. Использование SLIP


Первоначально предоставил Satoshi Asami. Дополнительный материал предоставили Guy Helmer, Piero Serini.

21.7.1. Настройка SLIP клиента


Ниже дан один из способов настройки FreeBSD для подключения к SLIP сети со статическим адресом. Для динамического подключения (адрес изменяется при каждом дозвоне) возможно потребуется более сложная настройка.

Сначала определите, к какому последовательному порту подключен модем. Многие создают символическую ссылку, такую как /dev/modem, на настоящий файл устройства, /dev/cuaaN. Это позволяет абстрагироваться от имени файла устройства, например если вы переносите модем на другой порт. Довольно сложно править множество файлов в /etc и .kermrc во всей системе!

Замечание: /dev/cuaa0 это COM1, cuaa1 это COM2, и т.д.

Убедитесь, что в вашем файле настройки ядра присутствует строка:

pseudo-device sl 1

В FreeBSD 5.X, используйте вместо этой строки следующую:

device sl

Эта строка включена в ядро GENERIC, так что если вы ее не удаляли, проблем быть не должно.
21.7.1.1. То, что необходимо сделать только один раз

1. Добавьте ваш компьютер, шлюз и сервера имен в файл /etc/hosts. Вот пример такого файла:

127.0.0.1 localhost loghost

136.152.64.181 water.CS.Example.EDU water.CS water

136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway

128.32.136.9 ns1.Example.EDU ns1

128.32.136.12 ns2.Example.EDU ns2

2. Убедитесь, что в файле /etc/host.conf hosts находится перед bind (для FreeBSD версий до 5.0). Начиная с FreeBSD 5.0, система использует файл /etc/nsswitch.conf, убедитесь, что параметр files находится перед dns в строке hosts этого файла. Без этого параметра могут происходить странные вещи.

3. Отредактируйте файл /etc/rc.conf.

1. Установите имя хоста, настроив переменную hostname:

hostname="myname.my.domain"

Здесь необходимо использовать полное доменное имя вашего компьютера в интернет.

2. Добавьте sl0 к списку сетевых интерфейсов, изменив переменную:

network_interfaces="lo0"

на:

network_interfaces="lo0 sl0"

3. Измените параметры sl0, добавив строку:

ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"

4. Назначьте маршрутизатор по умолчанию, изменив строку:

defaultrouter="NO"

на:

defaultrouter="slip-gateway"

4. Создайте файл /etc/resolv.conf, содержащий:

domain CS.Example.EDU

nameserver 128.32.136.9

nameserver 128.32.136.12

Как вы видите, здесь указаны адреса серверов имен. Конечно, реальные имена доменов и адреса для вас будут другими.

5. Перегрузите компьютер и убедитесь, что его имя хоста настроено правильно.
21.7.1.2. Создание SLIP соединения

1. Дозвонитесь на удаленный сервер, введите slip в приглашение, имя своего компьютера и пароль. Все, что требуется ввести в вашем случае. Если вы используете kermit, попробуйте такой скрипт:

# kermit setup

set modem hayes

set line /dev/modem

set speed 115200

set parity none

set flow rts/cts

set terminal bytesize 8

set file type binary

# The next macro will dial up and login

define slip dial 643-9600, input 10 =>, if failure stop, -

output slip\x0d, input 10 Username:, if failure stop, -

output silvia\x0d, input 10 Password:, if failure stop, -

output ***\x0d, echo \x0aCONNECTED\x0a

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

Замечание: Хранение пароля в любом месте файловой системы в незашифрованном виде это обычно плохая идея. Вы делаете это на свой риск.

2. Выйдите из kermit (вы можете приостановить его, нажав Ctrl-z) и введите под root:

# slattach -h -c -s 115200 /dev/modem

Если вы сможете выполнить ping для хостов по другую сторону маршрутизатора, вы подключились! Если это не работает, попробуйте параметр slattach -a вместо -c.
21.7.1.3. Как прервать соединение:

Сделайте следующее:

# kill -INT `cat /var/run/slattach.modem.pid`

для остановки slattach. Помните, что вы должны работать под root для выполнения этой команды. Затем вернитесь в kermit (запустив fg, если он приостановлен) и выйдите из него (q).

Страница справочника slattach сообщает, что для отключения интерфейса необходимо использовать ifconfig sl0 down, но это похоже не играет никакой роли. (ifconfig sl0 сообщает о том же.)

Иногда модем может не сбросить соединение (это бывает довольно часто). В этом случае просто запустите kermit и выйдите из него еще раз. При второй попытке соединение обычно разрывается.
21.7.1.4. Решение проблем

Вот наиболее часто встречающиеся ситуации:

• Не используются параметры slattach -c или -a (это может быть не фатально, но иногда вызывает проблемы.)

• Используется s10 вместо sl0 (с некоторыми шрифтами сложно увидеть разницу).

• Попробуйте использовать ifconfig sl0 для просмотра статуса интерфейса. Например, вы можете получить такую информацию:

# ifconfig sl0

sl0: flags=10


inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00

• Если вы получите сообщение no route to host от команды ping, возможно это проблема с таблицей маршрутизации. Используйте команду netstat -r для отображения существующих маршрутов:

# netstat -r

Routing tables

Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:


(root node)

(root node)


Route Tree for Protocol Family inet:

(root node) =>

default inr-3.Example.EDU UG 8 224515 sl0 - -

localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438

inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -

water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438

(root node)

Предыдущий пример получен на относительно загруженной системе. Числа в вашей системе будут сильно зависеть от загрузки сети.

21.7.2. Настройка SLIP сервера


Этот документ предоставляет решение для настройки SLIP сервера в системе FreeBSD, что обычно означает настройку системы для автоматического запуска соединений при удаленном входе SLIP клиентов.
21.7.2.1. Предварительные требования

Информация в этом разделе чисто техническая, поэтому требуются некоторые предварительные знания. Предполагается, что вы знакомы с сетевым протоколом TCP/IP, и в частности, с адресацией сетей и хостов, сетевыми масками, делением на подсети, маршрутизацией и протоколами маршрутизации, такими как RIP. Настройка SLIP сервисов на сервере удаленного доступа требует знания этих концепций, и если вы не знакомы с ними, прочтите или книгу TCP/IP Network Administration от Craig Hunt, опубликованную O'Reilly & Associates, Inc. (ISBN Number 0-937175-82-X), или книги Douglas Comer по протоколу TCP/IP.

В дальнейшем предполагается, что вы уже настроили ваш модем (модемы) и настроили соответствующие системные файлы для разрешения входа через них. Если вы еще не подготовили систему соответствующим образом, обратитесь к руководству по настройке сервисов удаленного входа; просмотрите список руководств на SD.org/ru/docs.phpl. Вы можете также обратиться к странице справочника sio(4) за информацией о драйвере последовательного порта и к страницам gettytab(5), getty(8) и init(8) за информацией по настройке системы для удаленного входа в систему через модемы, и возможно stty(1) за информацией о настройке параметров последовательных портов (таких как clocal для подключаемых непосредственно последовательных интерфейсов).
21.7.2.2. Краткий обзор

В типичной конфигурации FreeBSD работает в качестве SLIP сервера так: пользователь SLIP дозванивается на FreeBSD SLIP сервер и входит в систему со специальным SLIP логином, использующим /usr/sbin/sliplogin в качестве оболочки. Программа sliplogin просматривает файл /etc/sliphome/slip.hosts на предмет строки, соответствующей специальному пользователю, и если находит совпадение, подключает последовательную линию к доступному SLIP интерфейсу, а затем запускает shell скрипт /etc/sliphome/slip.login для настройки SLIP интерфейса.
21.7.2.2.1. Пример входа на SLIP сервер

Например, идентификатор пользователя на SLIP сервере Shelmerg. Соответствующая запись в /etc/master.passwd будет выглядеть примерно так:

Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin

Когда Shelmerg входит в систему, sliplogin ищет строку в /etc/sliphome/slip.hosts, в которой находится соответствующий идентификатор пользователя; например, строка может быть такой:

Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp

После обнаружения этой строки sliplogin подключает последовательную линию к следующему доступному SLIP интерфейсу, а затем выполняет /etc/sliphome/slip.login примерно так:

/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp

Если все проходит нормально, /etc/sliphome/slip.login вызовет ifconfig для SLIP интерфейса, к которому подключилась программа sliplogin (slip интерфейс 0 в примере выше, первый параметр в списке, задаваемом slip.login) для установки локального IP адреса ((dc-slip), удаленного IP адреса (sl-helmer), сетевой маски для SLIP интерфейса (0xfffffc00), и любых дополнительных флагов (autocomp). Если что-то идет не так, sliplogin обычно протоколирует соответствующие сообщения в через уровень daemon syslog; эти сообщения как правило попадают в /var/log/messages (обратитесь к страницам справочника syslogd(8) и syslog.conf(5), а также проверьте файл /etc/syslog.conf, чтобы выяснить, что протоколирует syslogd и куда помещается информация).

Достаточно примеров — давайте начнем настройку системы.
21.7.2.3. Настройка ядра

Стандартное ядро FreeBSD обычно поставляется с двумя SLIP интерфейсами ((sl0 и sl1); вы можете использовать команду netstat -i, чтобы выяснить, определены ли эти интерфейсы в вашем ядре.

Пример вывода netstat -i:

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll

ed0 1500 0.0.c0.2c.5f.4a 291311 0 174209 0 133

ed0 1500 138.247.224 ivory 291311 0 174209 0 133

lo0 65535 79 0 79 0 0

lo0 65535 loop localhost 79 0 79 0 0

sl0* 296 0 0 0 0 0

sl1* 296 0 0 0 0 0

Наличие в выводе netstat -i интерфейсов sl0 и sl1 означает, что SLIP интерфейсы встроены в ядро (символ * показывает неактивность интерфейсов).

Ядро FreeBSD по умолчанию не пересылает пакеты между интерфейсами (компьютер FreeBSD не работает как маршрутизатор), вследствие требований RFC (см. RFCs 1009 [Requirements for Internet Gateways], 1122 [Requirements for Internet Hosts — Communication Layers], и возможно 1127 [A Perspective on the Host Requirements RFCs]). Если вы хотите, чтобы FreeBSD SLIP работал в качестве маршрутизатора, отредактируйте файл /etc/rc.conf и присвойте переменной gateway_enable значение YES.

Для вступления изменений в силу потребуется перезагрузка.

В файле настройки стандартного ядра (/sys/i386/conf/GENERIC) находится строка:

pseudo-device sl 2

Она определяет число доступных устройств SLIP в ядре; Число в конце строки определяет максимально возможное количество одновременных SLIP соединений.

Обратитесь к Гл. 8 за информацией по настройке ядра FreeBSD.
21.7.2.4. Настройка sliplogin

Как упоминалось ранее, в каталоге /etc/sliphome находятся три файла, являющиеся частью настройки для /usr/sbin/sliplogin (для sliplogin существует страница справочника, sliplogin(8)): slip.hosts, определяющий список пользователей SLIP и связанные с ними IP адреса; slip.login, который обычно всего лишь настраивает SLIP интерфейс; slip.logout, который восстанавливает состояние системы до запуска slip.login после завершения последовательного соединения.
21.7.2.4.1. Настройка slip.hosts

/etc/sliphome/slip.hosts содержит строки, в которых находится как минимум четыре параметра, разделенных пробелами:

• ID пользователя SLIP

• Локальный адрес (локальный для SLIP сервера) SLIP соединения

• Удаленный адрес SLIP соединения

• Сетевая маска

Локальные и удаленные адреса могут быть именами хостов (разрешаемыми в IP адреса через файл /etc/hosts или через службу доменных имен, в зависимости от настроек в файле /etc/nsswitch.conf для FreeBSD 5.X, или /etc/host.conf для FreeBSD 4.X), а сетевая маска может быть именем, разрешаемым через файл /etc/networks. В системе, используемой в качестве примера, файл /etc/sliphome/slip.hosts выглядит так:

#

# login local-addr remote-addr mask opt1 opt2

# (normal,compress,noicmp)

#

Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp

В конце строки находятся один или более параметров.

• normal — нет сжатия заголовков

• compress — сжимать заголовки

• autocomp — сжимать заголовки, если удаленная сторона это позволяет

• noicmp — запретить ICMP пакеты (любые “ping” пакеты будут отброшены и не станут помехой для другого трафика)

Выбор локального и удаленного адреса для SLIP соединений зависит от того, используете ли вы выделенную TCP/IP сеть, или используете на SLIP сервере “ARP прокси”. (это не “настоящий” ARP прокси, но данная терминология используется в этом разделе). Если вы не уверены, какой метод выбрать, или как присвоить IP адреса, обратитесь к книгам по TCP/IP, упомянутым выше (Разд. 21.7.2.1).

Если вы собираетесь использовать отдельную подсеть для SLIP клиентов, потребуется выделить адреса за пределом адресов вашей сети и присвоить каждому SLIP клиенту IP адрес из данной подсети. Затем вам возможно потребуется настроить статический маршрут в используемую для SLIP подсеть через SLIP сервер на ближайшем IP маршрутизаторе.

Иначе, если вы будете использовать метод “proxy ARP”, потребуется присвоить SLIP клиентам IP адреса, не входящие в Ethernet подсеть сервера SLIP, а также настроить скрипты /etc/sliphome/slip.login и /etc/sliphome/slip.logout, чтобы использовать arp(8) для управления записями ARP прокси в таблице ARP сервера SLIP.
21.7.2.4.2. Настройка slip.login

Типичный файл /etc/sliphome/slip.login выглядит примерно так:

#!/bin/sh -

#

# @(#)slip.login 5.1 (Berkeley) 7/1/90


#

# generic login file for a slip line. sliplogin invokes this with

# the parameters:

# 1 2 3 4 5 6 7-n

# slipunit ttyspeed loginname local-addr remote-addr mask opt-args

#

/sbin/ifconfig sl$1 inet $4 $5 netmask $6

Этот файл slip.login всего лишь запускает ifconfig для соответствующего SLIP интерфейса с заданными локальным и удаленным адресом и сетевой маской.

Если вы решили использовать метод “ARP прокси” (вместо использования отдельной подсети для SLIP клиентов), ваш файл /etc/sliphome/slip.login должен выглядеть примерно так:

#!/bin/sh -

#

# @(#)slip.login 5.1 (Berkeley) 7/1/90


#

# generic login file for a slip line. sliplogin invokes this with

# the parameters:

# 1 2 3 4 5 6 7-n

# slipunit ttyspeed loginname local-addr remote-addr mask opt-args

#

/sbin/ifconfig sl$1 inet $4 $5 netmask $6

# Answer ARP requests for the SLIP client with our Ethernet addr

/usr/sbin/arp -s $5 00:11:22:33:44:55 pub

Дополнительная строка в этом slip.login, arp -s $5 00:11:22:33:44:55 pub, создает ARP запись в ARP таблице SLIP сервера. При соединении другого узла в Ethernet с IP адресом SLIP клиента, SLIP сервер выдает ответ с собственным Ethernet MAC адресом.

При использовании примера выше убедитесь, что заменили Ethernet MAC адрес (00:11:22:33:44:55) на MAC адрес Ethernet карты вашей системы, или ваш “ARP прокси” точно не будет работать! Вы можете определить Ethernet MAC адрес SLIP сервера, просмотрев вывод команды netstat -i выше; информация об адресе находится второй строке:

ed0 1500 0.2.c1.28.5f.4a 191923 0 129457 0 116

Это означает, что в данной системе Ethernet MAC адрес 00:02:c1:28:5f:4a — точки в MAC адресе, выдаваемые netstat -i, должны быть заменены на двоеточия, необходимо также добавить нуль в начало каждого односимвольного шестнадцатеричного номера для преобразования этого адреса в форму, пригодную для arp(8); обратитесь к странице справочника arp(8) за полной информацией по использованию.

Замечание: При создании /etc/sliphome/slip.login и /etc/sliphome/slip.logout, должен быть установлен бит “выполнения” (chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout), или sliplogin не сможет их выполнить.
21.7.2.4.3. Настройка slip.logout

/etc/sliphome/slip.logout не является совершенно необходимым (если только вы не реализуете “ARP прокси”), но если вы решили создать его, воспользуйтесь следующим примером:

#!/bin/sh -

#

# slip.logout


#

# logout file for a slip line. sliplogin invokes this with

# the parameters:

# 1 2 3 4 5 6 7-n

# slipunit ttyspeed loginname local-addr remote-addr mask opt-args

#

/sbin/ifconfig sl$1 down

Если вы используете “ARP прокси”, потребуется удаление записи ARP для SLIP клиента через /etc/sliphome/slip.logout:

#!/bin/sh -

#

# @(#)slip.logout


#

# logout file for a slip line. sliplogin invokes this with

# the parameters:

# 1 2 3 4 5 6 7-n

# slipunit ttyspeed loginname local-addr remote-addr mask opt-args

#

/sbin/ifconfig sl$1 down

# Quit answering ARP requests for the SLIP client

/usr/sbin/arp -d $5

Команда arp -d $5 удаляет запись ARP, добавленную slip.login при входе SLIP клиента.

Повторяем: убедитесь, что на файл /etc/sliphome/slip.logout установлен бит выполнения (chmod 755 /etc/sliphome/slip.logout).
21.7.2.5. Соглашения о маршрутизации

Если вы не используете “ARP прокси” метод для маршрутизации пакетов между SLIP клиентами и остальной сетью (и возможно интернет), вам возможно потребуется статический маршрут (маршруты) до ближайшего шлюза (шлюзов) для маршрутизации подсети SLIP клиентов через SLIP сервер.
21.7.2.5.1. Статические маршруты

Добавление статических маршрутов может стать для кого-то проблемой (это даже невозможно, если у вас нет соответствующих прав). Если в вашей организации сеть с несколькими маршрутизаторами, некоторые маршрутизаторы, например Cisco и Proteon, требуют не только настройки статического маршрута в подсеть SLIP, но и указания, о каких статических маршрутах сообщать другим маршрутизаторам, так что для наладки работоспособности статической маршрутизации может потребоваться некоторое исследование и отладка.
21.7.2.5.2. Запуск GateD®

Замечание: GateD® это закрытое программно обеспечение, более недоступное в исходных текстах (дополнительная информация находится на вебсайте GateD (.org/)). Этот раздел существует лишь в целях обратной совместимости для тех, кто все еще использует старую версию.

Альтернатива головной боли со статическими маршрутами это установка GateD на FreeBSD SLIP сервере и настройка его для использования соответствующих протоколов маршрутизации (RIP/OSPF/BGP/EGP) для сообщения другим маршрутизаторам о вашей SLIP подсети. Вам потребуется создать /etc/gated.conf для настройки gated. Ниже дан пример:

#

# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5

# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface

#

#

# tracing options

#

traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ;


rip yes {

interface sl noripout noripin ;

interface ed ripin ripout version 1 ;

traceoptions route ;

} ;


#

# Turn on a bunch of tracing info for the interface to the kernel:

kernel {

traceoptions remnants request routes info interface ;

} ;


#

# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP

#


export proto rip interface ed {

proto direct {

xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections

} ;

} ;


#

# Accept routes from RIP via ed Ethernet interfaces


import proto rip interface ed {

all ;

} ;

В примере выше используется широковещательная рассылка информации о маршрутизации для подсети SLIP xxx.xxx.yy протоколом RIP на сеть Ethernet; если вы используете другой драйвер Ethernet вместо ed, потребуется соответственно изменить запись для ed. В этом примере отладочная информация переправляется в /var/tmp/gated.output; вы можете выключить отладку, если GateD работает. Вам потребуется заменить xxx.xxx.yy в сетевом адресе на вашу подсеть SLIP (убедитесь, что изменение сетевой маски в proto direct работает нормально).

Как только вы установили и настроили GateD, потребуется сообщить стартовым скриптам FreeBSD запускать его вместо routed. Простейший способ сделать это — установить переменные router и router_flags в /etc/rc.conf. Обратитесь к странице справочника GateD за информацией о параметрах командной строки.