(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Página seguinte Página anterior Índice

210. ISDN

Eu estou incluindo isto embora não tenha uma relação direta com o qmail ou mh. Mas sem uma linha PPP para o Provedor de Serviços Internet, não haverá transmissão de mensagens. Tive muitos aborrecimentos até conseguir que o ISDN funcionasse. A distribuição SusE inclui uma configuração para ISDN, mas gostaria de ter algo mais simples. O aqui descrito foi adaptado dos programa de Bernhard Hailer (Vielen, vielen dank!).

O seguinte rc.config carrega os módulos necessários durante a inicialização:

#!/bin/bash
# Este é um velho programa de Bernhard Hailer adaptado.

LOCAL_NUMBER="91311234"        # nro. de tel. (ex.091311234).
REMOTE_NUMBER="0911123456"     # nro. de tel. do Provedor. LOCAL_IP="192.168.0.99"             
                                                   # Tendo IP dinâmico isso é suficiente.
REMOTE_IP="195.112.123.11"     # IP do Provedor.        
DEVICE="ippp0"

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

case "$1" no
início)
        # ligar isdn
        insmod /lib/módulos/2.0.33/net/slhc.o
        insmod /lib/módulos/2.0.33/misc/isdn.o
        sleep 1

        # carregar o módulo hisax 
        insmod /lib/módulos/2.0.33/misc/hisax.o 
                                   id=Tel0 type=5 protocol=2 irq=10 io=0x300 
        echo "iniciando RSDI para Linux"

        # global
        $ISDNCTRL verbose 0

        $ISDNCTRL addif $DEVICE         # criar nova interface
        $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 desligado
        $ISDNCTRL secure $DEVICE ligado

        $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)
        #desligar isdn
        rmmod hisax.o  
        sleep 1
        rmmod isdn.o
        rmmod slhc.o
        echo "Desligando RSDI para linux"
        $ISDNCTRL delif ippp0
        ;;
*)
        echo "Usage: $0 (start|stop)"
        saída 1
        ;;
esac

Eu uso o seguinte programa para discar, o qual é chamado simplesmente isdn ligado|desligado.


#!/bin/bash
# Isto é baseado num velho programa de Bernhard Hailer.

IP_ADDRESS="195.112.123.11"

case "$1" in
on)
        
        
        echo "Ativando ippp0"
        /sbin/isdnctrl dial ippp0
# o descanso  é importante pois dá tempo ao PPP para se estabelecer
        echo "Aguardando por segundos para negociação..."
        sleep 8s
        /sbin/route add default ippp0
        echo "ligação estabelecida - verificando...."
      
# verifica se a negociação PPP foi bem sucedida:
        set `ping -qc3 -i1 $IP_ADDRESS 2>/dev/null | grep transmitted`
        if [ $4 -gt 0 ];
        then
                echo "Conexão Estabelecida."
                echo "Iniciando servidor fetchmail"
                /usr/bin/fetchmail -d 600 -k -v -a -L /var/log/fetchmail
                echo "Verificando fila de mensagens ...."
                /usr/local/bin/serialmail/maildir2smtp 
                            ~alias/pppdir alias-ppp- mail.server.ip.no `hostname`
        else
                echo "Conexão falhou!"
                /sbin/isdnctrl hangup ippp0
        fi
        
;;

off)
                echo -n "Desligando o servidor fetchmail "
                /usr/bin/fetchmail --quit               
                /sbin/isdnctrl hangup ippp0
                /sbin/route del default         # e apague a rota
                echo "Você está desconectado!""
;;

*)
        echo -e "\aUso:"
        echo "Conexão RSDI ativada"
        echo "Conexão RSDI desativada"
;;

esac
A seguir apresentamos o arquivo de opções ipppd denominado /etc/ppp/options.ipppd:

# Baseado em:
# Klaus Franken, kfr@suse.de
# Versão: 27.08.97 (5.1)
# 
# Este arquivo é cópia de YaST a partir de /etc/ppp/ioptions.YaST 
# para opções.<device>

usuário "identificação_do_usuário"

# nome do sistema (só para CHAP!)
# name nome_do_ sistema

# aceita os endereços IP da ponta como IP dinâmico.
ipcp-accept-local
ipcp-accept-remote
noipdefault

# tente obter o endereço IP da opção de interface específica
# para ipppd (ao contrário de pppd); use só com IP estático.
#useifip

# desativa a compressão de cabeçalho.
-vj
-vjccomp
-ac
-pc
-bsdcomp

# às vezes você precisa disto:
#noccp

# unidade máxima de recepção (em bytes)
mru 1524
# unidade máxima de transmissão (em bytes) 
mtu 1500

# Se esta máquina for um servidor, force a autenticação não comentando um dos 
# parâmetros a seguir. Porém, se esta máquina for um cliente, fazer isso
# evitará conexões bem sucedidas! 
# Assim, somente não comente num servidor.
# "+pap" / "+chap" NUR AKTIVIEREN, WENN DIES EIN SERVER IST!!!
#+pap
#+chap

# Caso haja problemas na negociação (sem respostas para o primeiro pacote Icp)
# tente diminuir o ciclo de novas tentativas. O padrão é de 3 segundos.
# Tente por exemplo  2 segundos.
# lcp-restart 2


Página seguinte Página anterior Índice