У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


той самий метод що і у віддаленої машини. Для прикладу, якщо cowslip використовує CSLIP то ви також повинні його використовувати. Симтомом неспівпадання буде те, що при запуску команди ping на віддалений хост ви не будете отримувати відповіді на пакети. Якщо ж запутити ping з віддаленого хоста до вас, ви зможете повідомлення типу ``Can't build ICMP header'' на вашій консолі. Одним з шляхів поборення цієї проблеми є використання adaptive SLIP.

slattach дозволяє вам використовувати не тільки SLIP, а і інші протоколи, що використовують послідовну лінію, типу PPP чи KISS (один з протоколів що використовується в ham radio). Для більш детального опису дивись сторінки man slattach (8).

Після під'єднання через лінію до SLIP драйвера ви повинні сконфігурувати мережевий інтерфейс. Це робиться за допомогою команд ifconfig та route. Для прикладу з vlager ми під'єднуємся до сервера cowslip. Ви повинні виконати :

# ifconfig sl0 vlager pointopoint cowslip

# route add cowslip

# route add default gw cowslip

Перша команда конфігурує інтерфейс як point-to-point з'єднання з cowslip, а друга та третя команди встановлюють маршрут на cowslip та маршрут по замовчуванню використовуючи cowslip як міст.

Після завершення SLIP з'єднання, ви перш за все повинні знищити усі маршрути на cowslip використовуючи команду route з опцією del, знищити інтерфейс, та послати slatach сингал hangup. Після цього ви повинні розірвати модемне з'єднання за допомогою термінальної програми :

# route del default

# route del cowslip

# ifconfig sl0 up

# kill -HUP 516

8.3 Використання dip

Ви можете захотіти автоматизувати вищезгаданий процес, щоб просто викликати просту програму яка послідовно виконає всі потрібні дії. Для цього і існує . На момент написання цього тексту біжуча версія - dip v3.3.7. Існує багато патчів до данної версії розроблених великою кількістю людей, всі ці напрями будуть об'єднані в майбутніх версіях.

dip включає в себе інтерпретатор простої мови скриптів що вміє працювати з модемом, конвертувати лінію в режим SLIP та конфігурувати інтерфейс. Все це досить примітивно та обмежено, але достатньо для більшості випадків. Нова реалізація dip може підтримувати більш універсальну мову.

Для того щоб мати можливість конфігурувати SLIP інтерфейс, dip повинен мати привілегії root. Але в цьому випадку всі користувачі які будуть використовувати dip для через SLIP будуть мати права root. Це досить небезпечно - вони зможуть конфігурувати інтерфейси та маршрутизацію, що може негативно вплинути на маршрутизацію у вашій мережі. Гірше того, це дасть можливість їм підключатись до будь-якого SLIP сервера і робити небезпечні атаки на вашу мережу. Таким чином, якщо ви хочете дозволити вашим користувачам fire up з'єднання через SLIP, напишіть невеличку програму-бар'єр для кожного SLIP-сервера що планується використовувати, і запускайте цю програму з dip при встановленні зв'язку. Тоді ця програма спокійно може запускатись з правами .

8.3.1 Приклад скрипта

Приклад скрипта зображено в розділі 8.3.1. Він може бути використаний для з'єднання з cowslip використовуючи dip з ім'ям скрипта як аргументом :

# Sample dip script for dialing up cowslip

# Set local and remote name and address

get $local vlager

get $remote cowslip

port cua3 # choose a serial port

speed 38400 # set speed to max

modem HAYES # set modem type

reset # reset modem and tty

flush # flush out modem response

# Prepare for dialing.

send ATQ0V1E1X1\r

wait OK 2

if $errlvl != 0 goto error

dial 41988

if $errlvl != 0 goto error

wait CONNECT 60

if $errlvl != 0 goto error

# Okay, we're connected now

sleep 3

send \r\n\r\n

wait ogin: 10

if $errlvl != 0 goto error

send Svlager\n

wait ssword: 5

if $errlvl != 0 goto error

send hey-jude\n

wait running 30

if $errlvl != 0 goto error

# We have logged in, and the remote side is firing up SLIP.

print Connected to $remote with address $rmtip

default # Make this link our default route

mode SLIP # We go to SLIP mode, too

# fall through in case of error

error:

print SLIP to $remote failed.

Іллюстрація 14. Простий приклад скрипта для dip

# Dip cowslip.dip

DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93)

Written Fred N. van Kempen, MicroWalt Corporation.

connected o cowslip.moo.com with addr 193.174.7.129

#

Після з'єднання з cowslip і включення SLIP, dip від'єднується від терміналу і переходить в background режим. Тепер ви можете використовувати звичані мережеві сервіси. Для розірвання з'єднання запустіть dip з ключем -k. В цьому випадку буде послано hangup сигнал dip процесу використовуючі файл з індифікацйним номером /etc/dip.pid.

# dip -k

В мові скриптів dip-у, ключові слова з знаком доллару попереду описують змінні. dip має наперед означений список змінних що будуть перечислені нижче. Для прикладу : $remote та $local описують ім'я віддаленої та локальної машини для SLIP з'єднання.

Перші дві команди в скрипті наведеному вище це команди get, які встановлюють змінні для dip. Це є імена локальної та віддаленої машини - vlager та cowslip відповідно.

Наступні п'ять команд встановлюють лінію та модем. Команда reset посалає на модем ініціалізаційну стрічку; для Hayes-сумісних модемів це команда ATZ. Наступна стрічка очищує буфер відповідей модема так, щоб вхідний діалог в наступних кількох стрічках працював як слід. Цей діалог є послідовним: набір номера 41988 (телефонний номер cowslip), і реєстрація в системі як користувач Svlager з паролем hey-jude. Команда wait очікує від модема стрічку, данну як перший аргумент; другий аргумент описує час на протязі якого буде очікуватись стрічка. Команда if використовується для перевірки чи не було помилок під час


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28