Linux mini-HOWTO

         

ISDN


Я написал эту главу потому, что ваш ящик не будет работать без PPP-линии к провайдеру. Мне пришлось немного помучаться перед тем, как ISDN начал работать. Дистрибутив SuSE включает себя настройки ISDN, но я бы хотел, чтобы все было еще проще. Все, что здесь написано, было взято из скриптов Bernhard Hailer. (Огромное спасибо)

Файл rc.config загружает необходимые модули во время установки:

#!/bin/bash # Это адаптированный скрипт, написанный Bernhard Hailer

LOCAL_NUMBER="91311234" # ваш телефон 091311234 REMOTE_NUMBER="0911123456" # телефон провайдера LOCAL_IP="192.168.0.99" # у меня динамический IP REMOTE_IP="195.112.123.11" # адрес шлюза провайдера DEVICE="ippp0"

SYSPATH="/sbin" ISDNCTRL="$SYSPATH/isdnctrl"

case "$1" in start) # активирует isdn insmod /lib/modules/2.0.33/net/slhc.o insmod /lib/modules/2.0.33/misc/isdn.o sleep 1 # загружает модуль hisax insmod /lib/modules/2.0.33/misc/hisax.o id=Tel0 type=5 protocol=2 irq=10 io=0x300 echo "Запуск isdn4linux" # global $ISDNCTRL verbose 0

$ISDNCTRL addif $DEVICE # создает новый интерфейс $ISDNCTRL addphone $DEVICE in $REMOTE_NUMBER $ISDNCTRL addphone $DEVICE out $REMOTE_NUMBER $ISDNCTRL eaz $DEVICE $LOCAL_NUMBER $ISDNCTRL l2_prot $DEVICE hdlc $ISDNCTRL l3_prot $DEVICE trans $ISDNCTRL encap $DEVICE syncppp $ISDNCTRL huptimeout $DEVICE 300 $ISDNCTRL chargehup $DEVICE off $ISDNCTRL secure $DEVICE on

$SYSPATH/ifconfig $DEVICE $LOCAL_IP pointopoint $REMOTE_IP metric 1 $SYSPATH/route add default $DEVICE $SYSPATH/ipppd /dev/ippp0 file /etc/ppp/options.ipppd & $SYSPATH/route del default

;; stop) #деактивирует isdn rmmod hisax.o sleep 1 rmmod isdn.o rmmod slhc.o echo "Отключение isdn4linux" $ISDNCTRL delif ippp0 ;; *) echo "Использование: $0 (start|stop)" exit 1 ;; esac

Я использую следующий скрипт для установки коммутируемого соединения isdn on|off

#!/bin/bash # Это основано на скрипте написанном Bernhard Hailer


IP_ADDRESS="195.112.123.11"

case "$1" in on)

echo "Вызов ippp0" /sbin/isdnctrl dial ippp0 # команда sleep дает время на установление РPP-соединения echo "Пауза 8s для установки соединения PPP" sleep 8s /sbin/route add default ippp0 echo "линия открыта - проверка...."

# проверка установления PPP-соединения: set `ping -qc3 -i1 $IP_ADDRESS 2>/dev/null | grep transmitted` if [ $4 -gt 0 ]; then echo "успешно." echo "Запуск демона fetchmail" /usr/bin/fetchmail -d 600 -k -v -a -L /var/log/fetchmail echo "Сбрасываем очередь почты...." /usr/local/bin/serialmail/maildir2smtp ~alias/pppdir alias-ppp- mail.server.ip.no `hostname` else echo "ошибка!" /sbin/isdnctrl hangup ippp0 fi



;;

off) echo -n "Отключаем демона fetchmail" /usr/bin/fetchmail --quit

/sbin/isdnctrl hangup ippp0 /sbin/route del default # удаление маршрута echo "Отключение прошло успешно" ;;

*) echo -e "\aИспользование:" echo "isdn on" echo "isdn off" ;;

esac



Теперь займемся файлом опций /etc/ppp/options.ipppd

# Основано на: # Klaus Franken, kfr@suse.de # Версия: 27.08.97 (5.1) # # Этот файл скопирован с /etc/ppp/ioptions.YaST # в options.

user "myuserid"

# имя системы (только для CHAP!) # имя my_system_name

# получение адреса IP # используйте с динамическим адресом IP ipcp-accept-local ipcp-accept-remote noipdefault

# попытка взять адрес из интерфейса # опции для ipppd (as opposed to pppd) # используются при статическом IP #useifip

# запретить сжатие заголовков -vj -vjccomp -ac -pc -bsdcomp

# иногда вам будет нужен: #noccp

# максимальный размер принимаемых данных mru 1524 # максимальный размер передаваемых данных mtu 1500

# Если эта машина - сервер, то вам надо убрать пометки на комментариях в следующих строчках

# "+pap" / "+chap" NUR AKTIVIEREN, WENN DIES EIN SERVER IST!!! #+pap #+chap

# если у вас проблемы с соединением (нет ответа на первый # lcp пакет), то попытайтесь уменьшить время повторного цикла. По умолчанию он равен 3 сек, # попробуйте его уменьшить до 2: # lcp-restart 2




Содержание раздела