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.<device>

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