![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
IРCP используется для того, чтобы обговорить пару IP-параметров в
конфигурационной связи. Обычно каждый может посылать IPCP-запрос
конфигурации, указывая которая переменная хочет измениться из значений по
умолчанию и к какому значению. После получения удаленный абонент осматривает
каждую опцию, подтверждает или отклоняет ее. pppd дает много возможностей управления,
относительно опций IPCP, которые будут пытаться вести переговоры. Вы можете
все настроить через различные опции командных строк, которые мы обсудим ниже.
Все IP-интерфейсы требуют назначения им IP-адресов. Поэтому устройство PPP
тоже должно иметь IP-адрес. Протокол PPP предоставляет механизм, который
позволяет автоматически присваивать IP-адреса PPP-интерфейсам. Некоторые PPP-серверы, которые обрабатывают множество клиентов,
приписывают адреса динамически: адреса назначены системам только, когда
существует обращение и освобождаются после того, как сеанс связи закончен.
Это позволяет ограничить число требуемых адресов числом линий dialup. В то
время, как ограничение удобно для администраторов PPP dialup-сервера, оно
часто куда менее удобно для пользователей. Мы обсуждали путь, которым имена
преобразуются в адреса, в главе 6. Когда происходит
соединение с таким сервером, вы должны удостовериться, что pppd не
запрашивает какой-либо IP-адрес с него, но когда адрес будет выдан, сервер
попросит вас, чтобы вы использовали именно его. Это означает, что если кто-то
пытается связаться с вашим компьютером, он должен будет знать его текущий
адрес, а обеспечить это не так-то просто. В примере выше, у нас был pppd, связывающейся с
c3po и устанавливающий IP-связь. Никакие
условия не принимались для того, чтобы выбрать частный адрес IP на любом
конце связи. Взамен мы выбрали адрес vlager
как локальный адрес IP и позволили c3po
обеспечить себя собственным. Иногда полезно иметь контроль над тем, какой
адрес используется на одном или другом конце связи. Чтобы просить о частных адресах, вы вызываете pppd
со следующеми опциями:
local_addr и
remote_addr могут быть определены в
dotted quad notation или как имена машин. Это заставит
pppd попытаться использовать первый адрес как собственный адрес IP, а
второй как адрес удаленной машины. Если удаленная машина отклоняет любой из
них в течение IPCP-переговоров, связь IP не будет установлена. Если вы звоните на сервер и ожидаете, что он назначит вам IP-адрес, надо
гарантировать отсутствие неожиданных инициатив со стороны
pppd. Чтобы сделать это, используйте опцию noipdefault
и оставьте поле local_addr пустым.
Опция noipdefault избавит от попытки
pppd использовать адрес IP, связанный с именем машины
как локальный адрес. Если Вы хотите устанавливать только локальный адрес, но удаленный адрес
примете любой, просто не указывайте remote_addr
. Чтобы vlager использовал
IP-адрес 130.83.4.27 вместо своего, укажите
130.83.4.27: в командной строке. Точно так же, чтобы
установить только удаленный адрес, оставьте пустым поле
local_addr. По умолчанию
pppd использует адрес, связанный с вашим именем
машины (hostname). После установки сетевого интерфейса, pppd установит
маршрут только к своему серверу. Если удаленный хост находится в локальной
сети (LAN), вы обязательно захотите соединяться с хостами в ней,
то есть должен быть установлен сетевой маршрут. Мы уже видели, что pppd можно попросить уствновить
заданный по умолчанию маршрут, используя опцию
defaultroute. Эта опция очень полезна, если PPP-сервер, с которым вы
связались, будет действовать как Internet-шлюз. Обратный случай является относительно простым: ваша система действует
как шлюз для единственного хоста. Например, возьмите некоторых служащих в
Virtual Brewery, чья локальная машина называется
oneshot. При соединении с vlager через
PPP, она использует адрес в подсети Brewery. В
vlager мы можем теперь дать pppd опцию
proxyarp, которая установит ARP-запись для
oneshot. Это автоматически сделает
oneshot доступным для всех в Brewery и в
Winery. Однако, вещи далеко не всегда так просты, как иногда кажется, например,
когда Вы соединяете две LAN-сети. Это обычно требует добавления специального
сетевого маршрута, потому что эти сети могут иметь свой маршрут по умолчанию.
Кроме того, если на обоих машинах использование связи PPP задано как маршрут
по умолчанию, получится цикл, где блоки к неизвестным адресатам будут
перебрасываться между машинами до окончания их времени жизни. Как пример, предположим, что Virtual Brewery открывает ветвь в
каком-нибудь другом городе. Подразделение запускает собственную сеть
Ethernet, используя сетевой адрес 172.16.3.0,
который является подсетью 3 сети Brewery класса B. Они хотят соединиться с
Brewery Ethernet по PPP для того, чтобы модифицировать базы данных
заказчиков и т.п. Снова vlager действует как
шлюз, другая машина называется vbourbon
и имеет IP-адрес 172.16.3.1. Такая сеть
показана в приложении A. Когда vbourbon соединится с
vlager, она примет заданный по умолчанию
маршрут к vlager как обычно. На
vlager мы должны установить сетевой маршрут
для подсети 3, который проходит к vbourbon.
Для этого мы используем особенность pppd, которая еще
не обсуждалась: команду ip-up. Это программа,
размещенная в /etc/ppp, которая будет выполнена
после того, как PPP интерфейс будет сконфигурирован. Когда он существует, эта
программа вызывается со следующими параметрами
Следующая таблица описывает все параметры этой программы (в первой колонке
указаны имена параметров, используемые в скрипте):
Используемый сетевой интерфейс,
например ppp0 Имя используемого
последовательного устройства (если используется stdin/stdout, это будет
/dev/tty) Скорость устройства бит в секунду
Локальный адрес IP Удаленный адрес IP В нашем случае, скрипт ip-up может содержать
следующий фрагмент кода:
В подобном режиме /etc/ppp/ip-down используется для
того, чтобы отменить все действия ip-up после того,
как связь PPP была завершена. В нашем скрипте
/etc/ppp/ip-down следует иметь команду route,
которая отменит маршрут, созданный /etc/ppp/ip-up. Однако схема матшрутов еще не полна. Мы установили записи таблицы
маршрутов на оба PPP-хоста, но пока все другие хосты в обеих сетях не знают
ничего относительно связи PPP. Это небольшая проблема, если все хосты в
подразделении имеют свои, заданные по умолчанию маршруты в
vbourbon, и все хосты в Brewery направляются
по умолчанию на vlager. Если это не так, то
ваш единственный выход в использованни демона динамической маршрутизации,
например,gated. После создания сетевого маршрута
на vlager он передаст новый маршрут всем
хостам присоединенной подсети.
Linux Network Administrators Guide
Назад
Глава 8. Протокол
Point-to-Point
Вперед
Опции настройки IP (IPCP)
Выбор IP-адресов
local_addr:remote_addr
Маршрутизация через
PPP-линию
ip-up
Аргумент
Имя
Описание $1
iface
$2
device
$3
speed
$4
local_addr
$5
remote_addr
#!/bin/sh
case $5 in
172.16.3.1) # this is vbourbon
route add -net 172.16.3.0 gw 172.16.3.1;;
...
esac
exit 0
Назад
Глобальное
оглавление
Вперед
Использование скрипта для
автодозвона
Локальное
оглавление
Опции контроля связи
Найди своих коллег! |